1#![allow(deprecated)]
2#![allow(unused_imports)]
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5#[doc = "Account Change\n\nAccount Change events report when specific user account management tasks are performed, such as a user/role being created, changed, deleted, renamed, disabled, enabled, locked out or unlocked.\n\n[UID:3001] Category: iam | Name: account_change"]
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
7#[serde(default)]
8#[non_exhaustive]
9pub struct AccountChange {
10 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
11 #[serde(rename = "action")]
12 #[serde(skip_serializing_if = "Option::is_none")]
13 pub action: Option<String>,
14 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
15 #[serde(rename = "action_id")]
16 #[serde(skip_serializing_if = "Option::is_none")]
17 pub action_id: Option<i64>,
18 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
19 #[serde(rename = "activity_id")]
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub activity_id: Option<i64>,
22 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
23 #[serde(rename = "activity_name")]
24 #[serde(skip_serializing_if = "Option::is_none")]
25 pub activity_name: Option<String>,
26 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
27 #[serde(rename = "actor")]
28 #[serde(skip_serializing_if = "Option::is_none")]
29 pub actor: Option<Box<Actor>>,
30 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
31 #[serde(rename = "api")]
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub api: Option<Box<Api>>,
34 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
35 #[serde(rename = "attacks")]
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub attacks: Option<Vec<Attack>>,
38 #[doc = "Authentication Factors\n\nDetails about the authentication factors associated with the MFA Factor Enable/Disable activities.\n\noptional"]
39 #[serde(rename = "auth_factors")]
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub auth_factors: Option<Vec<AuthFactor>>,
42 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
43 #[serde(rename = "authorizations")]
44 #[serde(skip_serializing_if = "Option::is_none")]
45 pub authorizations: Option<Vec<Authorization>>,
46 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
47 #[serde(rename = "category_name")]
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub category_name: Option<String>,
50 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
51 #[serde(rename = "category_uid")]
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub category_uid: Option<i64>,
54 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Account Change</code>.\n\noptional"]
55 #[serde(rename = "class_name")]
56 #[serde(skip_serializing_if = "Option::is_none")]
57 pub class_name: Option<String>,
58 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
59 #[serde(rename = "class_uid")]
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub class_uid: Option<i64>,
62 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
63 #[serde(rename = "cloud")]
64 #[serde(skip_serializing_if = "Option::is_none")]
65 pub cloud: Option<Box<Cloud>>,
66 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
67 #[serde(rename = "confidence")]
68 #[serde(skip_serializing_if = "Option::is_none")]
69 pub confidence: Option<String>,
70 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
71 #[serde(rename = "confidence_id")]
72 #[serde(skip_serializing_if = "Option::is_none")]
73 pub confidence_id: Option<i64>,
74 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
75 #[serde(rename = "confidence_score")]
76 #[serde(skip_serializing_if = "Option::is_none")]
77 pub confidence_score: Option<i64>,
78 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
79 #[serde(rename = "count")]
80 #[serde(skip_serializing_if = "Option::is_none")]
81 pub count: Option<i64>,
82 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
83 #[serde(rename = "device")]
84 #[serde(skip_serializing_if = "Option::is_none")]
85 pub device: Option<Box<Device>>,
86 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
87 #[serde(rename = "disposition")]
88 #[serde(skip_serializing_if = "Option::is_none")]
89 pub disposition: Option<String>,
90 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
91 #[serde(rename = "disposition_id")]
92 #[serde(skip_serializing_if = "Option::is_none")]
93 pub disposition_id: Option<i64>,
94 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
95 #[serde(rename = "duration")]
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub duration: Option<i64>,
98 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
99 #[serde(rename = "end_time")]
100 #[serde(skip_serializing_if = "Option::is_none")]
101 pub end_time: Option<i64>,
102 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
103 #[serde(rename = "end_time_dt")]
104 #[serde(skip_serializing_if = "Option::is_none")]
105 pub end_time_dt: Option<String>,
106 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
107 #[serde(rename = "enrichments")]
108 #[serde(skip_serializing_if = "Option::is_none")]
109 pub enrichments: Option<Vec<Enrichment>>,
110 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
111 #[serde(rename = "firewall_rule")]
112 #[serde(skip_serializing_if = "Option::is_none")]
113 pub firewall_rule: Option<Box<FirewallRule>>,
114 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
115 #[serde(rename = "http_request")]
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub http_request: Option<Box<HttpRequest>>,
118 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
119 #[serde(rename = "http_response")]
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub http_response: Option<Box<HttpResponse>>,
122 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
123 #[serde(rename = "is_alert")]
124 #[serde(skip_serializing_if = "Option::is_none")]
125 pub is_alert: Option<bool>,
126 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
127 #[serde(rename = "malware")]
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub malware: Option<Vec<Malware>>,
130 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
131 #[serde(rename = "malware_scan_info")]
132 #[serde(skip_serializing_if = "Option::is_none")]
133 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
134 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
135 #[serde(rename = "message")]
136 #[serde(skip_serializing_if = "Option::is_none")]
137 pub message: Option<String>,
138 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
139 #[serde(rename = "metadata")]
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub metadata: Option<Box<Metadata>>,
142 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
143 #[serde(rename = "observables")]
144 #[serde(skip_serializing_if = "Option::is_none")]
145 pub observables: Option<Vec<Observable>>,
146 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
147 #[serde(rename = "osint")]
148 #[serde(skip_serializing_if = "Option::is_none")]
149 pub osint: Option<Vec<Osint>>,
150 #[doc = "Policies\n\nDetails about the IAM policies associated with the Attach/Detach Policy activities.\n\noptional"]
151 #[serde(rename = "policies")]
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub policies: Option<Vec<Policy>>,
154 #[doc = "Policy\n\nDetails about the IAM policy associated to the Attach/Detach Policy activities.\n\noptional"]
155 #[serde(rename = "policy")]
156 #[serde(skip_serializing_if = "Option::is_none")]
157 pub policy: Option<Box<Policy>>,
158 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
159 #[serde(rename = "raw_data")]
160 #[serde(skip_serializing_if = "Option::is_none")]
161 pub raw_data: Option<String>,
162 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
163 #[serde(rename = "raw_data_hash")]
164 #[serde(skip_serializing_if = "Option::is_none")]
165 pub raw_data_hash: Option<Box<Fingerprint>>,
166 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
167 #[serde(rename = "raw_data_size")]
168 #[serde(skip_serializing_if = "Option::is_none")]
169 pub raw_data_size: Option<i64>,
170 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
171 #[serde(rename = "risk_details")]
172 #[serde(skip_serializing_if = "Option::is_none")]
173 pub risk_details: Option<String>,
174 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
175 #[serde(rename = "risk_level")]
176 #[serde(skip_serializing_if = "Option::is_none")]
177 pub risk_level: Option<String>,
178 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
179 #[serde(rename = "risk_level_id")]
180 #[serde(skip_serializing_if = "Option::is_none")]
181 pub risk_level_id: Option<i64>,
182 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
183 #[serde(rename = "risk_score")]
184 #[serde(skip_serializing_if = "Option::is_none")]
185 pub risk_score: Option<i64>,
186 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
187 #[serde(rename = "severity")]
188 #[serde(skip_serializing_if = "Option::is_none")]
189 pub severity: Option<String>,
190 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
191 #[serde(rename = "severity_id")]
192 #[serde(skip_serializing_if = "Option::is_none")]
193 pub severity_id: Option<i64>,
194 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
195 #[serde(rename = "src_endpoint")]
196 #[serde(skip_serializing_if = "Option::is_none")]
197 pub src_endpoint: Option<Box<NetworkEndpoint>>,
198 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
199 #[serde(rename = "start_time")]
200 #[serde(skip_serializing_if = "Option::is_none")]
201 pub start_time: Option<i64>,
202 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
203 #[serde(rename = "start_time_dt")]
204 #[serde(skip_serializing_if = "Option::is_none")]
205 pub start_time_dt: Option<String>,
206 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
207 #[serde(rename = "status")]
208 #[serde(skip_serializing_if = "Option::is_none")]
209 pub status: Option<String>,
210 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
211 #[serde(rename = "status_code")]
212 #[serde(skip_serializing_if = "Option::is_none")]
213 pub status_code: Option<String>,
214 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
215 #[serde(rename = "status_detail")]
216 #[serde(skip_serializing_if = "Option::is_none")]
217 pub status_detail: Option<String>,
218 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
219 #[serde(rename = "status_id")]
220 #[serde(skip_serializing_if = "Option::is_none")]
221 pub status_id: Option<i64>,
222 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
223 #[serde(rename = "time")]
224 #[serde(skip_serializing_if = "Option::is_none")]
225 pub time: Option<i64>,
226 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
227 #[serde(rename = "time_dt")]
228 #[serde(skip_serializing_if = "Option::is_none")]
229 pub time_dt: Option<String>,
230 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
231 #[serde(rename = "timezone_offset")]
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub timezone_offset: Option<i64>,
234 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
235 #[serde(rename = "type_name")]
236 #[serde(skip_serializing_if = "Option::is_none")]
237 pub type_name: Option<String>,
238 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
239 #[serde(rename = "type_uid")]
240 #[serde(skip_serializing_if = "Option::is_none")]
241 pub type_uid: Option<i64>,
242 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
243 #[serde(rename = "unmapped")]
244 #[serde(skip_serializing_if = "Option::is_none")]
245 pub unmapped: Option<serde_json::Value>,
246 #[doc = "User\n\nThe user that was a target of an activity.\n\nrequired"]
247 #[serde(rename = "user")]
248 #[serde(skip_serializing_if = "Option::is_none")]
249 pub user: Option<Box<User>>,
250 #[doc = "User Result\n\nThe result of the user account change. It should contain the new values of the changed attributes.\n\nrecommended"]
251 #[serde(rename = "user_result")]
252 #[serde(skip_serializing_if = "Option::is_none")]
253 pub user_result: Option<Box<User>>,
254}
255#[doc = "Admin Group Query\n\nAdmin Group Query events report information about administrative groups.\n\n[UID:5009] Category: discovery | Name: admin_group_query"]
256#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
257#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
258#[serde(default)]
259#[non_exhaustive]
260pub struct AdminGroupQuery {
261 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
262 #[serde(rename = "action")]
263 #[serde(skip_serializing_if = "Option::is_none")]
264 pub action: Option<String>,
265 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
266 #[serde(rename = "action_id")]
267 #[serde(skip_serializing_if = "Option::is_none")]
268 pub action_id: Option<i64>,
269 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
270 #[serde(rename = "activity_id")]
271 #[serde(skip_serializing_if = "Option::is_none")]
272 pub activity_id: Option<i64>,
273 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
274 #[serde(rename = "activity_name")]
275 #[serde(skip_serializing_if = "Option::is_none")]
276 pub activity_name: Option<String>,
277 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
278 #[serde(rename = "actor")]
279 #[serde(skip_serializing_if = "Option::is_none")]
280 pub actor: Option<Box<Actor>>,
281 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
282 #[serde(rename = "api")]
283 #[serde(skip_serializing_if = "Option::is_none")]
284 pub api: Option<Box<Api>>,
285 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
286 #[serde(rename = "attacks")]
287 #[serde(skip_serializing_if = "Option::is_none")]
288 pub attacks: Option<Vec<Attack>>,
289 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
290 #[serde(rename = "authorizations")]
291 #[serde(skip_serializing_if = "Option::is_none")]
292 pub authorizations: Option<Vec<Authorization>>,
293 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
294 #[serde(rename = "category_name")]
295 #[serde(skip_serializing_if = "Option::is_none")]
296 pub category_name: Option<String>,
297 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
298 #[serde(rename = "category_uid")]
299 #[serde(skip_serializing_if = "Option::is_none")]
300 pub category_uid: Option<i64>,
301 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Admin Group Query</code>.\n\noptional"]
302 #[serde(rename = "class_name")]
303 #[serde(skip_serializing_if = "Option::is_none")]
304 pub class_name: Option<String>,
305 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
306 #[serde(rename = "class_uid")]
307 #[serde(skip_serializing_if = "Option::is_none")]
308 pub class_uid: Option<i64>,
309 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
310 #[serde(rename = "cloud")]
311 #[serde(skip_serializing_if = "Option::is_none")]
312 pub cloud: Option<Box<Cloud>>,
313 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
314 #[serde(rename = "confidence")]
315 #[serde(skip_serializing_if = "Option::is_none")]
316 pub confidence: Option<String>,
317 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
318 #[serde(rename = "confidence_id")]
319 #[serde(skip_serializing_if = "Option::is_none")]
320 pub confidence_id: Option<i64>,
321 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
322 #[serde(rename = "confidence_score")]
323 #[serde(skip_serializing_if = "Option::is_none")]
324 pub confidence_score: Option<i64>,
325 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
326 #[serde(rename = "count")]
327 #[serde(skip_serializing_if = "Option::is_none")]
328 pub count: Option<i64>,
329 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
330 #[serde(rename = "device")]
331 #[serde(skip_serializing_if = "Option::is_none")]
332 pub device: Option<Box<Device>>,
333 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
334 #[serde(rename = "disposition")]
335 #[serde(skip_serializing_if = "Option::is_none")]
336 pub disposition: Option<String>,
337 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
338 #[serde(rename = "disposition_id")]
339 #[serde(skip_serializing_if = "Option::is_none")]
340 pub disposition_id: Option<i64>,
341 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
342 #[serde(rename = "duration")]
343 #[serde(skip_serializing_if = "Option::is_none")]
344 pub duration: Option<i64>,
345 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
346 #[serde(rename = "end_time")]
347 #[serde(skip_serializing_if = "Option::is_none")]
348 pub end_time: Option<i64>,
349 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
350 #[serde(rename = "end_time_dt")]
351 #[serde(skip_serializing_if = "Option::is_none")]
352 pub end_time_dt: Option<String>,
353 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
354 #[serde(rename = "enrichments")]
355 #[serde(skip_serializing_if = "Option::is_none")]
356 pub enrichments: Option<Vec<Enrichment>>,
357 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
358 #[serde(rename = "firewall_rule")]
359 #[serde(skip_serializing_if = "Option::is_none")]
360 pub firewall_rule: Option<Box<FirewallRule>>,
361 #[doc = "Group\n\nThe administrative group.\n\nrequired"]
362 #[serde(rename = "group")]
363 #[serde(skip_serializing_if = "Option::is_none")]
364 pub group: Option<Box<Group>>,
365 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
366 #[serde(rename = "is_alert")]
367 #[serde(skip_serializing_if = "Option::is_none")]
368 pub is_alert: Option<bool>,
369 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
370 #[serde(rename = "malware")]
371 #[serde(skip_serializing_if = "Option::is_none")]
372 pub malware: Option<Vec<Malware>>,
373 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
374 #[serde(rename = "malware_scan_info")]
375 #[serde(skip_serializing_if = "Option::is_none")]
376 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
377 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
378 #[serde(rename = "message")]
379 #[serde(skip_serializing_if = "Option::is_none")]
380 pub message: Option<String>,
381 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
382 #[serde(rename = "metadata")]
383 #[serde(skip_serializing_if = "Option::is_none")]
384 pub metadata: Option<Box<Metadata>>,
385 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
386 #[serde(rename = "observables")]
387 #[serde(skip_serializing_if = "Option::is_none")]
388 pub observables: Option<Vec<Observable>>,
389 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
390 #[serde(rename = "osint")]
391 #[serde(skip_serializing_if = "Option::is_none")]
392 pub osint: Option<Vec<Osint>>,
393 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
394 #[serde(rename = "policy")]
395 #[serde(skip_serializing_if = "Option::is_none")]
396 pub policy: Option<Box<Policy>>,
397 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
398 #[serde(rename = "query_info")]
399 #[serde(skip_serializing_if = "Option::is_none")]
400 pub query_info: Option<Box<QueryInfo>>,
401 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
402 #[serde(rename = "query_result")]
403 #[serde(skip_serializing_if = "Option::is_none")]
404 pub query_result: Option<String>,
405 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
406 #[serde(rename = "query_result_id")]
407 #[serde(skip_serializing_if = "Option::is_none")]
408 pub query_result_id: Option<i64>,
409 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
410 #[serde(rename = "raw_data")]
411 #[serde(skip_serializing_if = "Option::is_none")]
412 pub raw_data: Option<String>,
413 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
414 #[serde(rename = "raw_data_hash")]
415 #[serde(skip_serializing_if = "Option::is_none")]
416 pub raw_data_hash: Option<Box<Fingerprint>>,
417 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
418 #[serde(rename = "raw_data_size")]
419 #[serde(skip_serializing_if = "Option::is_none")]
420 pub raw_data_size: Option<i64>,
421 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
422 #[serde(rename = "risk_details")]
423 #[serde(skip_serializing_if = "Option::is_none")]
424 pub risk_details: Option<String>,
425 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
426 #[serde(rename = "risk_level")]
427 #[serde(skip_serializing_if = "Option::is_none")]
428 pub risk_level: Option<String>,
429 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
430 #[serde(rename = "risk_level_id")]
431 #[serde(skip_serializing_if = "Option::is_none")]
432 pub risk_level_id: Option<i64>,
433 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
434 #[serde(rename = "risk_score")]
435 #[serde(skip_serializing_if = "Option::is_none")]
436 pub risk_score: Option<i64>,
437 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
438 #[serde(rename = "severity")]
439 #[serde(skip_serializing_if = "Option::is_none")]
440 pub severity: Option<String>,
441 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
442 #[serde(rename = "severity_id")]
443 #[serde(skip_serializing_if = "Option::is_none")]
444 pub severity_id: Option<i64>,
445 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
446 #[serde(rename = "start_time")]
447 #[serde(skip_serializing_if = "Option::is_none")]
448 pub start_time: Option<i64>,
449 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
450 #[serde(rename = "start_time_dt")]
451 #[serde(skip_serializing_if = "Option::is_none")]
452 pub start_time_dt: Option<String>,
453 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
454 #[serde(rename = "status")]
455 #[serde(skip_serializing_if = "Option::is_none")]
456 pub status: Option<String>,
457 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
458 #[serde(rename = "status_code")]
459 #[serde(skip_serializing_if = "Option::is_none")]
460 pub status_code: Option<String>,
461 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
462 #[serde(rename = "status_detail")]
463 #[serde(skip_serializing_if = "Option::is_none")]
464 pub status_detail: Option<String>,
465 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
466 #[serde(rename = "status_id")]
467 #[serde(skip_serializing_if = "Option::is_none")]
468 pub status_id: Option<i64>,
469 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
470 #[serde(rename = "time")]
471 #[serde(skip_serializing_if = "Option::is_none")]
472 pub time: Option<i64>,
473 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
474 #[serde(rename = "time_dt")]
475 #[serde(skip_serializing_if = "Option::is_none")]
476 pub time_dt: Option<String>,
477 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
478 #[serde(rename = "timezone_offset")]
479 #[serde(skip_serializing_if = "Option::is_none")]
480 pub timezone_offset: Option<i64>,
481 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
482 #[serde(rename = "type_name")]
483 #[serde(skip_serializing_if = "Option::is_none")]
484 pub type_name: Option<String>,
485 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
486 #[serde(rename = "type_uid")]
487 #[serde(skip_serializing_if = "Option::is_none")]
488 pub type_uid: Option<i64>,
489 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
490 #[serde(rename = "unmapped")]
491 #[serde(skip_serializing_if = "Option::is_none")]
492 pub unmapped: Option<serde_json::Value>,
493 #[doc = "Users\n\nThe users that belong to the administrative group.\n\nrecommended"]
494 #[serde(rename = "users")]
495 #[serde(skip_serializing_if = "Option::is_none")]
496 pub users: Option<Vec<User>>,
497}
498#[doc = "Airborne Broadcast Activity\n\nAirborne Broadcast Activity events report the activity of any aircraft or unmanned system as reported and tracked by Automatic Dependent Surveillance - Broadcast (ADS-B) receivers. Based on the ADS-B standards described in <a target='_blank' href='https://www.ecfr.gov/current/title-14/chapter-I/subchapter-F/part-91#91.225'>Code of Federal Regulations (CFR) Title 14 Chapter I Subchapter F Part 91</a> and in other general Federal Aviation Administration (FAA) supplemental orders and guidance described <a target='_blank' href='https://www.faa.gov/about/office_org/headquarters_offices/avs/offices/afx/afs/afs400/afs410/ads-b'>here</a>.\n\n[UID:8002] Category: unmanned_systems | Name: airborne_broadcast_activity\n\n**Constraints:**\n* at_least_one: `[aircraft`,`unmanned_aerial_system`,`unmanned_system_operating_area]`\n"]
499#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
500#[serde(default)]
501#[non_exhaustive]
502pub struct AirborneBroadcastActivity {
503 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
504 #[serde(rename = "action")]
505 #[serde(skip_serializing_if = "Option::is_none")]
506 pub action: Option<String>,
507 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
508 #[serde(rename = "action_id")]
509 #[serde(skip_serializing_if = "Option::is_none")]
510 pub action_id: Option<i64>,
511 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
512 #[serde(rename = "activity_id")]
513 #[serde(skip_serializing_if = "Option::is_none")]
514 pub activity_id: Option<i64>,
515 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
516 #[serde(rename = "activity_name")]
517 #[serde(skip_serializing_if = "Option::is_none")]
518 pub activity_name: Option<String>,
519 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
520 #[serde(rename = "actor")]
521 #[serde(skip_serializing_if = "Option::is_none")]
522 pub actor: Option<Box<Actor>>,
523 #[doc = "Aircraft\n\nThe Aircraft object represents any aircraft or otherwise airborne asset such as an unmanned system, airplane, balloon, spacecraft, or otherwise. The Aircraft object is intended to normalized data captured or otherwise logged from active radar, passive radar, multi-spectral systems, or the Automatic Dependant Broadcast - Surveillance (ADS-B), and/or Mode S systems.\n\nrecommended"]
524 #[serde(rename = "aircraft")]
525 #[serde(skip_serializing_if = "Option::is_none")]
526 pub aircraft: Option<Box<Aircraft>>,
527 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
528 #[serde(rename = "api")]
529 #[serde(skip_serializing_if = "Option::is_none")]
530 pub api: Option<Box<Api>>,
531 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
532 #[serde(rename = "attacks")]
533 #[serde(skip_serializing_if = "Option::is_none")]
534 pub attacks: Option<Vec<Attack>>,
535 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
536 #[serde(rename = "authorizations")]
537 #[serde(skip_serializing_if = "Option::is_none")]
538 pub authorizations: Option<Vec<Authorization>>,
539 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Unmanned Systems</code>.\n\noptional"]
540 #[serde(rename = "category_name")]
541 #[serde(skip_serializing_if = "Option::is_none")]
542 pub category_name: Option<String>,
543 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
544 #[serde(rename = "category_uid")]
545 #[serde(skip_serializing_if = "Option::is_none")]
546 pub category_uid: Option<i64>,
547 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Airborne Broadcast Activity</code>.\n\noptional"]
548 #[serde(rename = "class_name")]
549 #[serde(skip_serializing_if = "Option::is_none")]
550 pub class_name: Option<String>,
551 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
552 #[serde(rename = "class_uid")]
553 #[serde(skip_serializing_if = "Option::is_none")]
554 pub class_uid: Option<i64>,
555 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
556 #[serde(rename = "cloud")]
557 #[serde(skip_serializing_if = "Option::is_none")]
558 pub cloud: Option<Box<Cloud>>,
559 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
560 #[serde(rename = "confidence")]
561 #[serde(skip_serializing_if = "Option::is_none")]
562 pub confidence: Option<String>,
563 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
564 #[serde(rename = "confidence_id")]
565 #[serde(skip_serializing_if = "Option::is_none")]
566 pub confidence_id: Option<i64>,
567 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
568 #[serde(rename = "confidence_score")]
569 #[serde(skip_serializing_if = "Option::is_none")]
570 pub confidence_score: Option<i64>,
571 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
572 #[serde(rename = "connection_info")]
573 #[serde(skip_serializing_if = "Option::is_none")]
574 pub connection_info: Option<Box<NetworkConnectionInfo>>,
575 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
576 #[serde(rename = "count")]
577 #[serde(skip_serializing_if = "Option::is_none")]
578 pub count: Option<i64>,
579 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
580 #[serde(rename = "device")]
581 #[serde(skip_serializing_if = "Option::is_none")]
582 pub device: Option<Box<Device>>,
583 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
584 #[serde(rename = "disposition")]
585 #[serde(skip_serializing_if = "Option::is_none")]
586 pub disposition: Option<String>,
587 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
588 #[serde(rename = "disposition_id")]
589 #[serde(skip_serializing_if = "Option::is_none")]
590 pub disposition_id: Option<i64>,
591 #[doc = "Destination Endpoint\n\nThe destination network endpoint for the ADS-B system, if telemetry is being remotely broadcasted.\n\noptional"]
592 #[serde(rename = "dst_endpoint")]
593 #[serde(skip_serializing_if = "Option::is_none")]
594 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
595 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
596 #[serde(rename = "duration")]
597 #[serde(skip_serializing_if = "Option::is_none")]
598 pub duration: Option<i64>,
599 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
600 #[serde(rename = "end_time")]
601 #[serde(skip_serializing_if = "Option::is_none")]
602 pub end_time: Option<i64>,
603 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
604 #[serde(rename = "end_time_dt")]
605 #[serde(skip_serializing_if = "Option::is_none")]
606 pub end_time_dt: Option<String>,
607 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
608 #[serde(rename = "enrichments")]
609 #[serde(skip_serializing_if = "Option::is_none")]
610 pub enrichments: Option<Vec<Enrichment>>,
611 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
612 #[serde(rename = "firewall_rule")]
613 #[serde(skip_serializing_if = "Option::is_none")]
614 pub firewall_rule: Option<Box<FirewallRule>>,
615 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
616 #[serde(rename = "is_alert")]
617 #[serde(skip_serializing_if = "Option::is_none")]
618 pub is_alert: Option<bool>,
619 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
620 #[serde(rename = "malware")]
621 #[serde(skip_serializing_if = "Option::is_none")]
622 pub malware: Option<Vec<Malware>>,
623 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
624 #[serde(rename = "malware_scan_info")]
625 #[serde(skip_serializing_if = "Option::is_none")]
626 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
627 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
628 #[serde(rename = "message")]
629 #[serde(skip_serializing_if = "Option::is_none")]
630 pub message: Option<String>,
631 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
632 #[serde(rename = "metadata")]
633 #[serde(skip_serializing_if = "Option::is_none")]
634 pub metadata: Option<Box<Metadata>>,
635 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
636 #[serde(rename = "observables")]
637 #[serde(skip_serializing_if = "Option::is_none")]
638 pub observables: Option<Vec<Observable>>,
639 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
640 #[serde(rename = "osint")]
641 #[serde(skip_serializing_if = "Option::is_none")]
642 pub osint: Option<Vec<Osint>>,
643 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
644 #[serde(rename = "policy")]
645 #[serde(skip_serializing_if = "Option::is_none")]
646 pub policy: Option<Box<Policy>>,
647 #[doc = "ADS-B Protocol\n\nThe specific protocol associated with the ADS-B system. E.g. <code>ADS-B UAT</code> or <code>ADS-B ES</code>.\n\nrecommended"]
648 #[serde(rename = "protocol_name")]
649 #[serde(skip_serializing_if = "Option::is_none")]
650 pub protocol_name: Option<String>,
651 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\nrecommended"]
652 #[serde(rename = "proxy_endpoint")]
653 #[serde(skip_serializing_if = "Option::is_none")]
654 pub proxy_endpoint: Option<Box<NetworkProxy>>,
655 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
656 #[serde(rename = "raw_data")]
657 #[serde(skip_serializing_if = "Option::is_none")]
658 pub raw_data: Option<String>,
659 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
660 #[serde(rename = "raw_data_hash")]
661 #[serde(skip_serializing_if = "Option::is_none")]
662 pub raw_data_hash: Option<Box<Fingerprint>>,
663 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
664 #[serde(rename = "raw_data_size")]
665 #[serde(skip_serializing_if = "Option::is_none")]
666 pub raw_data_size: Option<i64>,
667 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
668 #[serde(rename = "risk_details")]
669 #[serde(skip_serializing_if = "Option::is_none")]
670 pub risk_details: Option<String>,
671 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
672 #[serde(rename = "risk_level")]
673 #[serde(skip_serializing_if = "Option::is_none")]
674 pub risk_level: Option<String>,
675 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
676 #[serde(rename = "risk_level_id")]
677 #[serde(skip_serializing_if = "Option::is_none")]
678 pub risk_level_id: Option<i64>,
679 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
680 #[serde(rename = "risk_score")]
681 #[serde(skip_serializing_if = "Option::is_none")]
682 pub risk_score: Option<i64>,
683 #[doc = "RSSI\n\nRecent average RSSI (signal power) measured in dbFS. This value will always be negative, e.g., <code>-87.13</code>.\n\noptional"]
684 #[serde(rename = "rssi")]
685 #[serde(skip_serializing_if = "Option::is_none")]
686 pub rssi: Option<i64>,
687 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
688 #[serde(rename = "severity")]
689 #[serde(skip_serializing_if = "Option::is_none")]
690 pub severity: Option<String>,
691 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
692 #[serde(rename = "severity_id")]
693 #[serde(skip_serializing_if = "Option::is_none")]
694 pub severity_id: Option<i64>,
695 #[doc = "Source Endpoint\n\nThe source network endpoint for the ADS-B system.\n\noptional"]
696 #[serde(rename = "src_endpoint")]
697 #[serde(skip_serializing_if = "Option::is_none")]
698 pub src_endpoint: Option<Box<NetworkEndpoint>>,
699 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
700 #[serde(rename = "start_time")]
701 #[serde(skip_serializing_if = "Option::is_none")]
702 pub start_time: Option<i64>,
703 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
704 #[serde(rename = "start_time_dt")]
705 #[serde(skip_serializing_if = "Option::is_none")]
706 pub start_time_dt: Option<String>,
707 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
708 #[serde(rename = "status")]
709 #[serde(skip_serializing_if = "Option::is_none")]
710 pub status: Option<String>,
711 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
712 #[serde(rename = "status_code")]
713 #[serde(skip_serializing_if = "Option::is_none")]
714 pub status_code: Option<String>,
715 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
716 #[serde(rename = "status_detail")]
717 #[serde(skip_serializing_if = "Option::is_none")]
718 pub status_detail: Option<String>,
719 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
720 #[serde(rename = "status_id")]
721 #[serde(skip_serializing_if = "Option::is_none")]
722 pub status_id: Option<i64>,
723 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
724 #[serde(rename = "time")]
725 #[serde(skip_serializing_if = "Option::is_none")]
726 pub time: Option<i64>,
727 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
728 #[serde(rename = "time_dt")]
729 #[serde(skip_serializing_if = "Option::is_none")]
730 pub time_dt: Option<String>,
731 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
732 #[serde(rename = "timezone_offset")]
733 #[serde(skip_serializing_if = "Option::is_none")]
734 pub timezone_offset: Option<i64>,
735 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
736 #[serde(rename = "tls")]
737 #[serde(skip_serializing_if = "Option::is_none")]
738 pub tls: Option<Box<Tls>>,
739 #[doc = "Traffic\n\nTraffic refers to the amount of data transmitted from a ADS-B remote monitoring system at a given point of time. Ex: <code>bytes_in</code> and <code>bytes_out</code>.\n\noptional"]
740 #[serde(rename = "traffic")]
741 #[serde(skip_serializing_if = "Option::is_none")]
742 pub traffic: Option<Box<NetworkTraffic>>,
743 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
744 #[serde(rename = "type_name")]
745 #[serde(skip_serializing_if = "Option::is_none")]
746 pub type_name: Option<String>,
747 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
748 #[serde(rename = "type_uid")]
749 #[serde(skip_serializing_if = "Option::is_none")]
750 pub type_uid: Option<i64>,
751 #[doc = "Unmanned Aerial System\n\nThe Unmanned Aerial System object describes the characteristics, Position Location Information (PLI), and other metadata of Unmanned Aerial Systems (UAS) and other unmanned and drone systems used in Remote ID. Remote ID is defined in the Standard Specification for Remote ID and Tracking (ASTM Designation: F3411-22a) <a target='_blank' href='https://cdn.standards.iteh.ai/samples/112830/71297057ac42432880a203654f213709/ASTM-F3411-22a.pdf'>ASTM F3411-22a</a>.\n\nrequired"]
752 #[serde(rename = "unmanned_aerial_system")]
753 #[serde(skip_serializing_if = "Option::is_none")]
754 pub unmanned_aerial_system: Option<Box<UnmannedAerialSystem>>,
755 #[doc = "UAS Operating Area\n\nThe UAS Operating Area object describes details about a precise area of operations for a UAS flight or mission.\n\nrecommended"]
756 #[serde(rename = "unmanned_system_operating_area")]
757 #[serde(skip_serializing_if = "Option::is_none")]
758 pub unmanned_system_operating_area: Option<Box<UnmannedSystemOperatingArea>>,
759 #[doc = "Unmanned Systems Operator\n\nThe human or machine operator of an Unmanned System.\n\nrequired"]
760 #[serde(rename = "unmanned_system_operator")]
761 #[serde(skip_serializing_if = "Option::is_none")]
762 pub unmanned_system_operator: Option<Box<User>>,
763 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
764 #[serde(rename = "unmapped")]
765 #[serde(skip_serializing_if = "Option::is_none")]
766 pub unmapped: Option<serde_json::Value>,
767}
768#[doc = "API Activity\n\nAPI events describe general CRUD (Create, Read, Update, Delete) API activities, e.g. (AWS Cloudtrail)\n\n[UID:6003] Category: application | Name: api_activity"]
769#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
770#[serde(default)]
771#[non_exhaustive]
772pub struct ApiActivity {
773 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
774 #[serde(rename = "action")]
775 #[serde(skip_serializing_if = "Option::is_none")]
776 pub action: Option<String>,
777 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
778 #[serde(rename = "action_id")]
779 #[serde(skip_serializing_if = "Option::is_none")]
780 pub action_id: Option<i64>,
781 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
782 #[serde(rename = "activity_id")]
783 #[serde(skip_serializing_if = "Option::is_none")]
784 pub activity_id: Option<i64>,
785 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
786 #[serde(rename = "activity_name")]
787 #[serde(skip_serializing_if = "Option::is_none")]
788 pub activity_name: Option<String>,
789 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
790 #[serde(rename = "actor")]
791 #[serde(skip_serializing_if = "Option::is_none")]
792 pub actor: Option<Box<Actor>>,
793 #[doc = "AI Model\n\nThe AI Model object describes the characteristics of an AI/ML model. Examples include language models like GPT-4, embedding models like text-embedding-ada-002, and computer vision models like CLIP.\n\nrecommended"]
794 #[serde(rename = "ai_model")]
795 #[serde(skip_serializing_if = "Option::is_none")]
796 pub ai_model: Option<Box<AiModel>>,
797 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\nrequired"]
798 #[serde(rename = "api")]
799 #[serde(skip_serializing_if = "Option::is_none")]
800 pub api: Option<Box<Api>>,
801 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
802 #[serde(rename = "attacks")]
803 #[serde(skip_serializing_if = "Option::is_none")]
804 pub attacks: Option<Vec<Attack>>,
805 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
806 #[serde(rename = "authorizations")]
807 #[serde(skip_serializing_if = "Option::is_none")]
808 pub authorizations: Option<Vec<Authorization>>,
809 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
810 #[serde(rename = "category_name")]
811 #[serde(skip_serializing_if = "Option::is_none")]
812 pub category_name: Option<String>,
813 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
814 #[serde(rename = "category_uid")]
815 #[serde(skip_serializing_if = "Option::is_none")]
816 pub category_uid: Option<i64>,
817 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>API Activity</code>.\n\noptional"]
818 #[serde(rename = "class_name")]
819 #[serde(skip_serializing_if = "Option::is_none")]
820 pub class_name: Option<String>,
821 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
822 #[serde(rename = "class_uid")]
823 #[serde(skip_serializing_if = "Option::is_none")]
824 pub class_uid: Option<i64>,
825 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
826 #[serde(rename = "cloud")]
827 #[serde(skip_serializing_if = "Option::is_none")]
828 pub cloud: Option<Box<Cloud>>,
829 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
830 #[serde(rename = "confidence")]
831 #[serde(skip_serializing_if = "Option::is_none")]
832 pub confidence: Option<String>,
833 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
834 #[serde(rename = "confidence_id")]
835 #[serde(skip_serializing_if = "Option::is_none")]
836 pub confidence_id: Option<i64>,
837 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
838 #[serde(rename = "confidence_score")]
839 #[serde(skip_serializing_if = "Option::is_none")]
840 pub confidence_score: Option<i64>,
841 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
842 #[serde(rename = "count")]
843 #[serde(skip_serializing_if = "Option::is_none")]
844 pub count: Option<i64>,
845 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
846 #[serde(rename = "device")]
847 #[serde(skip_serializing_if = "Option::is_none")]
848 pub device: Option<Box<Device>>,
849 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
850 #[serde(rename = "disposition")]
851 #[serde(skip_serializing_if = "Option::is_none")]
852 pub disposition: Option<String>,
853 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
854 #[serde(rename = "disposition_id")]
855 #[serde(skip_serializing_if = "Option::is_none")]
856 pub disposition_id: Option<i64>,
857 #[doc = "Destination Endpoint\n\nThe network destination endpoint.\n\nrecommended"]
858 #[serde(rename = "dst_endpoint")]
859 #[serde(skip_serializing_if = "Option::is_none")]
860 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
861 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
862 #[serde(rename = "duration")]
863 #[serde(skip_serializing_if = "Option::is_none")]
864 pub duration: Option<i64>,
865 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
866 #[serde(rename = "end_time")]
867 #[serde(skip_serializing_if = "Option::is_none")]
868 pub end_time: Option<i64>,
869 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
870 #[serde(rename = "end_time_dt")]
871 #[serde(skip_serializing_if = "Option::is_none")]
872 pub end_time_dt: Option<String>,
873 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
874 #[serde(rename = "enrichments")]
875 #[serde(skip_serializing_if = "Option::is_none")]
876 pub enrichments: Option<Vec<Enrichment>>,
877 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
878 #[serde(rename = "firewall_rule")]
879 #[serde(skip_serializing_if = "Option::is_none")]
880 pub firewall_rule: Option<Box<FirewallRule>>,
881 #[doc = "HTTP Request\n\nDetails about the underlying http request.\n\nrecommended"]
882 #[serde(rename = "http_request")]
883 #[serde(skip_serializing_if = "Option::is_none")]
884 pub http_request: Option<Box<HttpRequest>>,
885 #[doc = "HTTP Response\n\nDetails about the underlying http response.\n\nrecommended"]
886 #[serde(rename = "http_response")]
887 #[serde(skip_serializing_if = "Option::is_none")]
888 pub http_response: Option<Box<HttpResponse>>,
889 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
890 #[serde(rename = "is_alert")]
891 #[serde(skip_serializing_if = "Option::is_none")]
892 pub is_alert: Option<bool>,
893 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
894 #[serde(rename = "malware")]
895 #[serde(skip_serializing_if = "Option::is_none")]
896 pub malware: Option<Vec<Malware>>,
897 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
898 #[serde(rename = "malware_scan_info")]
899 #[serde(skip_serializing_if = "Option::is_none")]
900 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
901 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
902 #[serde(rename = "message")]
903 #[serde(skip_serializing_if = "Option::is_none")]
904 pub message: Option<String>,
905 #[doc = "Message Context\n\nCommunication context for AI system interactions including protocols, roles, clients, and session information for MCP and other AI communication systems.\n\noptional"]
906 #[serde(rename = "message_context")]
907 #[serde(skip_serializing_if = "Option::is_none")]
908 pub message_context: Option<Box<MessageContext>>,
909 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
910 #[serde(rename = "metadata")]
911 #[serde(skip_serializing_if = "Option::is_none")]
912 pub metadata: Option<Box<Metadata>>,
913 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
914 #[serde(rename = "observables")]
915 #[serde(skip_serializing_if = "Option::is_none")]
916 pub observables: Option<Vec<Observable>>,
917 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
918 #[serde(rename = "osint")]
919 #[serde(skip_serializing_if = "Option::is_none")]
920 pub osint: Option<Vec<Osint>>,
921 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
922 #[serde(rename = "policy")]
923 #[serde(skip_serializing_if = "Option::is_none")]
924 pub policy: Option<Box<Policy>>,
925 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
926 #[serde(rename = "raw_data")]
927 #[serde(skip_serializing_if = "Option::is_none")]
928 pub raw_data: Option<String>,
929 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
930 #[serde(rename = "raw_data_hash")]
931 #[serde(skip_serializing_if = "Option::is_none")]
932 pub raw_data_hash: Option<Box<Fingerprint>>,
933 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
934 #[serde(rename = "raw_data_size")]
935 #[serde(skip_serializing_if = "Option::is_none")]
936 pub raw_data_size: Option<i64>,
937 #[doc = "Resources Array\n\nDetails about resources that were affected by the activity/event.\n\nrecommended"]
938 #[serde(rename = "resources")]
939 #[serde(skip_serializing_if = "Option::is_none")]
940 pub resources: Option<Vec<ResourceDetails>>,
941 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
942 #[serde(rename = "risk_details")]
943 #[serde(skip_serializing_if = "Option::is_none")]
944 pub risk_details: Option<String>,
945 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
946 #[serde(rename = "risk_level")]
947 #[serde(skip_serializing_if = "Option::is_none")]
948 pub risk_level: Option<String>,
949 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
950 #[serde(rename = "risk_level_id")]
951 #[serde(skip_serializing_if = "Option::is_none")]
952 pub risk_level_id: Option<i64>,
953 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
954 #[serde(rename = "risk_score")]
955 #[serde(skip_serializing_if = "Option::is_none")]
956 pub risk_score: Option<i64>,
957 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
958 #[serde(rename = "severity")]
959 #[serde(skip_serializing_if = "Option::is_none")]
960 pub severity: Option<String>,
961 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
962 #[serde(rename = "severity_id")]
963 #[serde(skip_serializing_if = "Option::is_none")]
964 pub severity_id: Option<i64>,
965 #[doc = "Source Endpoint\n\nDetails about the source of the activity.\n\nrequired"]
966 #[serde(rename = "src_endpoint")]
967 #[serde(skip_serializing_if = "Option::is_none")]
968 pub src_endpoint: Option<Box<NetworkEndpoint>>,
969 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
970 #[serde(rename = "start_time")]
971 #[serde(skip_serializing_if = "Option::is_none")]
972 pub start_time: Option<i64>,
973 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
974 #[serde(rename = "start_time_dt")]
975 #[serde(skip_serializing_if = "Option::is_none")]
976 pub start_time_dt: Option<String>,
977 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
978 #[serde(rename = "status")]
979 #[serde(skip_serializing_if = "Option::is_none")]
980 pub status: Option<String>,
981 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
982 #[serde(rename = "status_code")]
983 #[serde(skip_serializing_if = "Option::is_none")]
984 pub status_code: Option<String>,
985 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
986 #[serde(rename = "status_detail")]
987 #[serde(skip_serializing_if = "Option::is_none")]
988 pub status_detail: Option<String>,
989 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
990 #[serde(rename = "status_id")]
991 #[serde(skip_serializing_if = "Option::is_none")]
992 pub status_id: Option<i64>,
993 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
994 #[serde(rename = "time")]
995 #[serde(skip_serializing_if = "Option::is_none")]
996 pub time: Option<i64>,
997 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
998 #[serde(rename = "time_dt")]
999 #[serde(skip_serializing_if = "Option::is_none")]
1000 pub time_dt: Option<String>,
1001 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
1002 #[serde(rename = "timezone_offset")]
1003 #[serde(skip_serializing_if = "Option::is_none")]
1004 pub timezone_offset: Option<i64>,
1005 #[doc = "Trace\n\nThe trace object contains information about distributed traces which are critical to observability and describe how requests move through a system, capturing each step's timing and status.\n\nrecommended"]
1006 #[serde(rename = "trace")]
1007 #[serde(skip_serializing_if = "Option::is_none")]
1008 pub trace: Option<Box<Trace>>,
1009 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
1010 #[serde(rename = "type_name")]
1011 #[serde(skip_serializing_if = "Option::is_none")]
1012 pub type_name: Option<String>,
1013 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
1014 #[serde(rename = "type_uid")]
1015 #[serde(skip_serializing_if = "Option::is_none")]
1016 pub type_uid: Option<i64>,
1017 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
1018 #[serde(rename = "unmapped")]
1019 #[serde(skip_serializing_if = "Option::is_none")]
1020 pub unmapped: Option<serde_json::Value>,
1021}
1022#[doc = "Application Error\n\nApplication Error events describe issues with an applications. The error message should be put in the event's <code>message</code> attribute. The <code>metadata.product</code> attribute can be used to capture the originating application information. The <code>host</code> profile can used to include the generating device information. This class is helpful for applications that generate or handle OCSF events and can also be used for errors in upstream products and services.\n\n[UID:6008] Category: application | Name: application_error"]
1023#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1024#[serde(default)]
1025#[non_exhaustive]
1026pub struct ApplicationError {
1027 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
1028 #[serde(rename = "action")]
1029 #[serde(skip_serializing_if = "Option::is_none")]
1030 pub action: Option<String>,
1031 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
1032 #[serde(rename = "action_id")]
1033 #[serde(skip_serializing_if = "Option::is_none")]
1034 pub action_id: Option<i64>,
1035 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
1036 #[serde(rename = "activity_id")]
1037 #[serde(skip_serializing_if = "Option::is_none")]
1038 pub activity_id: Option<i64>,
1039 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
1040 #[serde(rename = "activity_name")]
1041 #[serde(skip_serializing_if = "Option::is_none")]
1042 pub activity_name: Option<String>,
1043 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
1044 #[serde(rename = "actor")]
1045 #[serde(skip_serializing_if = "Option::is_none")]
1046 pub actor: Option<Box<Actor>>,
1047 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
1048 #[serde(rename = "api")]
1049 #[serde(skip_serializing_if = "Option::is_none")]
1050 pub api: Option<Box<Api>>,
1051 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
1052 #[serde(rename = "attacks")]
1053 #[serde(skip_serializing_if = "Option::is_none")]
1054 pub attacks: Option<Vec<Attack>>,
1055 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
1056 #[serde(rename = "authorizations")]
1057 #[serde(skip_serializing_if = "Option::is_none")]
1058 pub authorizations: Option<Vec<Authorization>>,
1059 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
1060 #[serde(rename = "category_name")]
1061 #[serde(skip_serializing_if = "Option::is_none")]
1062 pub category_name: Option<String>,
1063 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
1064 #[serde(rename = "category_uid")]
1065 #[serde(skip_serializing_if = "Option::is_none")]
1066 pub category_uid: Option<i64>,
1067 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Application Error</code>.\n\noptional"]
1068 #[serde(rename = "class_name")]
1069 #[serde(skip_serializing_if = "Option::is_none")]
1070 pub class_name: Option<String>,
1071 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
1072 #[serde(rename = "class_uid")]
1073 #[serde(skip_serializing_if = "Option::is_none")]
1074 pub class_uid: Option<i64>,
1075 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
1076 #[serde(rename = "cloud")]
1077 #[serde(skip_serializing_if = "Option::is_none")]
1078 pub cloud: Option<Box<Cloud>>,
1079 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1080 #[serde(rename = "confidence")]
1081 #[serde(skip_serializing_if = "Option::is_none")]
1082 pub confidence: Option<String>,
1083 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
1084 #[serde(rename = "confidence_id")]
1085 #[serde(skip_serializing_if = "Option::is_none")]
1086 pub confidence_id: Option<i64>,
1087 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
1088 #[serde(rename = "confidence_score")]
1089 #[serde(skip_serializing_if = "Option::is_none")]
1090 pub confidence_score: Option<i64>,
1091 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
1092 #[serde(rename = "count")]
1093 #[serde(skip_serializing_if = "Option::is_none")]
1094 pub count: Option<i64>,
1095 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
1096 #[serde(rename = "device")]
1097 #[serde(skip_serializing_if = "Option::is_none")]
1098 pub device: Option<Box<Device>>,
1099 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1100 #[serde(rename = "disposition")]
1101 #[serde(skip_serializing_if = "Option::is_none")]
1102 pub disposition: Option<String>,
1103 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
1104 #[serde(rename = "disposition_id")]
1105 #[serde(skip_serializing_if = "Option::is_none")]
1106 pub disposition_id: Option<i64>,
1107 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
1108 #[serde(rename = "duration")]
1109 #[serde(skip_serializing_if = "Option::is_none")]
1110 pub duration: Option<i64>,
1111 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1112 #[serde(rename = "end_time")]
1113 #[serde(skip_serializing_if = "Option::is_none")]
1114 pub end_time: Option<i64>,
1115 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1116 #[serde(rename = "end_time_dt")]
1117 #[serde(skip_serializing_if = "Option::is_none")]
1118 pub end_time_dt: Option<String>,
1119 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
1120 #[serde(rename = "enrichments")]
1121 #[serde(skip_serializing_if = "Option::is_none")]
1122 pub enrichments: Option<Vec<Enrichment>>,
1123 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
1124 #[serde(rename = "firewall_rule")]
1125 #[serde(skip_serializing_if = "Option::is_none")]
1126 pub firewall_rule: Option<Box<FirewallRule>>,
1127 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
1128 #[serde(rename = "is_alert")]
1129 #[serde(skip_serializing_if = "Option::is_none")]
1130 pub is_alert: Option<bool>,
1131 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
1132 #[serde(rename = "malware")]
1133 #[serde(skip_serializing_if = "Option::is_none")]
1134 pub malware: Option<Vec<Malware>>,
1135 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
1136 #[serde(rename = "malware_scan_info")]
1137 #[serde(skip_serializing_if = "Option::is_none")]
1138 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
1139 #[doc = "Message\n\nThe error message as reported by the application.\n\nrecommended"]
1140 #[serde(rename = "message")]
1141 #[serde(skip_serializing_if = "Option::is_none")]
1142 pub message: Option<String>,
1143 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
1144 #[serde(rename = "metadata")]
1145 #[serde(skip_serializing_if = "Option::is_none")]
1146 pub metadata: Option<Box<Metadata>>,
1147 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
1148 #[serde(rename = "observables")]
1149 #[serde(skip_serializing_if = "Option::is_none")]
1150 pub observables: Option<Vec<Observable>>,
1151 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
1152 #[serde(rename = "osint")]
1153 #[serde(skip_serializing_if = "Option::is_none")]
1154 pub osint: Option<Vec<Osint>>,
1155 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
1156 #[serde(rename = "policy")]
1157 #[serde(skip_serializing_if = "Option::is_none")]
1158 pub policy: Option<Box<Policy>>,
1159 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
1160 #[serde(rename = "raw_data")]
1161 #[serde(skip_serializing_if = "Option::is_none")]
1162 pub raw_data: Option<String>,
1163 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
1164 #[serde(rename = "raw_data_hash")]
1165 #[serde(skip_serializing_if = "Option::is_none")]
1166 pub raw_data_hash: Option<Box<Fingerprint>>,
1167 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
1168 #[serde(rename = "raw_data_size")]
1169 #[serde(skip_serializing_if = "Option::is_none")]
1170 pub raw_data_size: Option<i64>,
1171 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
1172 #[serde(rename = "risk_details")]
1173 #[serde(skip_serializing_if = "Option::is_none")]
1174 pub risk_details: Option<String>,
1175 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
1176 #[serde(rename = "risk_level")]
1177 #[serde(skip_serializing_if = "Option::is_none")]
1178 pub risk_level: Option<String>,
1179 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
1180 #[serde(rename = "risk_level_id")]
1181 #[serde(skip_serializing_if = "Option::is_none")]
1182 pub risk_level_id: Option<i64>,
1183 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
1184 #[serde(rename = "risk_score")]
1185 #[serde(skip_serializing_if = "Option::is_none")]
1186 pub risk_score: Option<i64>,
1187 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
1188 #[serde(rename = "severity")]
1189 #[serde(skip_serializing_if = "Option::is_none")]
1190 pub severity: Option<String>,
1191 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
1192 #[serde(rename = "severity_id")]
1193 #[serde(skip_serializing_if = "Option::is_none")]
1194 pub severity_id: Option<i64>,
1195 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
1196 #[serde(rename = "start_time")]
1197 #[serde(skip_serializing_if = "Option::is_none")]
1198 pub start_time: Option<i64>,
1199 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
1200 #[serde(rename = "start_time_dt")]
1201 #[serde(skip_serializing_if = "Option::is_none")]
1202 pub start_time_dt: Option<String>,
1203 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
1204 #[serde(rename = "status")]
1205 #[serde(skip_serializing_if = "Option::is_none")]
1206 pub status: Option<String>,
1207 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
1208 #[serde(rename = "status_code")]
1209 #[serde(skip_serializing_if = "Option::is_none")]
1210 pub status_code: Option<String>,
1211 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
1212 #[serde(rename = "status_detail")]
1213 #[serde(skip_serializing_if = "Option::is_none")]
1214 pub status_detail: Option<String>,
1215 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
1216 #[serde(rename = "status_id")]
1217 #[serde(skip_serializing_if = "Option::is_none")]
1218 pub status_id: Option<i64>,
1219 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
1220 #[serde(rename = "time")]
1221 #[serde(skip_serializing_if = "Option::is_none")]
1222 pub time: Option<i64>,
1223 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
1224 #[serde(rename = "time_dt")]
1225 #[serde(skip_serializing_if = "Option::is_none")]
1226 pub time_dt: Option<String>,
1227 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
1228 #[serde(rename = "timezone_offset")]
1229 #[serde(skip_serializing_if = "Option::is_none")]
1230 pub timezone_offset: Option<i64>,
1231 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
1232 #[serde(rename = "type_name")]
1233 #[serde(skip_serializing_if = "Option::is_none")]
1234 pub type_name: Option<String>,
1235 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
1236 #[serde(rename = "type_uid")]
1237 #[serde(skip_serializing_if = "Option::is_none")]
1238 pub type_uid: Option<i64>,
1239 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
1240 #[serde(rename = "unmapped")]
1241 #[serde(skip_serializing_if = "Option::is_none")]
1242 pub unmapped: Option<serde_json::Value>,
1243}
1244#[doc = "Application Lifecycle\n\nApplication Lifecycle events report installation, removal, start, stop of an application or service.\n\n[UID:6002] Category: application | Name: application_lifecycle"]
1245#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1246#[serde(default)]
1247#[non_exhaustive]
1248pub struct ApplicationLifecycle {
1249 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
1250 #[serde(rename = "action")]
1251 #[serde(skip_serializing_if = "Option::is_none")]
1252 pub action: Option<String>,
1253 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
1254 #[serde(rename = "action_id")]
1255 #[serde(skip_serializing_if = "Option::is_none")]
1256 pub action_id: Option<i64>,
1257 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
1258 #[serde(rename = "activity_id")]
1259 #[serde(skip_serializing_if = "Option::is_none")]
1260 pub activity_id: Option<i64>,
1261 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
1262 #[serde(rename = "activity_name")]
1263 #[serde(skip_serializing_if = "Option::is_none")]
1264 pub activity_name: Option<String>,
1265 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
1266 #[serde(rename = "actor")]
1267 #[serde(skip_serializing_if = "Option::is_none")]
1268 pub actor: Option<Box<Actor>>,
1269 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
1270 #[serde(rename = "api")]
1271 #[serde(skip_serializing_if = "Option::is_none")]
1272 pub api: Option<Box<Api>>,
1273 #[doc = "Application\n\nThe application that was affected by the lifecycle event. This also applies to self-updating application systems.\n\nrequired"]
1274 #[serde(rename = "app")]
1275 #[serde(skip_serializing_if = "Option::is_none")]
1276 pub app: Option<Box<Product>>,
1277 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
1278 #[serde(rename = "attacks")]
1279 #[serde(skip_serializing_if = "Option::is_none")]
1280 pub attacks: Option<Vec<Attack>>,
1281 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
1282 #[serde(rename = "authorizations")]
1283 #[serde(skip_serializing_if = "Option::is_none")]
1284 pub authorizations: Option<Vec<Authorization>>,
1285 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
1286 #[serde(rename = "category_name")]
1287 #[serde(skip_serializing_if = "Option::is_none")]
1288 pub category_name: Option<String>,
1289 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
1290 #[serde(rename = "category_uid")]
1291 #[serde(skip_serializing_if = "Option::is_none")]
1292 pub category_uid: Option<i64>,
1293 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Application Lifecycle</code>.\n\noptional"]
1294 #[serde(rename = "class_name")]
1295 #[serde(skip_serializing_if = "Option::is_none")]
1296 pub class_name: Option<String>,
1297 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
1298 #[serde(rename = "class_uid")]
1299 #[serde(skip_serializing_if = "Option::is_none")]
1300 pub class_uid: Option<i64>,
1301 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
1302 #[serde(rename = "cloud")]
1303 #[serde(skip_serializing_if = "Option::is_none")]
1304 pub cloud: Option<Box<Cloud>>,
1305 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1306 #[serde(rename = "confidence")]
1307 #[serde(skip_serializing_if = "Option::is_none")]
1308 pub confidence: Option<String>,
1309 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
1310 #[serde(rename = "confidence_id")]
1311 #[serde(skip_serializing_if = "Option::is_none")]
1312 pub confidence_id: Option<i64>,
1313 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
1314 #[serde(rename = "confidence_score")]
1315 #[serde(skip_serializing_if = "Option::is_none")]
1316 pub confidence_score: Option<i64>,
1317 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
1318 #[serde(rename = "count")]
1319 #[serde(skip_serializing_if = "Option::is_none")]
1320 pub count: Option<i64>,
1321 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
1322 #[serde(rename = "device")]
1323 #[serde(skip_serializing_if = "Option::is_none")]
1324 pub device: Option<Box<Device>>,
1325 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1326 #[serde(rename = "disposition")]
1327 #[serde(skip_serializing_if = "Option::is_none")]
1328 pub disposition: Option<String>,
1329 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
1330 #[serde(rename = "disposition_id")]
1331 #[serde(skip_serializing_if = "Option::is_none")]
1332 pub disposition_id: Option<i64>,
1333 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
1334 #[serde(rename = "duration")]
1335 #[serde(skip_serializing_if = "Option::is_none")]
1336 pub duration: Option<i64>,
1337 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1338 #[serde(rename = "end_time")]
1339 #[serde(skip_serializing_if = "Option::is_none")]
1340 pub end_time: Option<i64>,
1341 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1342 #[serde(rename = "end_time_dt")]
1343 #[serde(skip_serializing_if = "Option::is_none")]
1344 pub end_time_dt: Option<String>,
1345 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
1346 #[serde(rename = "enrichments")]
1347 #[serde(skip_serializing_if = "Option::is_none")]
1348 pub enrichments: Option<Vec<Enrichment>>,
1349 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
1350 #[serde(rename = "firewall_rule")]
1351 #[serde(skip_serializing_if = "Option::is_none")]
1352 pub firewall_rule: Option<Box<FirewallRule>>,
1353 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
1354 #[serde(rename = "is_alert")]
1355 #[serde(skip_serializing_if = "Option::is_none")]
1356 pub is_alert: Option<bool>,
1357 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
1358 #[serde(rename = "malware")]
1359 #[serde(skip_serializing_if = "Option::is_none")]
1360 pub malware: Option<Vec<Malware>>,
1361 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
1362 #[serde(rename = "malware_scan_info")]
1363 #[serde(skip_serializing_if = "Option::is_none")]
1364 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
1365 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
1366 #[serde(rename = "message")]
1367 #[serde(skip_serializing_if = "Option::is_none")]
1368 pub message: Option<String>,
1369 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
1370 #[serde(rename = "metadata")]
1371 #[serde(skip_serializing_if = "Option::is_none")]
1372 pub metadata: Option<Box<Metadata>>,
1373 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
1374 #[serde(rename = "observables")]
1375 #[serde(skip_serializing_if = "Option::is_none")]
1376 pub observables: Option<Vec<Observable>>,
1377 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
1378 #[serde(rename = "osint")]
1379 #[serde(skip_serializing_if = "Option::is_none")]
1380 pub osint: Option<Vec<Osint>>,
1381 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
1382 #[serde(rename = "policy")]
1383 #[serde(skip_serializing_if = "Option::is_none")]
1384 pub policy: Option<Box<Policy>>,
1385 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
1386 #[serde(rename = "raw_data")]
1387 #[serde(skip_serializing_if = "Option::is_none")]
1388 pub raw_data: Option<String>,
1389 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
1390 #[serde(rename = "raw_data_hash")]
1391 #[serde(skip_serializing_if = "Option::is_none")]
1392 pub raw_data_hash: Option<Box<Fingerprint>>,
1393 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
1394 #[serde(rename = "raw_data_size")]
1395 #[serde(skip_serializing_if = "Option::is_none")]
1396 pub raw_data_size: Option<i64>,
1397 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
1398 #[serde(rename = "risk_details")]
1399 #[serde(skip_serializing_if = "Option::is_none")]
1400 pub risk_details: Option<String>,
1401 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
1402 #[serde(rename = "risk_level")]
1403 #[serde(skip_serializing_if = "Option::is_none")]
1404 pub risk_level: Option<String>,
1405 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
1406 #[serde(rename = "risk_level_id")]
1407 #[serde(skip_serializing_if = "Option::is_none")]
1408 pub risk_level_id: Option<i64>,
1409 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
1410 #[serde(rename = "risk_score")]
1411 #[serde(skip_serializing_if = "Option::is_none")]
1412 pub risk_score: Option<i64>,
1413 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
1414 #[serde(rename = "severity")]
1415 #[serde(skip_serializing_if = "Option::is_none")]
1416 pub severity: Option<String>,
1417 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
1418 #[serde(rename = "severity_id")]
1419 #[serde(skip_serializing_if = "Option::is_none")]
1420 pub severity_id: Option<i64>,
1421 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
1422 #[serde(rename = "start_time")]
1423 #[serde(skip_serializing_if = "Option::is_none")]
1424 pub start_time: Option<i64>,
1425 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
1426 #[serde(rename = "start_time_dt")]
1427 #[serde(skip_serializing_if = "Option::is_none")]
1428 pub start_time_dt: Option<String>,
1429 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
1430 #[serde(rename = "status")]
1431 #[serde(skip_serializing_if = "Option::is_none")]
1432 pub status: Option<String>,
1433 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
1434 #[serde(rename = "status_code")]
1435 #[serde(skip_serializing_if = "Option::is_none")]
1436 pub status_code: Option<String>,
1437 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
1438 #[serde(rename = "status_detail")]
1439 #[serde(skip_serializing_if = "Option::is_none")]
1440 pub status_detail: Option<String>,
1441 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
1442 #[serde(rename = "status_id")]
1443 #[serde(skip_serializing_if = "Option::is_none")]
1444 pub status_id: Option<i64>,
1445 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
1446 #[serde(rename = "time")]
1447 #[serde(skip_serializing_if = "Option::is_none")]
1448 pub time: Option<i64>,
1449 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
1450 #[serde(rename = "time_dt")]
1451 #[serde(skip_serializing_if = "Option::is_none")]
1452 pub time_dt: Option<String>,
1453 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
1454 #[serde(rename = "timezone_offset")]
1455 #[serde(skip_serializing_if = "Option::is_none")]
1456 pub timezone_offset: Option<i64>,
1457 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
1458 #[serde(rename = "type_name")]
1459 #[serde(skip_serializing_if = "Option::is_none")]
1460 pub type_name: Option<String>,
1461 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
1462 #[serde(rename = "type_uid")]
1463 #[serde(skip_serializing_if = "Option::is_none")]
1464 pub type_uid: Option<i64>,
1465 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
1466 #[serde(rename = "unmapped")]
1467 #[serde(skip_serializing_if = "Option::is_none")]
1468 pub unmapped: Option<serde_json::Value>,
1469}
1470#[doc = "Application Security Posture Finding\n\nThe Application Security Posture Finding event is a notification about any bug, defect, deficiency, exploit, vulnerability, weakness or any other issue with software and related systems. Application Security Posture Findings typically involve reporting on the greater context including compliance, impacted resources, remediation guidance, specific code defects, and/or vulnerability metadata. Application Security Posture Findings can be reported by Threat & Vulnerability Management (TVM) tools, Application Security Posture Management (ASPM) tools, or other similar tools. Note: if the event producer is a security control, the <code>security_control</code> profile should be applied and its <code>attacks</code> information, if present, should be duplicated into the <code>finding_info</code> object. <br><strong>Note: </strong>If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2007] Category: findings | Name: application_security_posture_finding\n\n**Constraints:**\n* at_least_one: `[application`,`compliance`,`remediation`,`vulnerabilities]`\n"]
1471#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1472#[serde(default)]
1473#[non_exhaustive]
1474pub struct ApplicationSecurityPostureFinding {
1475 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
1476 #[serde(rename = "action")]
1477 #[serde(skip_serializing_if = "Option::is_none")]
1478 pub action: Option<String>,
1479 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
1480 #[serde(rename = "action_id")]
1481 #[serde(skip_serializing_if = "Option::is_none")]
1482 pub action_id: Option<i64>,
1483 #[doc = "Activity ID\n\nThe normalized identifier of the finding activity.\n\nrequired"]
1484 #[serde(rename = "activity_id")]
1485 #[serde(skip_serializing_if = "Option::is_none")]
1486 pub activity_id: Option<i64>,
1487 #[doc = "Activity\n\nThe finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
1488 #[serde(rename = "activity_name")]
1489 #[serde(skip_serializing_if = "Option::is_none")]
1490 pub activity_name: Option<String>,
1491 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
1492 #[serde(rename = "actor")]
1493 #[serde(skip_serializing_if = "Option::is_none")]
1494 pub actor: Option<Box<Actor>>,
1495 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
1496 #[serde(rename = "api")]
1497 #[serde(skip_serializing_if = "Option::is_none")]
1498 pub api: Option<Box<Api>>,
1499 #[doc = "Related Application\n\nAn Application describes the details for an inventoried application as reported by an Application Security tool or other Developer-centric tooling. Applications can be defined as Kubernetes resources, Containerized resources, or application hosting-specific cloud sources such as AWS Elastic BeanStalk, AWS Lightsail, or Azure Logic Apps.\n\nrecommended"]
1500 #[serde(rename = "application")]
1501 #[serde(skip_serializing_if = "Option::is_none")]
1502 pub application: Option<Box<Application>>,
1503 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
1504 #[serde(rename = "assignee")]
1505 #[serde(skip_serializing_if = "Option::is_none")]
1506 pub assignee: Option<Box<User>>,
1507 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
1508 #[serde(rename = "assignee_group")]
1509 #[serde(skip_serializing_if = "Option::is_none")]
1510 pub assignee_group: Option<Box<Group>>,
1511 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
1512 #[serde(rename = "attacks")]
1513 #[serde(skip_serializing_if = "Option::is_none")]
1514 pub attacks: Option<Vec<Attack>>,
1515 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
1516 #[serde(rename = "authorizations")]
1517 #[serde(skip_serializing_if = "Option::is_none")]
1518 pub authorizations: Option<Vec<Authorization>>,
1519 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
1520 #[serde(rename = "category_name")]
1521 #[serde(skip_serializing_if = "Option::is_none")]
1522 pub category_name: Option<String>,
1523 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
1524 #[serde(rename = "category_uid")]
1525 #[serde(skip_serializing_if = "Option::is_none")]
1526 pub category_uid: Option<i64>,
1527 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Application Security Posture Finding</code>.\n\noptional"]
1528 #[serde(rename = "class_name")]
1529 #[serde(skip_serializing_if = "Option::is_none")]
1530 pub class_name: Option<String>,
1531 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
1532 #[serde(rename = "class_uid")]
1533 #[serde(skip_serializing_if = "Option::is_none")]
1534 pub class_uid: Option<i64>,
1535 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
1536 #[serde(rename = "cloud")]
1537 #[serde(skip_serializing_if = "Option::is_none")]
1538 pub cloud: Option<Box<Cloud>>,
1539 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
1540 #[serde(rename = "comment")]
1541 #[serde(skip_serializing_if = "Option::is_none")]
1542 pub comment: Option<String>,
1543 #[doc = "Related Compliance\n\nProvides compliance context to vulnerabilities and other weaknesses that are reported as part of an Application Security or Vulnerability Management tool's built-in compliance framework mapping.\n\nrecommended"]
1544 #[serde(rename = "compliance")]
1545 #[serde(skip_serializing_if = "Option::is_none")]
1546 pub compliance: Option<Box<Compliance>>,
1547 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1548 #[serde(rename = "confidence")]
1549 #[serde(skip_serializing_if = "Option::is_none")]
1550 pub confidence: Option<String>,
1551 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
1552 #[serde(rename = "confidence_id")]
1553 #[serde(skip_serializing_if = "Option::is_none")]
1554 pub confidence_id: Option<i64>,
1555 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
1556 #[serde(rename = "confidence_score")]
1557 #[serde(skip_serializing_if = "Option::is_none")]
1558 pub confidence_score: Option<i64>,
1559 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
1560 #[serde(rename = "count")]
1561 #[serde(skip_serializing_if = "Option::is_none")]
1562 pub count: Option<i64>,
1563 #[doc = "Device\n\nDescribes the affected device/host. If applicable, it can be used in conjunction with <code>Resource(s)</code>. <p> e.g. Specific details about an AWS EC2 instance, that is affected by the Finding.</p>\n\noptional"]
1564 #[serde(rename = "device")]
1565 #[serde(skip_serializing_if = "Option::is_none")]
1566 pub device: Option<Box<Device>>,
1567 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1568 #[serde(rename = "disposition")]
1569 #[serde(skip_serializing_if = "Option::is_none")]
1570 pub disposition: Option<String>,
1571 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
1572 #[serde(rename = "disposition_id")]
1573 #[serde(skip_serializing_if = "Option::is_none")]
1574 pub disposition_id: Option<i64>,
1575 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
1576 #[serde(rename = "duration")]
1577 #[serde(skip_serializing_if = "Option::is_none")]
1578 pub duration: Option<i64>,
1579 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
1580 #[serde(rename = "end_time")]
1581 #[serde(skip_serializing_if = "Option::is_none")]
1582 pub end_time: Option<i64>,
1583 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
1584 #[serde(rename = "end_time_dt")]
1585 #[serde(skip_serializing_if = "Option::is_none")]
1586 pub end_time_dt: Option<String>,
1587 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
1588 #[serde(rename = "enrichments")]
1589 #[serde(skip_serializing_if = "Option::is_none")]
1590 pub enrichments: Option<Vec<Enrichment>>,
1591 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
1592 #[serde(rename = "finding_info")]
1593 #[serde(skip_serializing_if = "Option::is_none")]
1594 pub finding_info: Option<Box<FindingInfo>>,
1595 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
1596 #[serde(rename = "firewall_rule")]
1597 #[serde(skip_serializing_if = "Option::is_none")]
1598 pub firewall_rule: Option<Box<FirewallRule>>,
1599 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
1600 #[serde(rename = "impact")]
1601 #[serde(skip_serializing_if = "Option::is_none")]
1602 pub impact: Option<String>,
1603 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
1604 #[serde(rename = "impact_id")]
1605 #[serde(skip_serializing_if = "Option::is_none")]
1606 pub impact_id: Option<i64>,
1607 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
1608 #[serde(rename = "impact_score")]
1609 #[serde(skip_serializing_if = "Option::is_none")]
1610 pub impact_score: Option<i64>,
1611 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
1612 #[serde(rename = "is_alert")]
1613 #[serde(skip_serializing_if = "Option::is_none")]
1614 pub is_alert: Option<bool>,
1615 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
1616 #[serde(rename = "is_suspected_breach")]
1617 #[serde(skip_serializing_if = "Option::is_none")]
1618 pub is_suspected_breach: Option<bool>,
1619 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
1620 #[serde(rename = "malware")]
1621 #[serde(skip_serializing_if = "Option::is_none")]
1622 pub malware: Option<Vec<Malware>>,
1623 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
1624 #[serde(rename = "malware_scan_info")]
1625 #[serde(skip_serializing_if = "Option::is_none")]
1626 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
1627 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
1628 #[serde(rename = "message")]
1629 #[serde(skip_serializing_if = "Option::is_none")]
1630 pub message: Option<String>,
1631 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
1632 #[serde(rename = "metadata")]
1633 #[serde(skip_serializing_if = "Option::is_none")]
1634 pub metadata: Option<Box<Metadata>>,
1635 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
1636 #[serde(rename = "observables")]
1637 #[serde(skip_serializing_if = "Option::is_none")]
1638 pub observables: Option<Vec<Observable>>,
1639 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
1640 #[serde(rename = "osint")]
1641 #[serde(skip_serializing_if = "Option::is_none")]
1642 pub osint: Option<Vec<Osint>>,
1643 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
1644 #[serde(rename = "policy")]
1645 #[serde(skip_serializing_if = "Option::is_none")]
1646 pub policy: Option<Box<Policy>>,
1647 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1648 #[serde(rename = "priority")]
1649 #[serde(skip_serializing_if = "Option::is_none")]
1650 pub priority: Option<String>,
1651 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
1652 #[serde(rename = "priority_id")]
1653 #[serde(skip_serializing_if = "Option::is_none")]
1654 pub priority_id: Option<i64>,
1655 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
1656 #[serde(rename = "raw_data")]
1657 #[serde(skip_serializing_if = "Option::is_none")]
1658 pub raw_data: Option<String>,
1659 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
1660 #[serde(rename = "raw_data_hash")]
1661 #[serde(skip_serializing_if = "Option::is_none")]
1662 pub raw_data_hash: Option<Box<Fingerprint>>,
1663 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
1664 #[serde(rename = "raw_data_size")]
1665 #[serde(skip_serializing_if = "Option::is_none")]
1666 pub raw_data_size: Option<i64>,
1667 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified vulnerabilities or weaknesses.\n\nrecommended"]
1668 #[serde(rename = "remediation")]
1669 #[serde(skip_serializing_if = "Option::is_none")]
1670 pub remediation: Option<Box<Remediation>>,
1671 #[doc = "Affected Resources\n\nDescribes details about the resource/resources that are affected by the vulnerability/vulnerabilities.\n\nrecommended"]
1672 #[serde(rename = "resources")]
1673 #[serde(skip_serializing_if = "Option::is_none")]
1674 pub resources: Option<Vec<ResourceDetails>>,
1675 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
1676 #[serde(rename = "risk_details")]
1677 #[serde(skip_serializing_if = "Option::is_none")]
1678 pub risk_details: Option<String>,
1679 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
1680 #[serde(rename = "risk_level")]
1681 #[serde(skip_serializing_if = "Option::is_none")]
1682 pub risk_level: Option<String>,
1683 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
1684 #[serde(rename = "risk_level_id")]
1685 #[serde(skip_serializing_if = "Option::is_none")]
1686 pub risk_level_id: Option<i64>,
1687 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
1688 #[serde(rename = "risk_score")]
1689 #[serde(skip_serializing_if = "Option::is_none")]
1690 pub risk_score: Option<i64>,
1691 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
1692 #[serde(rename = "severity")]
1693 #[serde(skip_serializing_if = "Option::is_none")]
1694 pub severity: Option<String>,
1695 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
1696 #[serde(rename = "severity_id")]
1697 #[serde(skip_serializing_if = "Option::is_none")]
1698 pub severity_id: Option<i64>,
1699 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
1700 #[serde(rename = "src_url")]
1701 #[serde(skip_serializing_if = "Option::is_none")]
1702 pub src_url: Option<String>,
1703 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
1704 #[serde(rename = "start_time")]
1705 #[serde(skip_serializing_if = "Option::is_none")]
1706 pub start_time: Option<i64>,
1707 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
1708 #[serde(rename = "start_time_dt")]
1709 #[serde(skip_serializing_if = "Option::is_none")]
1710 pub start_time_dt: Option<String>,
1711 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
1712 #[serde(rename = "status")]
1713 #[serde(skip_serializing_if = "Option::is_none")]
1714 pub status: Option<String>,
1715 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
1716 #[serde(rename = "status_code")]
1717 #[serde(skip_serializing_if = "Option::is_none")]
1718 pub status_code: Option<String>,
1719 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
1720 #[serde(rename = "status_detail")]
1721 #[serde(skip_serializing_if = "Option::is_none")]
1722 pub status_detail: Option<String>,
1723 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
1724 #[serde(rename = "status_id")]
1725 #[serde(skip_serializing_if = "Option::is_none")]
1726 pub status_id: Option<i64>,
1727 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
1728 #[serde(rename = "ticket")]
1729 #[serde(skip_serializing_if = "Option::is_none")]
1730 pub ticket: Option<Box<Ticket>>,
1731 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
1732 #[serde(rename = "tickets")]
1733 #[serde(skip_serializing_if = "Option::is_none")]
1734 pub tickets: Option<Vec<Ticket>>,
1735 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
1736 #[serde(rename = "time")]
1737 #[serde(skip_serializing_if = "Option::is_none")]
1738 pub time: Option<i64>,
1739 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
1740 #[serde(rename = "time_dt")]
1741 #[serde(skip_serializing_if = "Option::is_none")]
1742 pub time_dt: Option<String>,
1743 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
1744 #[serde(rename = "timezone_offset")]
1745 #[serde(skip_serializing_if = "Option::is_none")]
1746 pub timezone_offset: Option<i64>,
1747 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
1748 #[serde(rename = "type_name")]
1749 #[serde(skip_serializing_if = "Option::is_none")]
1750 pub type_name: Option<String>,
1751 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
1752 #[serde(rename = "type_uid")]
1753 #[serde(skip_serializing_if = "Option::is_none")]
1754 pub type_uid: Option<i64>,
1755 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
1756 #[serde(rename = "unmapped")]
1757 #[serde(skip_serializing_if = "Option::is_none")]
1758 pub unmapped: Option<serde_json::Value>,
1759 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
1760 #[serde(rename = "vendor_attributes")]
1761 #[serde(skip_serializing_if = "Option::is_none")]
1762 pub vendor_attributes: Option<Box<VendorAttributes>>,
1763 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
1764 #[serde(rename = "verdict")]
1765 #[serde(skip_serializing_if = "Option::is_none")]
1766 pub verdict: Option<String>,
1767 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
1768 #[serde(rename = "verdict_id")]
1769 #[serde(skip_serializing_if = "Option::is_none")]
1770 pub verdict_id: Option<i64>,
1771 #[doc = "Vulnerabilities\n\nThis object describes vulnerabilities reported in a security finding.\n\nrecommended"]
1772 #[serde(rename = "vulnerabilities")]
1773 #[serde(skip_serializing_if = "Option::is_none")]
1774 pub vulnerabilities: Option<Vec<Vulnerability>>,
1775}
1776#[doc = "Authentication\n\nAuthentication events report authentication session activities, including user attempts to log on or log off, regardless of success, as well as other key stages within the authentication process. These events are typically generated by authentication services, such as Kerberos, OIDC, or SAML, and may include information about the user, the authentication method used, and the status of the authentication attempt.\n\n[UID:3002] Category: iam | Name: authentication\n\n**Constraints:**\n* at_least_one: `[service`,`dst_endpoint]`\n"]
1777#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
1778#[serde(default)]
1779#[non_exhaustive]
1780pub struct Authentication {
1781 #[doc = "Account Switch Type\n\nThe account switch method, normalized to the caption of the account_switch_type_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
1782 #[serde(rename = "account_switch_type")]
1783 #[serde(skip_serializing_if = "Option::is_none")]
1784 pub account_switch_type: Option<String>,
1785 #[doc = "Account Switch Type ID\n\nThe normalized identifier of the account switch method.\n\nrecommended"]
1786 #[serde(rename = "account_switch_type_id")]
1787 #[serde(skip_serializing_if = "Option::is_none")]
1788 pub account_switch_type_id: Option<i64>,
1789 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
1790 #[serde(rename = "action")]
1791 #[serde(skip_serializing_if = "Option::is_none")]
1792 pub action: Option<String>,
1793 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
1794 #[serde(rename = "action_id")]
1795 #[serde(skip_serializing_if = "Option::is_none")]
1796 pub action_id: Option<i64>,
1797 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
1798 #[serde(rename = "activity_id")]
1799 #[serde(skip_serializing_if = "Option::is_none")]
1800 pub activity_id: Option<i64>,
1801 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
1802 #[serde(rename = "activity_name")]
1803 #[serde(skip_serializing_if = "Option::is_none")]
1804 pub activity_name: Option<String>,
1805 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
1806 #[serde(rename = "actor")]
1807 #[serde(skip_serializing_if = "Option::is_none")]
1808 pub actor: Option<Box<Actor>>,
1809 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
1810 #[serde(rename = "api")]
1811 #[serde(skip_serializing_if = "Option::is_none")]
1812 pub api: Option<Box<Api>>,
1813 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
1814 #[serde(rename = "attacks")]
1815 #[serde(skip_serializing_if = "Option::is_none")]
1816 pub attacks: Option<Vec<Attack>>,
1817 #[doc = "Authentication Factors\n\nDescribes a category of methods used for identity verification in an authentication attempt.\n\noptional"]
1818 #[serde(rename = "auth_factors")]
1819 #[serde(skip_serializing_if = "Option::is_none")]
1820 pub auth_factors: Option<Vec<AuthFactor>>,
1821 #[doc = "Auth Protocol\n\nThe authentication protocol as defined by the caption of <code>auth_protocol_id</code>. In the case of <code>Other</code>, it is defined by the event source.\n\nrecommended"]
1822 #[serde(rename = "auth_protocol")]
1823 #[serde(skip_serializing_if = "Option::is_none")]
1824 pub auth_protocol: Option<String>,
1825 #[doc = "Auth Protocol ID\n\nThe normalized identifier of the authentication protocol used to create the user session.\n\nrecommended"]
1826 #[serde(rename = "auth_protocol_id")]
1827 #[serde(skip_serializing_if = "Option::is_none")]
1828 pub auth_protocol_id: Option<i64>,
1829 #[doc = "Authentication Token\n\nThe authentication token, ticket, or assertion, e.g. <code>Kerberos</code>, <code>OIDC</code>, <code>SAML</code>.\n\noptional"]
1830 #[serde(rename = "authentication_token")]
1831 #[serde(skip_serializing_if = "Option::is_none")]
1832 pub authentication_token: Option<Box<AuthenticationToken>>,
1833 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
1834 #[serde(rename = "authorizations")]
1835 #[serde(skip_serializing_if = "Option::is_none")]
1836 pub authorizations: Option<Vec<Authorization>>,
1837 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
1838 #[serde(rename = "category_name")]
1839 #[serde(skip_serializing_if = "Option::is_none")]
1840 pub category_name: Option<String>,
1841 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
1842 #[serde(rename = "category_uid")]
1843 #[serde(skip_serializing_if = "Option::is_none")]
1844 pub category_uid: Option<i64>,
1845 #[doc = "Certificate\n\nThe certificate associated with the authentication or pre-authentication (Kerberos).\n\nrecommended"]
1846 #[serde(rename = "certificate")]
1847 #[serde(skip_serializing_if = "Option::is_none")]
1848 pub certificate: Option<Box<Certificate>>,
1849 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Authentication</code>.\n\noptional"]
1850 #[serde(rename = "class_name")]
1851 #[serde(skip_serializing_if = "Option::is_none")]
1852 pub class_name: Option<String>,
1853 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
1854 #[serde(rename = "class_uid")]
1855 #[serde(skip_serializing_if = "Option::is_none")]
1856 pub class_uid: Option<i64>,
1857 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
1858 #[serde(rename = "cloud")]
1859 #[serde(skip_serializing_if = "Option::is_none")]
1860 pub cloud: Option<Box<Cloud>>,
1861 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1862 #[serde(rename = "confidence")]
1863 #[serde(skip_serializing_if = "Option::is_none")]
1864 pub confidence: Option<String>,
1865 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
1866 #[serde(rename = "confidence_id")]
1867 #[serde(skip_serializing_if = "Option::is_none")]
1868 pub confidence_id: Option<i64>,
1869 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
1870 #[serde(rename = "confidence_score")]
1871 #[serde(skip_serializing_if = "Option::is_none")]
1872 pub confidence_score: Option<i64>,
1873 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
1874 #[serde(rename = "count")]
1875 #[serde(skip_serializing_if = "Option::is_none")]
1876 pub count: Option<i64>,
1877 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
1878 #[serde(rename = "device")]
1879 #[serde(skip_serializing_if = "Option::is_none")]
1880 pub device: Option<Box<Device>>,
1881 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
1882 #[serde(rename = "disposition")]
1883 #[serde(skip_serializing_if = "Option::is_none")]
1884 pub disposition: Option<String>,
1885 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
1886 #[serde(rename = "disposition_id")]
1887 #[serde(skip_serializing_if = "Option::is_none")]
1888 pub disposition_id: Option<i64>,
1889 #[doc = "Destination Endpoint\n\nThe endpoint to which the authentication was targeted.\n\nrecommended"]
1890 #[serde(rename = "dst_endpoint")]
1891 #[serde(skip_serializing_if = "Option::is_none")]
1892 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
1893 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
1894 #[serde(rename = "duration")]
1895 #[serde(skip_serializing_if = "Option::is_none")]
1896 pub duration: Option<i64>,
1897 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1898 #[serde(rename = "end_time")]
1899 #[serde(skip_serializing_if = "Option::is_none")]
1900 pub end_time: Option<i64>,
1901 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
1902 #[serde(rename = "end_time_dt")]
1903 #[serde(skip_serializing_if = "Option::is_none")]
1904 pub end_time_dt: Option<String>,
1905 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
1906 #[serde(rename = "enrichments")]
1907 #[serde(skip_serializing_if = "Option::is_none")]
1908 pub enrichments: Option<Vec<Enrichment>>,
1909 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
1910 #[serde(rename = "firewall_rule")]
1911 #[serde(skip_serializing_if = "Option::is_none")]
1912 pub firewall_rule: Option<Box<FirewallRule>>,
1913 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
1914 #[serde(rename = "http_request")]
1915 #[serde(skip_serializing_if = "Option::is_none")]
1916 pub http_request: Option<Box<HttpRequest>>,
1917 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
1918 #[serde(rename = "http_response")]
1919 #[serde(skip_serializing_if = "Option::is_none")]
1920 pub http_response: Option<Box<HttpResponse>>,
1921 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
1922 #[serde(rename = "is_alert")]
1923 #[serde(skip_serializing_if = "Option::is_none")]
1924 pub is_alert: Option<bool>,
1925 #[doc = "Cleartext Credentials\n\nIndicates whether the credentials were passed in clear text.<p><b>Note:</b> True if the credentials were passed in a clear text protocol such as FTP or TELNET, or if Windows detected that a user's logon password was passed to the authentication package in clear text.</p>\n\noptional"]
1926 #[serde(rename = "is_cleartext")]
1927 #[serde(skip_serializing_if = "Option::is_none")]
1928 pub is_cleartext: Option<bool>,
1929 #[doc = "Multi Factor Authentication\n\nIndicates whether Multi Factor Authentication was used during authentication.\n\nrecommended"]
1930 #[serde(rename = "is_mfa")]
1931 #[serde(skip_serializing_if = "Option::is_none")]
1932 pub is_mfa: Option<bool>,
1933 #[doc = "New Logon\n\nIndicates logon is from a device not seen before or a first time account logon.\n\noptional"]
1934 #[serde(rename = "is_new_logon")]
1935 #[serde(skip_serializing_if = "Option::is_none")]
1936 pub is_new_logon: Option<bool>,
1937 #[doc = "Remote\n\nThe attempted authentication is over a remote connection.\n\nrecommended"]
1938 #[serde(rename = "is_remote")]
1939 #[serde(skip_serializing_if = "Option::is_none")]
1940 pub is_remote: Option<bool>,
1941 #[doc = "Logon Process\n\nThe trusted process that validated the authentication credentials.\n\noptional"]
1942 #[serde(rename = "logon_process")]
1943 #[serde(skip_serializing_if = "Option::is_none")]
1944 pub logon_process: Option<Box<Process>>,
1945 #[doc = "Logon Type\n\nThe logon type, normalized to the caption of the logon_type_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
1946 #[serde(rename = "logon_type")]
1947 #[serde(skip_serializing_if = "Option::is_none")]
1948 pub logon_type: Option<String>,
1949 #[doc = "Logon Type ID\n\nThe normalized logon type identifier.\n\nrecommended"]
1950 #[serde(rename = "logon_type_id")]
1951 #[serde(skip_serializing_if = "Option::is_none")]
1952 pub logon_type_id: Option<i64>,
1953 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
1954 #[serde(rename = "malware")]
1955 #[serde(skip_serializing_if = "Option::is_none")]
1956 pub malware: Option<Vec<Malware>>,
1957 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
1958 #[serde(rename = "malware_scan_info")]
1959 #[serde(skip_serializing_if = "Option::is_none")]
1960 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
1961 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
1962 #[serde(rename = "message")]
1963 #[serde(skip_serializing_if = "Option::is_none")]
1964 pub message: Option<String>,
1965 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
1966 #[serde(rename = "metadata")]
1967 #[serde(skip_serializing_if = "Option::is_none")]
1968 pub metadata: Option<Box<Metadata>>,
1969 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
1970 #[serde(rename = "observables")]
1971 #[serde(skip_serializing_if = "Option::is_none")]
1972 pub observables: Option<Vec<Observable>>,
1973 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
1974 #[serde(rename = "osint")]
1975 #[serde(skip_serializing_if = "Option::is_none")]
1976 pub osint: Option<Vec<Osint>>,
1977 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
1978 #[serde(rename = "policy")]
1979 #[serde(skip_serializing_if = "Option::is_none")]
1980 pub policy: Option<Box<Policy>>,
1981 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
1982 #[serde(rename = "raw_data")]
1983 #[serde(skip_serializing_if = "Option::is_none")]
1984 pub raw_data: Option<String>,
1985 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
1986 #[serde(rename = "raw_data_hash")]
1987 #[serde(skip_serializing_if = "Option::is_none")]
1988 pub raw_data_hash: Option<Box<Fingerprint>>,
1989 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
1990 #[serde(rename = "raw_data_size")]
1991 #[serde(skip_serializing_if = "Option::is_none")]
1992 pub raw_data_size: Option<i64>,
1993 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
1994 #[serde(rename = "risk_details")]
1995 #[serde(skip_serializing_if = "Option::is_none")]
1996 pub risk_details: Option<String>,
1997 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
1998 #[serde(rename = "risk_level")]
1999 #[serde(skip_serializing_if = "Option::is_none")]
2000 pub risk_level: Option<String>,
2001 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
2002 #[serde(rename = "risk_level_id")]
2003 #[serde(skip_serializing_if = "Option::is_none")]
2004 pub risk_level_id: Option<i64>,
2005 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
2006 #[serde(rename = "risk_score")]
2007 #[serde(skip_serializing_if = "Option::is_none")]
2008 pub risk_score: Option<i64>,
2009 #[doc = "Service\n\nThe service or gateway to which the user or process is being authenticated\n\nrecommended"]
2010 #[serde(rename = "service")]
2011 #[serde(skip_serializing_if = "Option::is_none")]
2012 pub service: Option<Box<Service>>,
2013 #[doc = "Session\n\nThe authenticated user or service session.\n\nrecommended"]
2014 #[serde(rename = "session")]
2015 #[serde(skip_serializing_if = "Option::is_none")]
2016 pub session: Option<Box<Session>>,
2017 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
2018 #[serde(rename = "severity")]
2019 #[serde(skip_serializing_if = "Option::is_none")]
2020 pub severity: Option<String>,
2021 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
2022 #[serde(rename = "severity_id")]
2023 #[serde(skip_serializing_if = "Option::is_none")]
2024 pub severity_id: Option<i64>,
2025 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
2026 #[serde(rename = "src_endpoint")]
2027 #[serde(skip_serializing_if = "Option::is_none")]
2028 pub src_endpoint: Option<Box<NetworkEndpoint>>,
2029 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2030 #[serde(rename = "start_time")]
2031 #[serde(skip_serializing_if = "Option::is_none")]
2032 pub start_time: Option<i64>,
2033 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2034 #[serde(rename = "start_time_dt")]
2035 #[serde(skip_serializing_if = "Option::is_none")]
2036 pub start_time_dt: Option<String>,
2037 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
2038 #[serde(rename = "status")]
2039 #[serde(skip_serializing_if = "Option::is_none")]
2040 pub status: Option<String>,
2041 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
2042 #[serde(rename = "status_code")]
2043 #[serde(skip_serializing_if = "Option::is_none")]
2044 pub status_code: Option<String>,
2045 #[doc = "Status Detail\n\nThe details about the authentication request. For example, possible details for Windows logon or logoff events are:<ul><li>Success</li><ul><li>LOGOFF_USER_INITIATED</li><li>LOGOFF_OTHER</li></ul><li>Failure</li><ul><li>USER_DOES_NOT_EXIST</li><li>INVALID_CREDENTIALS</li><li>ACCOUNT_DISABLED</li><li>ACCOUNT_LOCKED_OUT</li><li>PASSWORD_EXPIRED</li></ul></ul>\n\nrecommended"]
2046 #[serde(rename = "status_detail")]
2047 #[serde(skip_serializing_if = "Option::is_none")]
2048 pub status_detail: Option<String>,
2049 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
2050 #[serde(rename = "status_id")]
2051 #[serde(skip_serializing_if = "Option::is_none")]
2052 pub status_id: Option<i64>,
2053 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
2054 #[serde(rename = "time")]
2055 #[serde(skip_serializing_if = "Option::is_none")]
2056 pub time: Option<i64>,
2057 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
2058 #[serde(rename = "time_dt")]
2059 #[serde(skip_serializing_if = "Option::is_none")]
2060 pub time_dt: Option<String>,
2061 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
2062 #[serde(rename = "timezone_offset")]
2063 #[serde(skip_serializing_if = "Option::is_none")]
2064 pub timezone_offset: Option<i64>,
2065 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
2066 #[serde(rename = "type_name")]
2067 #[serde(skip_serializing_if = "Option::is_none")]
2068 pub type_name: Option<String>,
2069 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
2070 #[serde(rename = "type_uid")]
2071 #[serde(skip_serializing_if = "Option::is_none")]
2072 pub type_uid: Option<i64>,
2073 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
2074 #[serde(rename = "unmapped")]
2075 #[serde(skip_serializing_if = "Option::is_none")]
2076 pub unmapped: Option<serde_json::Value>,
2077 #[doc = "User\n\nThe subject (user/role or account) to authenticate.\n\nrequired"]
2078 #[serde(rename = "user")]
2079 #[serde(skip_serializing_if = "Option::is_none")]
2080 pub user: Option<Box<User>>,
2081}
2082#[doc = "Authorize Session\n\nAuthorize Session events report privileges or groups assigned to a new user session, usually at login time.\n\n[UID:3003] Category: iam | Name: authorize_session\n\n**Constraints:**\n* just_one: `[privileges`,`group]`\n"]
2083#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2084#[serde(default)]
2085#[non_exhaustive]
2086pub struct AuthorizeSession {
2087 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
2088 #[serde(rename = "action")]
2089 #[serde(skip_serializing_if = "Option::is_none")]
2090 pub action: Option<String>,
2091 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
2092 #[serde(rename = "action_id")]
2093 #[serde(skip_serializing_if = "Option::is_none")]
2094 pub action_id: Option<i64>,
2095 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
2096 #[serde(rename = "activity_id")]
2097 #[serde(skip_serializing_if = "Option::is_none")]
2098 pub activity_id: Option<i64>,
2099 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
2100 #[serde(rename = "activity_name")]
2101 #[serde(skip_serializing_if = "Option::is_none")]
2102 pub activity_name: Option<String>,
2103 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
2104 #[serde(rename = "actor")]
2105 #[serde(skip_serializing_if = "Option::is_none")]
2106 pub actor: Option<Box<Actor>>,
2107 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
2108 #[serde(rename = "api")]
2109 #[serde(skip_serializing_if = "Option::is_none")]
2110 pub api: Option<Box<Api>>,
2111 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
2112 #[serde(rename = "attacks")]
2113 #[serde(skip_serializing_if = "Option::is_none")]
2114 pub attacks: Option<Vec<Attack>>,
2115 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
2116 #[serde(rename = "authorizations")]
2117 #[serde(skip_serializing_if = "Option::is_none")]
2118 pub authorizations: Option<Vec<Authorization>>,
2119 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
2120 #[serde(rename = "category_name")]
2121 #[serde(skip_serializing_if = "Option::is_none")]
2122 pub category_name: Option<String>,
2123 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
2124 #[serde(rename = "category_uid")]
2125 #[serde(skip_serializing_if = "Option::is_none")]
2126 pub category_uid: Option<i64>,
2127 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Authorize Session</code>.\n\noptional"]
2128 #[serde(rename = "class_name")]
2129 #[serde(skip_serializing_if = "Option::is_none")]
2130 pub class_name: Option<String>,
2131 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
2132 #[serde(rename = "class_uid")]
2133 #[serde(skip_serializing_if = "Option::is_none")]
2134 pub class_uid: Option<i64>,
2135 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
2136 #[serde(rename = "cloud")]
2137 #[serde(skip_serializing_if = "Option::is_none")]
2138 pub cloud: Option<Box<Cloud>>,
2139 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2140 #[serde(rename = "confidence")]
2141 #[serde(skip_serializing_if = "Option::is_none")]
2142 pub confidence: Option<String>,
2143 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
2144 #[serde(rename = "confidence_id")]
2145 #[serde(skip_serializing_if = "Option::is_none")]
2146 pub confidence_id: Option<i64>,
2147 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
2148 #[serde(rename = "confidence_score")]
2149 #[serde(skip_serializing_if = "Option::is_none")]
2150 pub confidence_score: Option<i64>,
2151 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
2152 #[serde(rename = "count")]
2153 #[serde(skip_serializing_if = "Option::is_none")]
2154 pub count: Option<i64>,
2155 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
2156 #[serde(rename = "device")]
2157 #[serde(skip_serializing_if = "Option::is_none")]
2158 pub device: Option<Box<Device>>,
2159 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2160 #[serde(rename = "disposition")]
2161 #[serde(skip_serializing_if = "Option::is_none")]
2162 pub disposition: Option<String>,
2163 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
2164 #[serde(rename = "disposition_id")]
2165 #[serde(skip_serializing_if = "Option::is_none")]
2166 pub disposition_id: Option<i64>,
2167 #[doc = "Destination Endpoint\n\nThe Endpoint for which the user session was targeted.\n\noptional"]
2168 #[serde(rename = "dst_endpoint")]
2169 #[serde(skip_serializing_if = "Option::is_none")]
2170 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
2171 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
2172 #[serde(rename = "duration")]
2173 #[serde(skip_serializing_if = "Option::is_none")]
2174 pub duration: Option<i64>,
2175 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2176 #[serde(rename = "end_time")]
2177 #[serde(skip_serializing_if = "Option::is_none")]
2178 pub end_time: Option<i64>,
2179 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2180 #[serde(rename = "end_time_dt")]
2181 #[serde(skip_serializing_if = "Option::is_none")]
2182 pub end_time_dt: Option<String>,
2183 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
2184 #[serde(rename = "enrichments")]
2185 #[serde(skip_serializing_if = "Option::is_none")]
2186 pub enrichments: Option<Vec<Enrichment>>,
2187 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
2188 #[serde(rename = "firewall_rule")]
2189 #[serde(skip_serializing_if = "Option::is_none")]
2190 pub firewall_rule: Option<Box<FirewallRule>>,
2191 #[doc = "Group\n\nGroup that was assigned to the new user session.\n\nrecommended"]
2192 #[serde(rename = "group")]
2193 #[serde(skip_serializing_if = "Option::is_none")]
2194 pub group: Option<Box<Group>>,
2195 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
2196 #[serde(rename = "http_request")]
2197 #[serde(skip_serializing_if = "Option::is_none")]
2198 pub http_request: Option<Box<HttpRequest>>,
2199 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
2200 #[serde(rename = "http_response")]
2201 #[serde(skip_serializing_if = "Option::is_none")]
2202 pub http_response: Option<Box<HttpResponse>>,
2203 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
2204 #[serde(rename = "is_alert")]
2205 #[serde(skip_serializing_if = "Option::is_none")]
2206 pub is_alert: Option<bool>,
2207 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
2208 #[serde(rename = "malware")]
2209 #[serde(skip_serializing_if = "Option::is_none")]
2210 pub malware: Option<Vec<Malware>>,
2211 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
2212 #[serde(rename = "malware_scan_info")]
2213 #[serde(skip_serializing_if = "Option::is_none")]
2214 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
2215 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
2216 #[serde(rename = "message")]
2217 #[serde(skip_serializing_if = "Option::is_none")]
2218 pub message: Option<String>,
2219 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
2220 #[serde(rename = "metadata")]
2221 #[serde(skip_serializing_if = "Option::is_none")]
2222 pub metadata: Option<Box<Metadata>>,
2223 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
2224 #[serde(rename = "observables")]
2225 #[serde(skip_serializing_if = "Option::is_none")]
2226 pub observables: Option<Vec<Observable>>,
2227 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
2228 #[serde(rename = "osint")]
2229 #[serde(skip_serializing_if = "Option::is_none")]
2230 pub osint: Option<Vec<Osint>>,
2231 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
2232 #[serde(rename = "policy")]
2233 #[serde(skip_serializing_if = "Option::is_none")]
2234 pub policy: Option<Box<Policy>>,
2235 #[doc = "Privileges\n\nThe list of sensitive privileges, assigned to the new user session.\n\nrecommended"]
2236 #[serde(rename = "privileges")]
2237 #[serde(skip_serializing_if = "Option::is_none")]
2238 pub privileges: Option<Vec<String>>,
2239 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
2240 #[serde(rename = "raw_data")]
2241 #[serde(skip_serializing_if = "Option::is_none")]
2242 pub raw_data: Option<String>,
2243 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
2244 #[serde(rename = "raw_data_hash")]
2245 #[serde(skip_serializing_if = "Option::is_none")]
2246 pub raw_data_hash: Option<Box<Fingerprint>>,
2247 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
2248 #[serde(rename = "raw_data_size")]
2249 #[serde(skip_serializing_if = "Option::is_none")]
2250 pub raw_data_size: Option<i64>,
2251 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
2252 #[serde(rename = "risk_details")]
2253 #[serde(skip_serializing_if = "Option::is_none")]
2254 pub risk_details: Option<String>,
2255 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
2256 #[serde(rename = "risk_level")]
2257 #[serde(skip_serializing_if = "Option::is_none")]
2258 pub risk_level: Option<String>,
2259 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
2260 #[serde(rename = "risk_level_id")]
2261 #[serde(skip_serializing_if = "Option::is_none")]
2262 pub risk_level_id: Option<i64>,
2263 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
2264 #[serde(rename = "risk_score")]
2265 #[serde(skip_serializing_if = "Option::is_none")]
2266 pub risk_score: Option<i64>,
2267 #[doc = "Session\n\nThe user session with the assigned privileges.\n\nrecommended"]
2268 #[serde(rename = "session")]
2269 #[serde(skip_serializing_if = "Option::is_none")]
2270 pub session: Option<Box<Session>>,
2271 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
2272 #[serde(rename = "severity")]
2273 #[serde(skip_serializing_if = "Option::is_none")]
2274 pub severity: Option<String>,
2275 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
2276 #[serde(rename = "severity_id")]
2277 #[serde(skip_serializing_if = "Option::is_none")]
2278 pub severity_id: Option<i64>,
2279 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
2280 #[serde(rename = "src_endpoint")]
2281 #[serde(skip_serializing_if = "Option::is_none")]
2282 pub src_endpoint: Option<Box<NetworkEndpoint>>,
2283 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2284 #[serde(rename = "start_time")]
2285 #[serde(skip_serializing_if = "Option::is_none")]
2286 pub start_time: Option<i64>,
2287 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2288 #[serde(rename = "start_time_dt")]
2289 #[serde(skip_serializing_if = "Option::is_none")]
2290 pub start_time_dt: Option<String>,
2291 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
2292 #[serde(rename = "status")]
2293 #[serde(skip_serializing_if = "Option::is_none")]
2294 pub status: Option<String>,
2295 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
2296 #[serde(rename = "status_code")]
2297 #[serde(skip_serializing_if = "Option::is_none")]
2298 pub status_code: Option<String>,
2299 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
2300 #[serde(rename = "status_detail")]
2301 #[serde(skip_serializing_if = "Option::is_none")]
2302 pub status_detail: Option<String>,
2303 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
2304 #[serde(rename = "status_id")]
2305 #[serde(skip_serializing_if = "Option::is_none")]
2306 pub status_id: Option<i64>,
2307 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
2308 #[serde(rename = "time")]
2309 #[serde(skip_serializing_if = "Option::is_none")]
2310 pub time: Option<i64>,
2311 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
2312 #[serde(rename = "time_dt")]
2313 #[serde(skip_serializing_if = "Option::is_none")]
2314 pub time_dt: Option<String>,
2315 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
2316 #[serde(rename = "timezone_offset")]
2317 #[serde(skip_serializing_if = "Option::is_none")]
2318 pub timezone_offset: Option<i64>,
2319 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
2320 #[serde(rename = "type_name")]
2321 #[serde(skip_serializing_if = "Option::is_none")]
2322 pub type_name: Option<String>,
2323 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
2324 #[serde(rename = "type_uid")]
2325 #[serde(skip_serializing_if = "Option::is_none")]
2326 pub type_uid: Option<i64>,
2327 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
2328 #[serde(rename = "unmapped")]
2329 #[serde(skip_serializing_if = "Option::is_none")]
2330 pub unmapped: Option<serde_json::Value>,
2331 #[doc = "User\n\nThe user to which new privileges were assigned.\n\nrequired"]
2332 #[serde(rename = "user")]
2333 #[serde(skip_serializing_if = "Option::is_none")]
2334 pub user: Option<Box<User>>,
2335}
2336#[doc = "Base Event\n\nThe base event is a generic and concrete event. It also defines a set of attributes available in most event classes. As a generic event that does not belong to any event category, it could be used to log events that are not otherwise defined by the schema.\n\n[UID:0] Category: other | Name: base_event"]
2337#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2338#[serde(default)]
2339#[non_exhaustive]
2340pub struct BaseEvent {
2341 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
2342 #[serde(rename = "action")]
2343 #[serde(skip_serializing_if = "Option::is_none")]
2344 pub action: Option<String>,
2345 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
2346 #[serde(rename = "action_id")]
2347 #[serde(skip_serializing_if = "Option::is_none")]
2348 pub action_id: Option<i64>,
2349 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
2350 #[serde(rename = "activity_id")]
2351 #[serde(skip_serializing_if = "Option::is_none")]
2352 pub activity_id: Option<i64>,
2353 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
2354 #[serde(rename = "activity_name")]
2355 #[serde(skip_serializing_if = "Option::is_none")]
2356 pub activity_name: Option<String>,
2357 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
2358 #[serde(rename = "actor")]
2359 #[serde(skip_serializing_if = "Option::is_none")]
2360 pub actor: Option<Box<Actor>>,
2361 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
2362 #[serde(rename = "api")]
2363 #[serde(skip_serializing_if = "Option::is_none")]
2364 pub api: Option<Box<Api>>,
2365 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
2366 #[serde(rename = "attacks")]
2367 #[serde(skip_serializing_if = "Option::is_none")]
2368 pub attacks: Option<Vec<Attack>>,
2369 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
2370 #[serde(rename = "authorizations")]
2371 #[serde(skip_serializing_if = "Option::is_none")]
2372 pub authorizations: Option<Vec<Authorization>>,
2373 #[doc = "Category\n\nThe event category name, as defined by category_uid value.\n\noptional"]
2374 #[serde(rename = "category_name")]
2375 #[serde(skip_serializing_if = "Option::is_none")]
2376 pub category_name: Option<String>,
2377 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
2378 #[serde(rename = "category_uid")]
2379 #[serde(skip_serializing_if = "Option::is_none")]
2380 pub category_uid: Option<i64>,
2381 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Base Event</code>.\n\noptional"]
2382 #[serde(rename = "class_name")]
2383 #[serde(skip_serializing_if = "Option::is_none")]
2384 pub class_name: Option<String>,
2385 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
2386 #[serde(rename = "class_uid")]
2387 #[serde(skip_serializing_if = "Option::is_none")]
2388 pub class_uid: Option<i64>,
2389 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
2390 #[serde(rename = "cloud")]
2391 #[serde(skip_serializing_if = "Option::is_none")]
2392 pub cloud: Option<Box<Cloud>>,
2393 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2394 #[serde(rename = "confidence")]
2395 #[serde(skip_serializing_if = "Option::is_none")]
2396 pub confidence: Option<String>,
2397 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
2398 #[serde(rename = "confidence_id")]
2399 #[serde(skip_serializing_if = "Option::is_none")]
2400 pub confidence_id: Option<i64>,
2401 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
2402 #[serde(rename = "confidence_score")]
2403 #[serde(skip_serializing_if = "Option::is_none")]
2404 pub confidence_score: Option<i64>,
2405 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
2406 #[serde(rename = "count")]
2407 #[serde(skip_serializing_if = "Option::is_none")]
2408 pub count: Option<i64>,
2409 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
2410 #[serde(rename = "device")]
2411 #[serde(skip_serializing_if = "Option::is_none")]
2412 pub device: Option<Box<Device>>,
2413 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2414 #[serde(rename = "disposition")]
2415 #[serde(skip_serializing_if = "Option::is_none")]
2416 pub disposition: Option<String>,
2417 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
2418 #[serde(rename = "disposition_id")]
2419 #[serde(skip_serializing_if = "Option::is_none")]
2420 pub disposition_id: Option<i64>,
2421 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
2422 #[serde(rename = "duration")]
2423 #[serde(skip_serializing_if = "Option::is_none")]
2424 pub duration: Option<i64>,
2425 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2426 #[serde(rename = "end_time")]
2427 #[serde(skip_serializing_if = "Option::is_none")]
2428 pub end_time: Option<i64>,
2429 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2430 #[serde(rename = "end_time_dt")]
2431 #[serde(skip_serializing_if = "Option::is_none")]
2432 pub end_time_dt: Option<String>,
2433 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
2434 #[serde(rename = "enrichments")]
2435 #[serde(skip_serializing_if = "Option::is_none")]
2436 pub enrichments: Option<Vec<Enrichment>>,
2437 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
2438 #[serde(rename = "firewall_rule")]
2439 #[serde(skip_serializing_if = "Option::is_none")]
2440 pub firewall_rule: Option<Box<FirewallRule>>,
2441 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
2442 #[serde(rename = "is_alert")]
2443 #[serde(skip_serializing_if = "Option::is_none")]
2444 pub is_alert: Option<bool>,
2445 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
2446 #[serde(rename = "malware")]
2447 #[serde(skip_serializing_if = "Option::is_none")]
2448 pub malware: Option<Vec<Malware>>,
2449 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
2450 #[serde(rename = "malware_scan_info")]
2451 #[serde(skip_serializing_if = "Option::is_none")]
2452 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
2453 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
2454 #[serde(rename = "message")]
2455 #[serde(skip_serializing_if = "Option::is_none")]
2456 pub message: Option<String>,
2457 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
2458 #[serde(rename = "metadata")]
2459 #[serde(skip_serializing_if = "Option::is_none")]
2460 pub metadata: Option<Box<Metadata>>,
2461 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
2462 #[serde(rename = "observables")]
2463 #[serde(skip_serializing_if = "Option::is_none")]
2464 pub observables: Option<Vec<Observable>>,
2465 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
2466 #[serde(rename = "osint")]
2467 #[serde(skip_serializing_if = "Option::is_none")]
2468 pub osint: Option<Vec<Osint>>,
2469 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
2470 #[serde(rename = "policy")]
2471 #[serde(skip_serializing_if = "Option::is_none")]
2472 pub policy: Option<Box<Policy>>,
2473 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
2474 #[serde(rename = "raw_data")]
2475 #[serde(skip_serializing_if = "Option::is_none")]
2476 pub raw_data: Option<String>,
2477 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
2478 #[serde(rename = "raw_data_hash")]
2479 #[serde(skip_serializing_if = "Option::is_none")]
2480 pub raw_data_hash: Option<Box<Fingerprint>>,
2481 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
2482 #[serde(rename = "raw_data_size")]
2483 #[serde(skip_serializing_if = "Option::is_none")]
2484 pub raw_data_size: Option<i64>,
2485 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
2486 #[serde(rename = "risk_details")]
2487 #[serde(skip_serializing_if = "Option::is_none")]
2488 pub risk_details: Option<String>,
2489 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
2490 #[serde(rename = "risk_level")]
2491 #[serde(skip_serializing_if = "Option::is_none")]
2492 pub risk_level: Option<String>,
2493 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
2494 #[serde(rename = "risk_level_id")]
2495 #[serde(skip_serializing_if = "Option::is_none")]
2496 pub risk_level_id: Option<i64>,
2497 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
2498 #[serde(rename = "risk_score")]
2499 #[serde(skip_serializing_if = "Option::is_none")]
2500 pub risk_score: Option<i64>,
2501 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
2502 #[serde(rename = "severity")]
2503 #[serde(skip_serializing_if = "Option::is_none")]
2504 pub severity: Option<String>,
2505 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
2506 #[serde(rename = "severity_id")]
2507 #[serde(skip_serializing_if = "Option::is_none")]
2508 pub severity_id: Option<i64>,
2509 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2510 #[serde(rename = "start_time")]
2511 #[serde(skip_serializing_if = "Option::is_none")]
2512 pub start_time: Option<i64>,
2513 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2514 #[serde(rename = "start_time_dt")]
2515 #[serde(skip_serializing_if = "Option::is_none")]
2516 pub start_time_dt: Option<String>,
2517 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
2518 #[serde(rename = "status")]
2519 #[serde(skip_serializing_if = "Option::is_none")]
2520 pub status: Option<String>,
2521 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
2522 #[serde(rename = "status_code")]
2523 #[serde(skip_serializing_if = "Option::is_none")]
2524 pub status_code: Option<String>,
2525 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
2526 #[serde(rename = "status_detail")]
2527 #[serde(skip_serializing_if = "Option::is_none")]
2528 pub status_detail: Option<String>,
2529 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
2530 #[serde(rename = "status_id")]
2531 #[serde(skip_serializing_if = "Option::is_none")]
2532 pub status_id: Option<i64>,
2533 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
2534 #[serde(rename = "time")]
2535 #[serde(skip_serializing_if = "Option::is_none")]
2536 pub time: Option<i64>,
2537 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
2538 #[serde(rename = "time_dt")]
2539 #[serde(skip_serializing_if = "Option::is_none")]
2540 pub time_dt: Option<String>,
2541 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
2542 #[serde(rename = "timezone_offset")]
2543 #[serde(skip_serializing_if = "Option::is_none")]
2544 pub timezone_offset: Option<i64>,
2545 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
2546 #[serde(rename = "type_name")]
2547 #[serde(skip_serializing_if = "Option::is_none")]
2548 pub type_name: Option<String>,
2549 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
2550 #[serde(rename = "type_uid")]
2551 #[serde(skip_serializing_if = "Option::is_none")]
2552 pub type_uid: Option<i64>,
2553 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
2554 #[serde(rename = "unmapped")]
2555 #[serde(skip_serializing_if = "Option::is_none")]
2556 pub unmapped: Option<serde_json::Value>,
2557}
2558#[doc = "Cloud Resources Inventory Info\n\nCloud Resources Inventory Info events report cloud asset inventory data. This data can be either logged or proactively collected. For example, use this event class when creating an inventory of cloud resource information from a Configuration Management Database (CMDB), Cyber Asset Attack Surface Management (CAASM), direct public cloud service provider APIs, Software-as-a-Service (SaaS) APIs, or otherwise.\n\n[UID:5023] Category: discovery | Name: cloud_resources_inventory_info\n\n**Constraints:**\n* at_least_one: `[cloud`,`container`,`database`,`databucket`,`idp`,`resources`,`table]`\n"]
2559#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2560#[serde(default)]
2561#[non_exhaustive]
2562pub struct CloudResourcesInventoryInfo {
2563 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
2564 #[serde(rename = "action")]
2565 #[serde(skip_serializing_if = "Option::is_none")]
2566 pub action: Option<String>,
2567 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
2568 #[serde(rename = "action_id")]
2569 #[serde(skip_serializing_if = "Option::is_none")]
2570 pub action_id: Option<i64>,
2571 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
2572 #[serde(rename = "activity_id")]
2573 #[serde(skip_serializing_if = "Option::is_none")]
2574 pub activity_id: Option<i64>,
2575 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
2576 #[serde(rename = "activity_name")]
2577 #[serde(skip_serializing_if = "Option::is_none")]
2578 pub activity_name: Option<String>,
2579 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
2580 #[serde(rename = "actor")]
2581 #[serde(skip_serializing_if = "Option::is_none")]
2582 pub actor: Option<Box<Actor>>,
2583 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
2584 #[serde(rename = "api")]
2585 #[serde(skip_serializing_if = "Option::is_none")]
2586 pub api: Option<Box<Api>>,
2587 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
2588 #[serde(rename = "attacks")]
2589 #[serde(skip_serializing_if = "Option::is_none")]
2590 pub attacks: Option<Vec<Attack>>,
2591 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
2592 #[serde(rename = "authorizations")]
2593 #[serde(skip_serializing_if = "Option::is_none")]
2594 pub authorizations: Option<Vec<Authorization>>,
2595 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
2596 #[serde(rename = "category_name")]
2597 #[serde(skip_serializing_if = "Option::is_none")]
2598 pub category_name: Option<String>,
2599 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
2600 #[serde(rename = "category_uid")]
2601 #[serde(skip_serializing_if = "Option::is_none")]
2602 pub category_uid: Option<i64>,
2603 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Cloud Resources Inventory Info</code>.\n\noptional"]
2604 #[serde(rename = "class_name")]
2605 #[serde(skip_serializing_if = "Option::is_none")]
2606 pub class_name: Option<String>,
2607 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
2608 #[serde(rename = "class_uid")]
2609 #[serde(skip_serializing_if = "Option::is_none")]
2610 pub class_uid: Option<i64>,
2611 #[doc = "Cloud\n\nCloud service provider or SaaS platform metadata about the cloud resource(s) that are being discovered by an inventory process.\n\nrecommended"]
2612 #[serde(rename = "cloud")]
2613 #[serde(skip_serializing_if = "Option::is_none")]
2614 pub cloud: Option<Box<Cloud>>,
2615 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2616 #[serde(rename = "confidence")]
2617 #[serde(skip_serializing_if = "Option::is_none")]
2618 pub confidence: Option<String>,
2619 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
2620 #[serde(rename = "confidence_id")]
2621 #[serde(skip_serializing_if = "Option::is_none")]
2622 pub confidence_id: Option<i64>,
2623 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
2624 #[serde(rename = "confidence_score")]
2625 #[serde(skip_serializing_if = "Option::is_none")]
2626 pub confidence_score: Option<i64>,
2627 #[doc = "Container\n\nA cloud-based container image or running container discovered by an inventory process.\n\nrecommended"]
2628 #[serde(rename = "container")]
2629 #[serde(skip_serializing_if = "Option::is_none")]
2630 pub container: Option<Box<Container>>,
2631 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
2632 #[serde(rename = "count")]
2633 #[serde(skip_serializing_if = "Option::is_none")]
2634 pub count: Option<i64>,
2635 #[doc = "Database\n\nA cloud-based database discovered by an inventory process.\n\nrecommended"]
2636 #[serde(rename = "database")]
2637 #[serde(skip_serializing_if = "Option::is_none")]
2638 pub database: Option<Box<Database>>,
2639 #[doc = "Databucket\n\nA cloud-based data bucket or other object storage discovered by an inventory process.\n\nrecommended"]
2640 #[serde(rename = "databucket")]
2641 #[serde(skip_serializing_if = "Option::is_none")]
2642 pub databucket: Option<Box<Databucket>>,
2643 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
2644 #[serde(rename = "device")]
2645 #[serde(skip_serializing_if = "Option::is_none")]
2646 pub device: Option<Box<Device>>,
2647 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2648 #[serde(rename = "disposition")]
2649 #[serde(skip_serializing_if = "Option::is_none")]
2650 pub disposition: Option<String>,
2651 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
2652 #[serde(rename = "disposition_id")]
2653 #[serde(skip_serializing_if = "Option::is_none")]
2654 pub disposition_id: Option<i64>,
2655 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
2656 #[serde(rename = "duration")]
2657 #[serde(skip_serializing_if = "Option::is_none")]
2658 pub duration: Option<i64>,
2659 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2660 #[serde(rename = "end_time")]
2661 #[serde(skip_serializing_if = "Option::is_none")]
2662 pub end_time: Option<i64>,
2663 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
2664 #[serde(rename = "end_time_dt")]
2665 #[serde(skip_serializing_if = "Option::is_none")]
2666 pub end_time_dt: Option<String>,
2667 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
2668 #[serde(rename = "enrichments")]
2669 #[serde(skip_serializing_if = "Option::is_none")]
2670 pub enrichments: Option<Vec<Enrichment>>,
2671 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
2672 #[serde(rename = "firewall_rule")]
2673 #[serde(skip_serializing_if = "Option::is_none")]
2674 pub firewall_rule: Option<Box<FirewallRule>>,
2675 #[doc = "Identity Provider\n\nThe Identity Provider that is being discovered by an inventory process, or that is related to the cloud resource(s) being discovered by an inventory process.\n\nrecommended"]
2676 #[serde(rename = "idp")]
2677 #[serde(skip_serializing_if = "Option::is_none")]
2678 pub idp: Option<Box<Idp>>,
2679 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
2680 #[serde(rename = "is_alert")]
2681 #[serde(skip_serializing_if = "Option::is_none")]
2682 pub is_alert: Option<bool>,
2683 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
2684 #[serde(rename = "malware")]
2685 #[serde(skip_serializing_if = "Option::is_none")]
2686 pub malware: Option<Vec<Malware>>,
2687 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
2688 #[serde(rename = "malware_scan_info")]
2689 #[serde(skip_serializing_if = "Option::is_none")]
2690 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
2691 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
2692 #[serde(rename = "message")]
2693 #[serde(skip_serializing_if = "Option::is_none")]
2694 pub message: Option<String>,
2695 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
2696 #[serde(rename = "metadata")]
2697 #[serde(skip_serializing_if = "Option::is_none")]
2698 pub metadata: Option<Box<Metadata>>,
2699 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
2700 #[serde(rename = "observables")]
2701 #[serde(skip_serializing_if = "Option::is_none")]
2702 pub observables: Option<Vec<Observable>>,
2703 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
2704 #[serde(rename = "osint")]
2705 #[serde(skip_serializing_if = "Option::is_none")]
2706 pub osint: Option<Vec<Osint>>,
2707 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
2708 #[serde(rename = "policy")]
2709 #[serde(skip_serializing_if = "Option::is_none")]
2710 pub policy: Option<Box<Policy>>,
2711 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
2712 #[serde(rename = "raw_data")]
2713 #[serde(skip_serializing_if = "Option::is_none")]
2714 pub raw_data: Option<String>,
2715 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
2716 #[serde(rename = "raw_data_hash")]
2717 #[serde(skip_serializing_if = "Option::is_none")]
2718 pub raw_data_hash: Option<Box<Fingerprint>>,
2719 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
2720 #[serde(rename = "raw_data_size")]
2721 #[serde(skip_serializing_if = "Option::is_none")]
2722 pub raw_data_size: Option<i64>,
2723 #[doc = "Region\n\nThe cloud region where the resource is located, e.g., <code>us-isof-south-1</code>, <code>eastus2</code>, <code>us-central1</code>, etc.\n\nrecommended"]
2724 #[serde(rename = "region")]
2725 #[serde(skip_serializing_if = "Option::is_none")]
2726 pub region: Option<String>,
2727 #[doc = "Cloud Resources\n\nThe cloud resource(s) that are being discovered by an inventory process. Use this object if there is not a direct object match in the class.\n\nrecommended"]
2728 #[serde(rename = "resources")]
2729 #[serde(skip_serializing_if = "Option::is_none")]
2730 pub resources: Option<Vec<ResourceDetails>>,
2731 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
2732 #[serde(rename = "risk_details")]
2733 #[serde(skip_serializing_if = "Option::is_none")]
2734 pub risk_details: Option<String>,
2735 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
2736 #[serde(rename = "risk_level")]
2737 #[serde(skip_serializing_if = "Option::is_none")]
2738 pub risk_level: Option<String>,
2739 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
2740 #[serde(rename = "risk_level_id")]
2741 #[serde(skip_serializing_if = "Option::is_none")]
2742 pub risk_level_id: Option<i64>,
2743 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
2744 #[serde(rename = "risk_score")]
2745 #[serde(skip_serializing_if = "Option::is_none")]
2746 pub risk_score: Option<i64>,
2747 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
2748 #[serde(rename = "severity")]
2749 #[serde(skip_serializing_if = "Option::is_none")]
2750 pub severity: Option<String>,
2751 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
2752 #[serde(rename = "severity_id")]
2753 #[serde(skip_serializing_if = "Option::is_none")]
2754 pub severity_id: Option<i64>,
2755 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2756 #[serde(rename = "start_time")]
2757 #[serde(skip_serializing_if = "Option::is_none")]
2758 pub start_time: Option<i64>,
2759 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
2760 #[serde(rename = "start_time_dt")]
2761 #[serde(skip_serializing_if = "Option::is_none")]
2762 pub start_time_dt: Option<String>,
2763 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
2764 #[serde(rename = "status")]
2765 #[serde(skip_serializing_if = "Option::is_none")]
2766 pub status: Option<String>,
2767 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
2768 #[serde(rename = "status_code")]
2769 #[serde(skip_serializing_if = "Option::is_none")]
2770 pub status_code: Option<String>,
2771 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
2772 #[serde(rename = "status_detail")]
2773 #[serde(skip_serializing_if = "Option::is_none")]
2774 pub status_detail: Option<String>,
2775 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
2776 #[serde(rename = "status_id")]
2777 #[serde(skip_serializing_if = "Option::is_none")]
2778 pub status_id: Option<i64>,
2779 #[doc = "Table\n\nA cloud-based database table discovered by an inventory process.\n\nrecommended"]
2780 #[serde(rename = "table")]
2781 #[serde(skip_serializing_if = "Option::is_none")]
2782 pub table: Option<Box<Table>>,
2783 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
2784 #[serde(rename = "time")]
2785 #[serde(skip_serializing_if = "Option::is_none")]
2786 pub time: Option<i64>,
2787 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
2788 #[serde(rename = "time_dt")]
2789 #[serde(skip_serializing_if = "Option::is_none")]
2790 pub time_dt: Option<String>,
2791 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
2792 #[serde(rename = "timezone_offset")]
2793 #[serde(skip_serializing_if = "Option::is_none")]
2794 pub timezone_offset: Option<i64>,
2795 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
2796 #[serde(rename = "type_name")]
2797 #[serde(skip_serializing_if = "Option::is_none")]
2798 pub type_name: Option<String>,
2799 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
2800 #[serde(rename = "type_uid")]
2801 #[serde(skip_serializing_if = "Option::is_none")]
2802 pub type_uid: Option<i64>,
2803 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
2804 #[serde(rename = "unmapped")]
2805 #[serde(skip_serializing_if = "Option::is_none")]
2806 pub unmapped: Option<serde_json::Value>,
2807}
2808#[doc = "Compliance Finding\n\nCompliance Finding events describe results of evaluations performed against resources, to check compliance with various Industry Frameworks or Security Standards such as <code>NIST SP 800-53, CIS AWS Foundations Benchmark v1.4.0, ISO/IEC 27001</code> etc. Note: if the event producer is a security control, the <code>security_control</code> profile should be applied and its <code>attacks</code> information, if present, should be duplicated into the <code>finding_info</code> object. <br><strong>Note: </strong>If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2003] Category: findings | Name: compliance_finding"]
2809#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
2810#[serde(default)]
2811#[non_exhaustive]
2812pub struct ComplianceFinding {
2813 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
2814 #[serde(rename = "action")]
2815 #[serde(skip_serializing_if = "Option::is_none")]
2816 pub action: Option<String>,
2817 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
2818 #[serde(rename = "action_id")]
2819 #[serde(skip_serializing_if = "Option::is_none")]
2820 pub action_id: Option<i64>,
2821 #[doc = "Activity ID\n\nThe normalized identifier of the finding activity.\n\nrequired"]
2822 #[serde(rename = "activity_id")]
2823 #[serde(skip_serializing_if = "Option::is_none")]
2824 pub activity_id: Option<i64>,
2825 #[doc = "Activity\n\nThe finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
2826 #[serde(rename = "activity_name")]
2827 #[serde(skip_serializing_if = "Option::is_none")]
2828 pub activity_name: Option<String>,
2829 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
2830 #[serde(rename = "actor")]
2831 #[serde(skip_serializing_if = "Option::is_none")]
2832 pub actor: Option<Box<Actor>>,
2833 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
2834 #[serde(rename = "api")]
2835 #[serde(skip_serializing_if = "Option::is_none")]
2836 pub api: Option<Box<Api>>,
2837 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
2838 #[serde(rename = "assignee")]
2839 #[serde(skip_serializing_if = "Option::is_none")]
2840 pub assignee: Option<Box<User>>,
2841 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
2842 #[serde(rename = "assignee_group")]
2843 #[serde(skip_serializing_if = "Option::is_none")]
2844 pub assignee_group: Option<Box<Group>>,
2845 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
2846 #[serde(rename = "attacks")]
2847 #[serde(skip_serializing_if = "Option::is_none")]
2848 pub attacks: Option<Vec<Attack>>,
2849 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
2850 #[serde(rename = "authorizations")]
2851 #[serde(skip_serializing_if = "Option::is_none")]
2852 pub authorizations: Option<Vec<Authorization>>,
2853 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
2854 #[serde(rename = "category_name")]
2855 #[serde(skip_serializing_if = "Option::is_none")]
2856 pub category_name: Option<String>,
2857 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
2858 #[serde(rename = "category_uid")]
2859 #[serde(skip_serializing_if = "Option::is_none")]
2860 pub category_uid: Option<i64>,
2861 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Compliance Finding</code>.\n\noptional"]
2862 #[serde(rename = "class_name")]
2863 #[serde(skip_serializing_if = "Option::is_none")]
2864 pub class_name: Option<String>,
2865 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
2866 #[serde(rename = "class_uid")]
2867 #[serde(skip_serializing_if = "Option::is_none")]
2868 pub class_uid: Option<i64>,
2869 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
2870 #[serde(rename = "cloud")]
2871 #[serde(skip_serializing_if = "Option::is_none")]
2872 pub cloud: Option<Box<Cloud>>,
2873 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
2874 #[serde(rename = "comment")]
2875 #[serde(skip_serializing_if = "Option::is_none")]
2876 pub comment: Option<String>,
2877 #[doc = "Compliance\n\nThe compliance object provides context to compliance findings (e.g., a check against a specific regulatory or best practice framework such as CIS, NIST etc.) and contains compliance related details.\n\nrequired"]
2878 #[serde(rename = "compliance")]
2879 #[serde(skip_serializing_if = "Option::is_none")]
2880 pub compliance: Option<Box<Compliance>>,
2881 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2882 #[serde(rename = "confidence")]
2883 #[serde(skip_serializing_if = "Option::is_none")]
2884 pub confidence: Option<String>,
2885 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
2886 #[serde(rename = "confidence_id")]
2887 #[serde(skip_serializing_if = "Option::is_none")]
2888 pub confidence_id: Option<i64>,
2889 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
2890 #[serde(rename = "confidence_score")]
2891 #[serde(skip_serializing_if = "Option::is_none")]
2892 pub confidence_score: Option<i64>,
2893 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
2894 #[serde(rename = "count")]
2895 #[serde(skip_serializing_if = "Option::is_none")]
2896 pub count: Option<i64>,
2897 #[doc = "Device\n\nDescribes the affected device/host. If applicable, it can be used in conjunction with <code>Resource(s)</code>. <p> e.g. Specific details about an AWS EC2 instance, that is affected by the Finding.</p>\n\noptional"]
2898 #[serde(rename = "device")]
2899 #[serde(skip_serializing_if = "Option::is_none")]
2900 pub device: Option<Box<Device>>,
2901 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2902 #[serde(rename = "disposition")]
2903 #[serde(skip_serializing_if = "Option::is_none")]
2904 pub disposition: Option<String>,
2905 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
2906 #[serde(rename = "disposition_id")]
2907 #[serde(skip_serializing_if = "Option::is_none")]
2908 pub disposition_id: Option<i64>,
2909 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
2910 #[serde(rename = "duration")]
2911 #[serde(skip_serializing_if = "Option::is_none")]
2912 pub duration: Option<i64>,
2913 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
2914 #[serde(rename = "end_time")]
2915 #[serde(skip_serializing_if = "Option::is_none")]
2916 pub end_time: Option<i64>,
2917 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
2918 #[serde(rename = "end_time_dt")]
2919 #[serde(skip_serializing_if = "Option::is_none")]
2920 pub end_time_dt: Option<String>,
2921 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
2922 #[serde(rename = "enrichments")]
2923 #[serde(skip_serializing_if = "Option::is_none")]
2924 pub enrichments: Option<Vec<Enrichment>>,
2925 #[doc = "Evidence Artifacts\n\nDescribes various evidence artifacts associated with the compliance finding.\n\noptional"]
2926 #[serde(rename = "evidences")]
2927 #[serde(skip_serializing_if = "Option::is_none")]
2928 pub evidences: Option<Vec<Evidences>>,
2929 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
2930 #[serde(rename = "finding_info")]
2931 #[serde(skip_serializing_if = "Option::is_none")]
2932 pub finding_info: Option<Box<FindingInfo>>,
2933 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
2934 #[serde(rename = "firewall_rule")]
2935 #[serde(skip_serializing_if = "Option::is_none")]
2936 pub firewall_rule: Option<Box<FirewallRule>>,
2937 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
2938 #[serde(rename = "impact")]
2939 #[serde(skip_serializing_if = "Option::is_none")]
2940 pub impact: Option<String>,
2941 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
2942 #[serde(rename = "impact_id")]
2943 #[serde(skip_serializing_if = "Option::is_none")]
2944 pub impact_id: Option<i64>,
2945 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
2946 #[serde(rename = "impact_score")]
2947 #[serde(skip_serializing_if = "Option::is_none")]
2948 pub impact_score: Option<i64>,
2949 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
2950 #[serde(rename = "is_alert")]
2951 #[serde(skip_serializing_if = "Option::is_none")]
2952 pub is_alert: Option<bool>,
2953 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
2954 #[serde(rename = "is_suspected_breach")]
2955 #[serde(skip_serializing_if = "Option::is_none")]
2956 pub is_suspected_breach: Option<bool>,
2957 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
2958 #[serde(rename = "malware")]
2959 #[serde(skip_serializing_if = "Option::is_none")]
2960 pub malware: Option<Vec<Malware>>,
2961 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
2962 #[serde(rename = "malware_scan_info")]
2963 #[serde(skip_serializing_if = "Option::is_none")]
2964 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
2965 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
2966 #[serde(rename = "message")]
2967 #[serde(skip_serializing_if = "Option::is_none")]
2968 pub message: Option<String>,
2969 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
2970 #[serde(rename = "metadata")]
2971 #[serde(skip_serializing_if = "Option::is_none")]
2972 pub metadata: Option<Box<Metadata>>,
2973 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
2974 #[serde(rename = "observables")]
2975 #[serde(skip_serializing_if = "Option::is_none")]
2976 pub observables: Option<Vec<Observable>>,
2977 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
2978 #[serde(rename = "osint")]
2979 #[serde(skip_serializing_if = "Option::is_none")]
2980 pub osint: Option<Vec<Osint>>,
2981 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
2982 #[serde(rename = "policy")]
2983 #[serde(skip_serializing_if = "Option::is_none")]
2984 pub policy: Option<Box<Policy>>,
2985 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
2986 #[serde(rename = "priority")]
2987 #[serde(skip_serializing_if = "Option::is_none")]
2988 pub priority: Option<String>,
2989 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
2990 #[serde(rename = "priority_id")]
2991 #[serde(skip_serializing_if = "Option::is_none")]
2992 pub priority_id: Option<i64>,
2993 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
2994 #[serde(rename = "raw_data")]
2995 #[serde(skip_serializing_if = "Option::is_none")]
2996 pub raw_data: Option<String>,
2997 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
2998 #[serde(rename = "raw_data_hash")]
2999 #[serde(skip_serializing_if = "Option::is_none")]
3000 pub raw_data_hash: Option<Box<Fingerprint>>,
3001 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
3002 #[serde(rename = "raw_data_size")]
3003 #[serde(skip_serializing_if = "Option::is_none")]
3004 pub raw_data_size: Option<i64>,
3005 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\nrecommended"]
3006 #[serde(rename = "remediation")]
3007 #[serde(skip_serializing_if = "Option::is_none")]
3008 pub remediation: Option<Box<Remediation>>,
3009 #[doc = "Resource\n\nDescribes details about the resource that is the subject of the compliance check.\n\nrecommended"]
3010 #[serde(rename = "resource")]
3011 #[serde(skip_serializing_if = "Option::is_none")]
3012 pub resource: Option<Box<ResourceDetails>>,
3013 #[doc = "Resources Array\n\nDescribes details about the resource/resources that are the subject of the compliance check.\n\nrecommended"]
3014 #[serde(rename = "resources")]
3015 #[serde(skip_serializing_if = "Option::is_none")]
3016 pub resources: Option<Vec<ResourceDetails>>,
3017 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
3018 #[serde(rename = "risk_details")]
3019 #[serde(skip_serializing_if = "Option::is_none")]
3020 pub risk_details: Option<String>,
3021 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
3022 #[serde(rename = "risk_level")]
3023 #[serde(skip_serializing_if = "Option::is_none")]
3024 pub risk_level: Option<String>,
3025 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
3026 #[serde(rename = "risk_level_id")]
3027 #[serde(skip_serializing_if = "Option::is_none")]
3028 pub risk_level_id: Option<i64>,
3029 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
3030 #[serde(rename = "risk_score")]
3031 #[serde(skip_serializing_if = "Option::is_none")]
3032 pub risk_score: Option<i64>,
3033 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
3034 #[serde(rename = "severity")]
3035 #[serde(skip_serializing_if = "Option::is_none")]
3036 pub severity: Option<String>,
3037 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
3038 #[serde(rename = "severity_id")]
3039 #[serde(skip_serializing_if = "Option::is_none")]
3040 pub severity_id: Option<i64>,
3041 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
3042 #[serde(rename = "src_url")]
3043 #[serde(skip_serializing_if = "Option::is_none")]
3044 pub src_url: Option<String>,
3045 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
3046 #[serde(rename = "start_time")]
3047 #[serde(skip_serializing_if = "Option::is_none")]
3048 pub start_time: Option<i64>,
3049 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
3050 #[serde(rename = "start_time_dt")]
3051 #[serde(skip_serializing_if = "Option::is_none")]
3052 pub start_time_dt: Option<String>,
3053 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
3054 #[serde(rename = "status")]
3055 #[serde(skip_serializing_if = "Option::is_none")]
3056 pub status: Option<String>,
3057 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
3058 #[serde(rename = "status_code")]
3059 #[serde(skip_serializing_if = "Option::is_none")]
3060 pub status_code: Option<String>,
3061 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
3062 #[serde(rename = "status_detail")]
3063 #[serde(skip_serializing_if = "Option::is_none")]
3064 pub status_detail: Option<String>,
3065 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
3066 #[serde(rename = "status_id")]
3067 #[serde(skip_serializing_if = "Option::is_none")]
3068 pub status_id: Option<i64>,
3069 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
3070 #[serde(rename = "ticket")]
3071 #[serde(skip_serializing_if = "Option::is_none")]
3072 pub ticket: Option<Box<Ticket>>,
3073 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
3074 #[serde(rename = "tickets")]
3075 #[serde(skip_serializing_if = "Option::is_none")]
3076 pub tickets: Option<Vec<Ticket>>,
3077 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
3078 #[serde(rename = "time")]
3079 #[serde(skip_serializing_if = "Option::is_none")]
3080 pub time: Option<i64>,
3081 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
3082 #[serde(rename = "time_dt")]
3083 #[serde(skip_serializing_if = "Option::is_none")]
3084 pub time_dt: Option<String>,
3085 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
3086 #[serde(rename = "timezone_offset")]
3087 #[serde(skip_serializing_if = "Option::is_none")]
3088 pub timezone_offset: Option<i64>,
3089 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
3090 #[serde(rename = "type_name")]
3091 #[serde(skip_serializing_if = "Option::is_none")]
3092 pub type_name: Option<String>,
3093 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
3094 #[serde(rename = "type_uid")]
3095 #[serde(skip_serializing_if = "Option::is_none")]
3096 pub type_uid: Option<i64>,
3097 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
3098 #[serde(rename = "unmapped")]
3099 #[serde(skip_serializing_if = "Option::is_none")]
3100 pub unmapped: Option<serde_json::Value>,
3101 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
3102 #[serde(rename = "vendor_attributes")]
3103 #[serde(skip_serializing_if = "Option::is_none")]
3104 pub vendor_attributes: Option<Box<VendorAttributes>>,
3105 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
3106 #[serde(rename = "verdict")]
3107 #[serde(skip_serializing_if = "Option::is_none")]
3108 pub verdict: Option<String>,
3109 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
3110 #[serde(rename = "verdict_id")]
3111 #[serde(skip_serializing_if = "Option::is_none")]
3112 pub verdict_id: Option<i64>,
3113}
3114#[doc = "Device Config State\n\nDevice Config State events report device configuration data, device assessments, and/or CIS Benchmark results.\n\n[UID:5002] Category: discovery | Name: config_state"]
3115#[deprecated(note = "Use <code>Compliance Finding</code> class. (Since 1.5.0)")]
3116#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
3117#[serde(default)]
3118#[non_exhaustive]
3119pub struct ConfigState {
3120 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
3121 #[serde(rename = "action")]
3122 #[serde(skip_serializing_if = "Option::is_none")]
3123 pub action: Option<String>,
3124 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
3125 #[serde(rename = "action_id")]
3126 #[serde(skip_serializing_if = "Option::is_none")]
3127 pub action_id: Option<i64>,
3128 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
3129 #[serde(rename = "activity_id")]
3130 #[serde(skip_serializing_if = "Option::is_none")]
3131 pub activity_id: Option<i64>,
3132 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
3133 #[serde(rename = "activity_name")]
3134 #[serde(skip_serializing_if = "Option::is_none")]
3135 pub activity_name: Option<String>,
3136 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
3137 #[serde(rename = "actor")]
3138 #[serde(skip_serializing_if = "Option::is_none")]
3139 pub actor: Option<Box<Actor>>,
3140 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
3141 #[serde(rename = "api")]
3142 #[serde(skip_serializing_if = "Option::is_none")]
3143 pub api: Option<Box<Api>>,
3144 #[doc = "Related Assessments\n\nA list of assessments associated with the device.\n\noptional"]
3145 #[serde(rename = "assessments")]
3146 #[serde(skip_serializing_if = "Option::is_none")]
3147 pub assessments: Option<Vec<Assessment>>,
3148 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
3149 #[serde(rename = "attacks")]
3150 #[serde(skip_serializing_if = "Option::is_none")]
3151 pub attacks: Option<Vec<Attack>>,
3152 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
3153 #[serde(rename = "authorizations")]
3154 #[serde(skip_serializing_if = "Option::is_none")]
3155 pub authorizations: Option<Vec<Authorization>>,
3156 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
3157 #[serde(rename = "category_name")]
3158 #[serde(skip_serializing_if = "Option::is_none")]
3159 pub category_name: Option<String>,
3160 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
3161 #[serde(rename = "category_uid")]
3162 #[serde(skip_serializing_if = "Option::is_none")]
3163 pub category_uid: Option<i64>,
3164 #[doc = "CIS Benchmark Result\n\nThe CIS Benchmark Result object captures results generated from benchmark evaluations as defined by the Center for Internet Security (<a target='_blank' href='https://www.cisecurity.org/cis-benchmarks/'>CIS</a>).\n\nrecommended"]
3165 #[serde(rename = "cis_benchmark_result")]
3166 #[serde(skip_serializing_if = "Option::is_none")]
3167 pub cis_benchmark_result: Option<Box<CisBenchmarkResult>>,
3168 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Device Config State</code>.\n\noptional"]
3169 #[serde(rename = "class_name")]
3170 #[serde(skip_serializing_if = "Option::is_none")]
3171 pub class_name: Option<String>,
3172 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
3173 #[serde(rename = "class_uid")]
3174 #[serde(skip_serializing_if = "Option::is_none")]
3175 pub class_uid: Option<i64>,
3176 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
3177 #[serde(rename = "cloud")]
3178 #[serde(skip_serializing_if = "Option::is_none")]
3179 pub cloud: Option<Box<Cloud>>,
3180 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3181 #[serde(rename = "confidence")]
3182 #[serde(skip_serializing_if = "Option::is_none")]
3183 pub confidence: Option<String>,
3184 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
3185 #[serde(rename = "confidence_id")]
3186 #[serde(skip_serializing_if = "Option::is_none")]
3187 pub confidence_id: Option<i64>,
3188 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
3189 #[serde(rename = "confidence_score")]
3190 #[serde(skip_serializing_if = "Option::is_none")]
3191 pub confidence_score: Option<i64>,
3192 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
3193 #[serde(rename = "count")]
3194 #[serde(skip_serializing_if = "Option::is_none")]
3195 pub count: Option<i64>,
3196 #[doc = "Device\n\nThe device that is being discovered by an inventory process.\n\nrequired"]
3197 #[serde(rename = "device")]
3198 #[serde(skip_serializing_if = "Option::is_none")]
3199 pub device: Option<Box<Device>>,
3200 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3201 #[serde(rename = "disposition")]
3202 #[serde(skip_serializing_if = "Option::is_none")]
3203 pub disposition: Option<String>,
3204 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
3205 #[serde(rename = "disposition_id")]
3206 #[serde(skip_serializing_if = "Option::is_none")]
3207 pub disposition_id: Option<i64>,
3208 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
3209 #[serde(rename = "duration")]
3210 #[serde(skip_serializing_if = "Option::is_none")]
3211 pub duration: Option<i64>,
3212 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
3213 #[serde(rename = "end_time")]
3214 #[serde(skip_serializing_if = "Option::is_none")]
3215 pub end_time: Option<i64>,
3216 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
3217 #[serde(rename = "end_time_dt")]
3218 #[serde(skip_serializing_if = "Option::is_none")]
3219 pub end_time_dt: Option<String>,
3220 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
3221 #[serde(rename = "enrichments")]
3222 #[serde(skip_serializing_if = "Option::is_none")]
3223 pub enrichments: Option<Vec<Enrichment>>,
3224 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
3225 #[serde(rename = "firewall_rule")]
3226 #[serde(skip_serializing_if = "Option::is_none")]
3227 pub firewall_rule: Option<Box<FirewallRule>>,
3228 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
3229 #[serde(rename = "is_alert")]
3230 #[serde(skip_serializing_if = "Option::is_none")]
3231 pub is_alert: Option<bool>,
3232 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
3233 #[serde(rename = "malware")]
3234 #[serde(skip_serializing_if = "Option::is_none")]
3235 pub malware: Option<Vec<Malware>>,
3236 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
3237 #[serde(rename = "malware_scan_info")]
3238 #[serde(skip_serializing_if = "Option::is_none")]
3239 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
3240 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
3241 #[serde(rename = "message")]
3242 #[serde(skip_serializing_if = "Option::is_none")]
3243 pub message: Option<String>,
3244 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
3245 #[serde(rename = "metadata")]
3246 #[serde(skip_serializing_if = "Option::is_none")]
3247 pub metadata: Option<Box<Metadata>>,
3248 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
3249 #[serde(rename = "observables")]
3250 #[serde(skip_serializing_if = "Option::is_none")]
3251 pub observables: Option<Vec<Observable>>,
3252 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
3253 #[serde(rename = "osint")]
3254 #[serde(skip_serializing_if = "Option::is_none")]
3255 pub osint: Option<Vec<Osint>>,
3256 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
3257 #[serde(rename = "policy")]
3258 #[serde(skip_serializing_if = "Option::is_none")]
3259 pub policy: Option<Box<Policy>>,
3260 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
3261 #[serde(rename = "raw_data")]
3262 #[serde(skip_serializing_if = "Option::is_none")]
3263 pub raw_data: Option<String>,
3264 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
3265 #[serde(rename = "raw_data_hash")]
3266 #[serde(skip_serializing_if = "Option::is_none")]
3267 pub raw_data_hash: Option<Box<Fingerprint>>,
3268 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
3269 #[serde(rename = "raw_data_size")]
3270 #[serde(skip_serializing_if = "Option::is_none")]
3271 pub raw_data_size: Option<i64>,
3272 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
3273 #[serde(rename = "risk_details")]
3274 #[serde(skip_serializing_if = "Option::is_none")]
3275 pub risk_details: Option<String>,
3276 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
3277 #[serde(rename = "risk_level")]
3278 #[serde(skip_serializing_if = "Option::is_none")]
3279 pub risk_level: Option<String>,
3280 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
3281 #[serde(rename = "risk_level_id")]
3282 #[serde(skip_serializing_if = "Option::is_none")]
3283 pub risk_level_id: Option<i64>,
3284 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
3285 #[serde(rename = "risk_score")]
3286 #[serde(skip_serializing_if = "Option::is_none")]
3287 pub risk_score: Option<i64>,
3288 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
3289 #[serde(rename = "severity")]
3290 #[serde(skip_serializing_if = "Option::is_none")]
3291 pub severity: Option<String>,
3292 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
3293 #[serde(rename = "severity_id")]
3294 #[serde(skip_serializing_if = "Option::is_none")]
3295 pub severity_id: Option<i64>,
3296 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
3297 #[serde(rename = "start_time")]
3298 #[serde(skip_serializing_if = "Option::is_none")]
3299 pub start_time: Option<i64>,
3300 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
3301 #[serde(rename = "start_time_dt")]
3302 #[serde(skip_serializing_if = "Option::is_none")]
3303 pub start_time_dt: Option<String>,
3304 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
3305 #[serde(rename = "status")]
3306 #[serde(skip_serializing_if = "Option::is_none")]
3307 pub status: Option<String>,
3308 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
3309 #[serde(rename = "status_code")]
3310 #[serde(skip_serializing_if = "Option::is_none")]
3311 pub status_code: Option<String>,
3312 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
3313 #[serde(rename = "status_detail")]
3314 #[serde(skip_serializing_if = "Option::is_none")]
3315 pub status_detail: Option<String>,
3316 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
3317 #[serde(rename = "status_id")]
3318 #[serde(skip_serializing_if = "Option::is_none")]
3319 pub status_id: Option<i64>,
3320 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
3321 #[serde(rename = "time")]
3322 #[serde(skip_serializing_if = "Option::is_none")]
3323 pub time: Option<i64>,
3324 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
3325 #[serde(rename = "time_dt")]
3326 #[serde(skip_serializing_if = "Option::is_none")]
3327 pub time_dt: Option<String>,
3328 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
3329 #[serde(rename = "timezone_offset")]
3330 #[serde(skip_serializing_if = "Option::is_none")]
3331 pub timezone_offset: Option<i64>,
3332 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
3333 #[serde(rename = "type_name")]
3334 #[serde(skip_serializing_if = "Option::is_none")]
3335 pub type_name: Option<String>,
3336 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
3337 #[serde(rename = "type_uid")]
3338 #[serde(skip_serializing_if = "Option::is_none")]
3339 pub type_uid: Option<i64>,
3340 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
3341 #[serde(rename = "unmapped")]
3342 #[serde(skip_serializing_if = "Option::is_none")]
3343 pub unmapped: Option<serde_json::Value>,
3344}
3345#[doc = "Data Security Finding\n\nA Data Security Finding describes detections or alerts generated by various data security products such as Data Loss Prevention (DLP), Data Classification, Secrets Management, Digital Rights Management (DRM), Data Security Posture Management (DSPM), and similar tools. These detections or alerts can be created using fingerprinting, statistical analysis, machine learning or other methodologies. The finding describes the actors and endpoints who accessed or own the sensitive data, as well as the resources which store the sensitive data. Note: if the event producer is a security control, the <code>security_control</code> profile should be applied and its <code>attacks</code> information, if present, should be duplicated into the <code>finding_info</code> object. <br><strong>Note: </strong>If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2006] Category: findings | Name: data_security_finding"]
3346#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
3347#[serde(default)]
3348#[non_exhaustive]
3349pub struct DataSecurityFinding {
3350 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
3351 #[serde(rename = "action")]
3352 #[serde(skip_serializing_if = "Option::is_none")]
3353 pub action: Option<String>,
3354 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
3355 #[serde(rename = "action_id")]
3356 #[serde(skip_serializing_if = "Option::is_none")]
3357 pub action_id: Option<i64>,
3358 #[doc = "Activity ID\n\nThe normalized identifier of the Data Security Finding activity.\n\nrequired"]
3359 #[serde(rename = "activity_id")]
3360 #[serde(skip_serializing_if = "Option::is_none")]
3361 pub activity_id: Option<i64>,
3362 #[doc = "Activity\n\nThe Data Security finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
3363 #[serde(rename = "activity_name")]
3364 #[serde(skip_serializing_if = "Option::is_none")]
3365 pub activity_name: Option<String>,
3366 #[doc = "Actor\n\nDescribes details about the actor implicated in the data security finding. Either an actor that owns a particular digital file or information store, or an actor which accessed classified or sensitive data.\n\nrecommended"]
3367 #[serde(rename = "actor")]
3368 #[serde(skip_serializing_if = "Option::is_none")]
3369 pub actor: Option<Box<Actor>>,
3370 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
3371 #[serde(rename = "api")]
3372 #[serde(skip_serializing_if = "Option::is_none")]
3373 pub api: Option<Box<Api>>,
3374 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
3375 #[serde(rename = "assignee")]
3376 #[serde(skip_serializing_if = "Option::is_none")]
3377 pub assignee: Option<Box<User>>,
3378 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
3379 #[serde(rename = "assignee_group")]
3380 #[serde(skip_serializing_if = "Option::is_none")]
3381 pub assignee_group: Option<Box<Group>>,
3382 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
3383 #[serde(rename = "attacks")]
3384 #[serde(skip_serializing_if = "Option::is_none")]
3385 pub attacks: Option<Vec<Attack>>,
3386 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
3387 #[serde(rename = "authorizations")]
3388 #[serde(skip_serializing_if = "Option::is_none")]
3389 pub authorizations: Option<Vec<Authorization>>,
3390 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
3391 #[serde(rename = "category_name")]
3392 #[serde(skip_serializing_if = "Option::is_none")]
3393 pub category_name: Option<String>,
3394 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
3395 #[serde(rename = "category_uid")]
3396 #[serde(skip_serializing_if = "Option::is_none")]
3397 pub category_uid: Option<i64>,
3398 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Data Security Finding</code>.\n\noptional"]
3399 #[serde(rename = "class_name")]
3400 #[serde(skip_serializing_if = "Option::is_none")]
3401 pub class_name: Option<String>,
3402 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
3403 #[serde(rename = "class_uid")]
3404 #[serde(skip_serializing_if = "Option::is_none")]
3405 pub class_uid: Option<i64>,
3406 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
3407 #[serde(rename = "cloud")]
3408 #[serde(skip_serializing_if = "Option::is_none")]
3409 pub cloud: Option<Box<Cloud>>,
3410 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
3411 #[serde(rename = "comment")]
3412 #[serde(skip_serializing_if = "Option::is_none")]
3413 pub comment: Option<String>,
3414 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3415 #[serde(rename = "confidence")]
3416 #[serde(skip_serializing_if = "Option::is_none")]
3417 pub confidence: Option<String>,
3418 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
3419 #[serde(rename = "confidence_id")]
3420 #[serde(skip_serializing_if = "Option::is_none")]
3421 pub confidence_id: Option<i64>,
3422 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
3423 #[serde(rename = "confidence_score")]
3424 #[serde(skip_serializing_if = "Option::is_none")]
3425 pub confidence_score: Option<i64>,
3426 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
3427 #[serde(rename = "count")]
3428 #[serde(skip_serializing_if = "Option::is_none")]
3429 pub count: Option<i64>,
3430 #[doc = "Data Security\n\nThe Data Security object describes the characteristics, techniques and content of a Data Loss Prevention (DLP), Data Loss Detection (DLD), Data Classification, or similar tools' finding, alert, or detection mechanism(s).\n\nrecommended"]
3431 #[serde(rename = "data_security")]
3432 #[serde(skip_serializing_if = "Option::is_none")]
3433 pub data_security: Option<Box<DataSecurity>>,
3434 #[doc = "Database\n\nDescribes the database where classified or sensitive data is stored in, or was accessed from. Databases are typically datastore services that contain an organized collection of structured and/or semi-structured data.\n\nrecommended"]
3435 #[serde(rename = "database")]
3436 #[serde(skip_serializing_if = "Option::is_none")]
3437 pub database: Option<Box<Database>>,
3438 #[doc = "Databucket\n\nDescribes the databucket where classified or sensitive data is stored in, or was accessed from. The data bucket object is a basic container that holds data, typically organized through the use of data partitions.\n\nrecommended"]
3439 #[serde(rename = "databucket")]
3440 #[serde(skip_serializing_if = "Option::is_none")]
3441 pub databucket: Option<Box<Databucket>>,
3442 #[doc = "Device\n\nDescribes the device where classified or sensitive data is stored in, or was accessed from.\n\nrecommended"]
3443 #[serde(rename = "device")]
3444 #[serde(skip_serializing_if = "Option::is_none")]
3445 pub device: Option<Box<Device>>,
3446 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3447 #[serde(rename = "disposition")]
3448 #[serde(skip_serializing_if = "Option::is_none")]
3449 pub disposition: Option<String>,
3450 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
3451 #[serde(rename = "disposition_id")]
3452 #[serde(skip_serializing_if = "Option::is_none")]
3453 pub disposition_id: Option<i64>,
3454 #[doc = "Destination Endpoint\n\nDescribes the endpoint where classified or sensitive data is stored in, or was accessed from.\n\nrecommended"]
3455 #[serde(rename = "dst_endpoint")]
3456 #[serde(skip_serializing_if = "Option::is_none")]
3457 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
3458 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
3459 #[serde(rename = "duration")]
3460 #[serde(skip_serializing_if = "Option::is_none")]
3461 pub duration: Option<i64>,
3462 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
3463 #[serde(rename = "end_time")]
3464 #[serde(skip_serializing_if = "Option::is_none")]
3465 pub end_time: Option<i64>,
3466 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
3467 #[serde(rename = "end_time_dt")]
3468 #[serde(skip_serializing_if = "Option::is_none")]
3469 pub end_time_dt: Option<String>,
3470 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
3471 #[serde(rename = "enrichments")]
3472 #[serde(skip_serializing_if = "Option::is_none")]
3473 pub enrichments: Option<Vec<Enrichment>>,
3474 #[doc = "File\n\nDescribes a file that contains classified or sensitive data.\n\nrecommended"]
3475 #[serde(rename = "file")]
3476 #[serde(skip_serializing_if = "Option::is_none")]
3477 pub file: Option<Box<File>>,
3478 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
3479 #[serde(rename = "finding_info")]
3480 #[serde(skip_serializing_if = "Option::is_none")]
3481 pub finding_info: Option<Box<FindingInfo>>,
3482 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
3483 #[serde(rename = "firewall_rule")]
3484 #[serde(skip_serializing_if = "Option::is_none")]
3485 pub firewall_rule: Option<Box<FirewallRule>>,
3486 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3487 #[serde(rename = "impact")]
3488 #[serde(skip_serializing_if = "Option::is_none")]
3489 pub impact: Option<String>,
3490 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\noptional"]
3491 #[serde(rename = "impact_id")]
3492 #[serde(skip_serializing_if = "Option::is_none")]
3493 pub impact_id: Option<i64>,
3494 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\noptional"]
3495 #[serde(rename = "impact_score")]
3496 #[serde(skip_serializing_if = "Option::is_none")]
3497 pub impact_score: Option<i64>,
3498 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. For example, an <code>activity_id</code> of 'Create' could constitute an alertable signal and the value would be <code>true</code>, while 'Close' likely would not and either omit the attribute or set its value to <code>false</code>. Note that other events with the <code>security_control</code> profile may also be deemed alertable signals and may also carry <code>is_alert = true</code> attributes.\n\nrecommended"]
3499 #[serde(rename = "is_alert")]
3500 #[serde(skip_serializing_if = "Option::is_none")]
3501 pub is_alert: Option<bool>,
3502 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
3503 #[serde(rename = "is_suspected_breach")]
3504 #[serde(skip_serializing_if = "Option::is_none")]
3505 pub is_suspected_breach: Option<bool>,
3506 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
3507 #[serde(rename = "malware")]
3508 #[serde(skip_serializing_if = "Option::is_none")]
3509 pub malware: Option<Vec<Malware>>,
3510 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
3511 #[serde(rename = "malware_scan_info")]
3512 #[serde(skip_serializing_if = "Option::is_none")]
3513 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
3514 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
3515 #[serde(rename = "message")]
3516 #[serde(skip_serializing_if = "Option::is_none")]
3517 pub message: Option<String>,
3518 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
3519 #[serde(rename = "metadata")]
3520 #[serde(skip_serializing_if = "Option::is_none")]
3521 pub metadata: Option<Box<Metadata>>,
3522 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
3523 #[serde(rename = "observables")]
3524 #[serde(skip_serializing_if = "Option::is_none")]
3525 pub observables: Option<Vec<Observable>>,
3526 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
3527 #[serde(rename = "osint")]
3528 #[serde(skip_serializing_if = "Option::is_none")]
3529 pub osint: Option<Vec<Osint>>,
3530 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
3531 #[serde(rename = "policy")]
3532 #[serde(skip_serializing_if = "Option::is_none")]
3533 pub policy: Option<Box<Policy>>,
3534 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3535 #[serde(rename = "priority")]
3536 #[serde(skip_serializing_if = "Option::is_none")]
3537 pub priority: Option<String>,
3538 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
3539 #[serde(rename = "priority_id")]
3540 #[serde(skip_serializing_if = "Option::is_none")]
3541 pub priority_id: Option<i64>,
3542 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
3543 #[serde(rename = "raw_data")]
3544 #[serde(skip_serializing_if = "Option::is_none")]
3545 pub raw_data: Option<String>,
3546 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
3547 #[serde(rename = "raw_data_hash")]
3548 #[serde(skip_serializing_if = "Option::is_none")]
3549 pub raw_data_hash: Option<Box<Fingerprint>>,
3550 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
3551 #[serde(rename = "raw_data_size")]
3552 #[serde(skip_serializing_if = "Option::is_none")]
3553 pub raw_data_size: Option<i64>,
3554 #[doc = "Additional Resources\n\nDescribes details about additional resources, where classified or sensitive data is stored in, or was accessed from. <p> You can populate this object, if the specific resource type objects available in the class (<code>database, databucket, table, file</code>) aren't sufficient; OR <br> You can also choose to duplicate <code>uid, name</code> of the specific resources objects, for a consistent access to resource uids across all findings.\n\nrecommended"]
3555 #[serde(rename = "resources")]
3556 #[serde(skip_serializing_if = "Option::is_none")]
3557 pub resources: Option<Vec<ResourceDetails>>,
3558 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
3559 #[serde(rename = "risk_details")]
3560 #[serde(skip_serializing_if = "Option::is_none")]
3561 pub risk_details: Option<String>,
3562 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
3563 #[serde(rename = "risk_level")]
3564 #[serde(skip_serializing_if = "Option::is_none")]
3565 pub risk_level: Option<String>,
3566 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
3567 #[serde(rename = "risk_level_id")]
3568 #[serde(skip_serializing_if = "Option::is_none")]
3569 pub risk_level_id: Option<i64>,
3570 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
3571 #[serde(rename = "risk_score")]
3572 #[serde(skip_serializing_if = "Option::is_none")]
3573 pub risk_score: Option<i64>,
3574 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
3575 #[serde(rename = "severity")]
3576 #[serde(skip_serializing_if = "Option::is_none")]
3577 pub severity: Option<String>,
3578 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
3579 #[serde(rename = "severity_id")]
3580 #[serde(skip_serializing_if = "Option::is_none")]
3581 pub severity_id: Option<i64>,
3582 #[doc = "Source Endpoint\n\nDetails about the source endpoint where classified or sensitive data was accessed from.\n\nrecommended"]
3583 #[serde(rename = "src_endpoint")]
3584 #[serde(skip_serializing_if = "Option::is_none")]
3585 pub src_endpoint: Option<Box<NetworkEndpoint>>,
3586 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
3587 #[serde(rename = "src_url")]
3588 #[serde(skip_serializing_if = "Option::is_none")]
3589 pub src_url: Option<String>,
3590 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
3591 #[serde(rename = "start_time")]
3592 #[serde(skip_serializing_if = "Option::is_none")]
3593 pub start_time: Option<i64>,
3594 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
3595 #[serde(rename = "start_time_dt")]
3596 #[serde(skip_serializing_if = "Option::is_none")]
3597 pub start_time_dt: Option<String>,
3598 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
3599 #[serde(rename = "status")]
3600 #[serde(skip_serializing_if = "Option::is_none")]
3601 pub status: Option<String>,
3602 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
3603 #[serde(rename = "status_code")]
3604 #[serde(skip_serializing_if = "Option::is_none")]
3605 pub status_code: Option<String>,
3606 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
3607 #[serde(rename = "status_detail")]
3608 #[serde(skip_serializing_if = "Option::is_none")]
3609 pub status_detail: Option<String>,
3610 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
3611 #[serde(rename = "status_id")]
3612 #[serde(skip_serializing_if = "Option::is_none")]
3613 pub status_id: Option<i64>,
3614 #[doc = "Table\n\nDescribes the table where classified or sensitive data is stored in, or was accessed from. The table object represents a table within a structured relational database, warehouse, lake, or similar.\n\nrecommended"]
3615 #[serde(rename = "table")]
3616 #[serde(skip_serializing_if = "Option::is_none")]
3617 pub table: Option<Box<Table>>,
3618 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
3619 #[serde(rename = "ticket")]
3620 #[serde(skip_serializing_if = "Option::is_none")]
3621 pub ticket: Option<Box<Ticket>>,
3622 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
3623 #[serde(rename = "tickets")]
3624 #[serde(skip_serializing_if = "Option::is_none")]
3625 pub tickets: Option<Vec<Ticket>>,
3626 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
3627 #[serde(rename = "time")]
3628 #[serde(skip_serializing_if = "Option::is_none")]
3629 pub time: Option<i64>,
3630 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
3631 #[serde(rename = "time_dt")]
3632 #[serde(skip_serializing_if = "Option::is_none")]
3633 pub time_dt: Option<String>,
3634 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
3635 #[serde(rename = "timezone_offset")]
3636 #[serde(skip_serializing_if = "Option::is_none")]
3637 pub timezone_offset: Option<i64>,
3638 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
3639 #[serde(rename = "type_name")]
3640 #[serde(skip_serializing_if = "Option::is_none")]
3641 pub type_name: Option<String>,
3642 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
3643 #[serde(rename = "type_uid")]
3644 #[serde(skip_serializing_if = "Option::is_none")]
3645 pub type_uid: Option<i64>,
3646 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
3647 #[serde(rename = "unmapped")]
3648 #[serde(skip_serializing_if = "Option::is_none")]
3649 pub unmapped: Option<serde_json::Value>,
3650 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
3651 #[serde(rename = "vendor_attributes")]
3652 #[serde(skip_serializing_if = "Option::is_none")]
3653 pub vendor_attributes: Option<Box<VendorAttributes>>,
3654 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
3655 #[serde(rename = "verdict")]
3656 #[serde(skip_serializing_if = "Option::is_none")]
3657 pub verdict: Option<String>,
3658 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
3659 #[serde(rename = "verdict_id")]
3660 #[serde(skip_serializing_if = "Option::is_none")]
3661 pub verdict_id: Option<i64>,
3662}
3663#[doc = "Datastore Activity\n\nDatastore events describe general activities (Read, Update, Query, Delete, etc.) which affect datastores or data within those datastores, e.g. (AWS RDS, AWS S3).\n\n[UID:6005] Category: application | Name: datastore_activity\n\n**Constraints:**\n* at_least_one: `[database`,`databucket`,`table]`\n"]
3664#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
3665#[serde(default)]
3666#[non_exhaustive]
3667pub struct DatastoreActivity {
3668 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
3669 #[serde(rename = "action")]
3670 #[serde(skip_serializing_if = "Option::is_none")]
3671 pub action: Option<String>,
3672 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
3673 #[serde(rename = "action_id")]
3674 #[serde(skip_serializing_if = "Option::is_none")]
3675 pub action_id: Option<i64>,
3676 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
3677 #[serde(rename = "activity_id")]
3678 #[serde(skip_serializing_if = "Option::is_none")]
3679 pub activity_id: Option<i64>,
3680 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
3681 #[serde(rename = "activity_name")]
3682 #[serde(skip_serializing_if = "Option::is_none")]
3683 pub activity_name: Option<String>,
3684 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
3685 #[serde(rename = "actor")]
3686 #[serde(skip_serializing_if = "Option::is_none")]
3687 pub actor: Option<Box<Actor>>,
3688 #[doc = "AI Model\n\nThe AI Model object describes the characteristics of an AI/ML model. Examples include language models like GPT-4, embedding models like text-embedding-ada-002, and computer vision models like CLIP.\n\nrecommended"]
3689 #[serde(rename = "ai_model")]
3690 #[serde(skip_serializing_if = "Option::is_none")]
3691 pub ai_model: Option<Box<AiModel>>,
3692 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
3693 #[serde(rename = "api")]
3694 #[serde(skip_serializing_if = "Option::is_none")]
3695 pub api: Option<Box<Api>>,
3696 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
3697 #[serde(rename = "attacks")]
3698 #[serde(skip_serializing_if = "Option::is_none")]
3699 pub attacks: Option<Vec<Attack>>,
3700 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
3701 #[serde(rename = "authorizations")]
3702 #[serde(skip_serializing_if = "Option::is_none")]
3703 pub authorizations: Option<Vec<Authorization>>,
3704 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
3705 #[serde(rename = "category_name")]
3706 #[serde(skip_serializing_if = "Option::is_none")]
3707 pub category_name: Option<String>,
3708 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
3709 #[serde(rename = "category_uid")]
3710 #[serde(skip_serializing_if = "Option::is_none")]
3711 pub category_uid: Option<i64>,
3712 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Datastore Activity</code>.\n\noptional"]
3713 #[serde(rename = "class_name")]
3714 #[serde(skip_serializing_if = "Option::is_none")]
3715 pub class_name: Option<String>,
3716 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
3717 #[serde(rename = "class_uid")]
3718 #[serde(skip_serializing_if = "Option::is_none")]
3719 pub class_uid: Option<i64>,
3720 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
3721 #[serde(rename = "cloud")]
3722 #[serde(skip_serializing_if = "Option::is_none")]
3723 pub cloud: Option<Box<Cloud>>,
3724 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3725 #[serde(rename = "confidence")]
3726 #[serde(skip_serializing_if = "Option::is_none")]
3727 pub confidence: Option<String>,
3728 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
3729 #[serde(rename = "confidence_id")]
3730 #[serde(skip_serializing_if = "Option::is_none")]
3731 pub confidence_id: Option<i64>,
3732 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
3733 #[serde(rename = "confidence_score")]
3734 #[serde(skip_serializing_if = "Option::is_none")]
3735 pub confidence_score: Option<i64>,
3736 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
3737 #[serde(rename = "count")]
3738 #[serde(skip_serializing_if = "Option::is_none")]
3739 pub count: Option<i64>,
3740 #[doc = "Database\n\nThe database object is used for databases which are typically datastore services that contain an organized collection of structured and unstructured data or a types of data.\n\nrecommended"]
3741 #[serde(rename = "database")]
3742 #[serde(skip_serializing_if = "Option::is_none")]
3743 pub database: Option<Box<Database>>,
3744 #[doc = "Databucket\n\nThe data bucket object is a basic container that holds data, typically organized through the use of data partitions.\n\nrecommended"]
3745 #[serde(rename = "databucket")]
3746 #[serde(skip_serializing_if = "Option::is_none")]
3747 pub databucket: Option<Box<Databucket>>,
3748 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
3749 #[serde(rename = "device")]
3750 #[serde(skip_serializing_if = "Option::is_none")]
3751 pub device: Option<Box<Device>>,
3752 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
3753 #[serde(rename = "disposition")]
3754 #[serde(skip_serializing_if = "Option::is_none")]
3755 pub disposition: Option<String>,
3756 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
3757 #[serde(rename = "disposition_id")]
3758 #[serde(skip_serializing_if = "Option::is_none")]
3759 pub disposition_id: Option<i64>,
3760 #[doc = "Destination Endpoint\n\nDetails about the endpoint hosting the datastore application or service.\n\nrecommended"]
3761 #[serde(rename = "dst_endpoint")]
3762 #[serde(skip_serializing_if = "Option::is_none")]
3763 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
3764 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
3765 #[serde(rename = "duration")]
3766 #[serde(skip_serializing_if = "Option::is_none")]
3767 pub duration: Option<i64>,
3768 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
3769 #[serde(rename = "end_time")]
3770 #[serde(skip_serializing_if = "Option::is_none")]
3771 pub end_time: Option<i64>,
3772 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
3773 #[serde(rename = "end_time_dt")]
3774 #[serde(skip_serializing_if = "Option::is_none")]
3775 pub end_time_dt: Option<String>,
3776 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
3777 #[serde(rename = "enrichments")]
3778 #[serde(skip_serializing_if = "Option::is_none")]
3779 pub enrichments: Option<Vec<Enrichment>>,
3780 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
3781 #[serde(rename = "firewall_rule")]
3782 #[serde(skip_serializing_if = "Option::is_none")]
3783 pub firewall_rule: Option<Box<FirewallRule>>,
3784 #[doc = "HTTP Request\n\nDetails about the underlying http request.\n\nrecommended"]
3785 #[serde(rename = "http_request")]
3786 #[serde(skip_serializing_if = "Option::is_none")]
3787 pub http_request: Option<Box<HttpRequest>>,
3788 #[doc = "HTTP Response\n\nDetails about the underlying http response.\n\nrecommended"]
3789 #[serde(rename = "http_response")]
3790 #[serde(skip_serializing_if = "Option::is_none")]
3791 pub http_response: Option<Box<HttpResponse>>,
3792 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
3793 #[serde(rename = "is_alert")]
3794 #[serde(skip_serializing_if = "Option::is_none")]
3795 pub is_alert: Option<bool>,
3796 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
3797 #[serde(rename = "malware")]
3798 #[serde(skip_serializing_if = "Option::is_none")]
3799 pub malware: Option<Vec<Malware>>,
3800 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
3801 #[serde(rename = "malware_scan_info")]
3802 #[serde(skip_serializing_if = "Option::is_none")]
3803 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
3804 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
3805 #[serde(rename = "message")]
3806 #[serde(skip_serializing_if = "Option::is_none")]
3807 pub message: Option<String>,
3808 #[doc = "Message Context\n\nCommunication context for AI system interactions including protocols, roles, clients, and session information for MCP and other AI communication systems.\n\noptional"]
3809 #[serde(rename = "message_context")]
3810 #[serde(skip_serializing_if = "Option::is_none")]
3811 pub message_context: Option<Box<MessageContext>>,
3812 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
3813 #[serde(rename = "metadata")]
3814 #[serde(skip_serializing_if = "Option::is_none")]
3815 pub metadata: Option<Box<Metadata>>,
3816 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
3817 #[serde(rename = "observables")]
3818 #[serde(skip_serializing_if = "Option::is_none")]
3819 pub observables: Option<Vec<Observable>>,
3820 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
3821 #[serde(rename = "osint")]
3822 #[serde(skip_serializing_if = "Option::is_none")]
3823 pub osint: Option<Vec<Osint>>,
3824 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
3825 #[serde(rename = "policy")]
3826 #[serde(skip_serializing_if = "Option::is_none")]
3827 pub policy: Option<Box<Policy>>,
3828 #[doc = "Query Info\n\nThe query info object holds information related to data access within a datastore. To access, manipulate, delete, or retrieve data from a datastore, a database query must be written using a specific syntax.\n\nrecommended"]
3829 #[serde(rename = "query_info")]
3830 #[serde(skip_serializing_if = "Option::is_none")]
3831 pub query_info: Option<Box<QueryInfo>>,
3832 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
3833 #[serde(rename = "raw_data")]
3834 #[serde(skip_serializing_if = "Option::is_none")]
3835 pub raw_data: Option<String>,
3836 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
3837 #[serde(rename = "raw_data_hash")]
3838 #[serde(skip_serializing_if = "Option::is_none")]
3839 pub raw_data_hash: Option<Box<Fingerprint>>,
3840 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
3841 #[serde(rename = "raw_data_size")]
3842 #[serde(skip_serializing_if = "Option::is_none")]
3843 pub raw_data_size: Option<i64>,
3844 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
3845 #[serde(rename = "risk_details")]
3846 #[serde(skip_serializing_if = "Option::is_none")]
3847 pub risk_details: Option<String>,
3848 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
3849 #[serde(rename = "risk_level")]
3850 #[serde(skip_serializing_if = "Option::is_none")]
3851 pub risk_level: Option<String>,
3852 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
3853 #[serde(rename = "risk_level_id")]
3854 #[serde(skip_serializing_if = "Option::is_none")]
3855 pub risk_level_id: Option<i64>,
3856 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
3857 #[serde(rename = "risk_score")]
3858 #[serde(skip_serializing_if = "Option::is_none")]
3859 pub risk_score: Option<i64>,
3860 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
3861 #[serde(rename = "severity")]
3862 #[serde(skip_serializing_if = "Option::is_none")]
3863 pub severity: Option<String>,
3864 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
3865 #[serde(rename = "severity_id")]
3866 #[serde(skip_serializing_if = "Option::is_none")]
3867 pub severity_id: Option<i64>,
3868 #[doc = "Source Endpoint\n\nDetails about the source of the activity.\n\nrequired"]
3869 #[serde(rename = "src_endpoint")]
3870 #[serde(skip_serializing_if = "Option::is_none")]
3871 pub src_endpoint: Option<Box<NetworkEndpoint>>,
3872 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
3873 #[serde(rename = "start_time")]
3874 #[serde(skip_serializing_if = "Option::is_none")]
3875 pub start_time: Option<i64>,
3876 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
3877 #[serde(rename = "start_time_dt")]
3878 #[serde(skip_serializing_if = "Option::is_none")]
3879 pub start_time_dt: Option<String>,
3880 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
3881 #[serde(rename = "status")]
3882 #[serde(skip_serializing_if = "Option::is_none")]
3883 pub status: Option<String>,
3884 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
3885 #[serde(rename = "status_code")]
3886 #[serde(skip_serializing_if = "Option::is_none")]
3887 pub status_code: Option<String>,
3888 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
3889 #[serde(rename = "status_detail")]
3890 #[serde(skip_serializing_if = "Option::is_none")]
3891 pub status_detail: Option<String>,
3892 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
3893 #[serde(rename = "status_id")]
3894 #[serde(skip_serializing_if = "Option::is_none")]
3895 pub status_id: Option<i64>,
3896 #[doc = "Table\n\nThe table object represents a table within a structured relational database or datastore, which contains columns and rows of data that are able to be create, updated, deleted and queried.\n\nrecommended"]
3897 #[serde(rename = "table")]
3898 #[serde(skip_serializing_if = "Option::is_none")]
3899 pub table: Option<Box<Table>>,
3900 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
3901 #[serde(rename = "time")]
3902 #[serde(skip_serializing_if = "Option::is_none")]
3903 pub time: Option<i64>,
3904 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
3905 #[serde(rename = "time_dt")]
3906 #[serde(skip_serializing_if = "Option::is_none")]
3907 pub time_dt: Option<String>,
3908 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
3909 #[serde(rename = "timezone_offset")]
3910 #[serde(skip_serializing_if = "Option::is_none")]
3911 pub timezone_offset: Option<i64>,
3912 #[doc = "Datastore Type\n\nThe datastore resource type (e.g. database, datastore, or table).\n\noptional"]
3913 #[serde(rename = "type")]
3914 #[serde(skip_serializing_if = "Option::is_none")]
3915 pub r#type: Option<String>,
3916 #[doc = "Datastore Type ID\n\nThe normalized datastore resource type identifier.\n\nrecommended"]
3917 #[serde(rename = "type_id")]
3918 #[serde(skip_serializing_if = "Option::is_none")]
3919 pub type_id: Option<i64>,
3920 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
3921 #[serde(rename = "type_name")]
3922 #[serde(skip_serializing_if = "Option::is_none")]
3923 pub type_name: Option<String>,
3924 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
3925 #[serde(rename = "type_uid")]
3926 #[serde(skip_serializing_if = "Option::is_none")]
3927 pub type_uid: Option<i64>,
3928 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
3929 #[serde(rename = "unmapped")]
3930 #[serde(skip_serializing_if = "Option::is_none")]
3931 pub unmapped: Option<serde_json::Value>,
3932}
3933#[doc = "Detection Finding\n\nA Detection Finding describes detections or alerts generated by security products using correlation engines, detection engines or other methodologies. Note: if the event producer is a security control, the <code>security_control</code> profile should be applied and its <code>attacks</code> information, if present, should be duplicated into the <code>finding_info</code> object. <br><strong>Note: </strong>If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2004] Category: findings | Name: detection_finding"]
3934#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
3935#[serde(default)]
3936#[non_exhaustive]
3937pub struct DetectionFinding {
3938 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
3939 #[serde(rename = "action")]
3940 #[serde(skip_serializing_if = "Option::is_none")]
3941 pub action: Option<String>,
3942 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
3943 #[serde(rename = "action_id")]
3944 #[serde(skip_serializing_if = "Option::is_none")]
3945 pub action_id: Option<i64>,
3946 #[doc = "Activity ID\n\nThe normalized identifier of the finding activity.\n\nrequired"]
3947 #[serde(rename = "activity_id")]
3948 #[serde(skip_serializing_if = "Option::is_none")]
3949 pub activity_id: Option<i64>,
3950 #[doc = "Activity\n\nThe finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
3951 #[serde(rename = "activity_name")]
3952 #[serde(skip_serializing_if = "Option::is_none")]
3953 pub activity_name: Option<String>,
3954 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
3955 #[serde(rename = "actor")]
3956 #[serde(skip_serializing_if = "Option::is_none")]
3957 pub actor: Option<Box<Actor>>,
3958 #[doc = "Anomaly Analyses\n\nDescribes baseline information about normal activity patterns, along with any detected deviations or anomalies that triggered this finding.\n\noptional"]
3959 #[serde(rename = "anomaly_analyses")]
3960 #[serde(skip_serializing_if = "Option::is_none")]
3961 pub anomaly_analyses: Option<Vec<AnomalyAnalysis>>,
3962 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
3963 #[serde(rename = "api")]
3964 #[serde(skip_serializing_if = "Option::is_none")]
3965 pub api: Option<Box<Api>>,
3966 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
3967 #[serde(rename = "assignee")]
3968 #[serde(skip_serializing_if = "Option::is_none")]
3969 pub assignee: Option<Box<User>>,
3970 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
3971 #[serde(rename = "assignee_group")]
3972 #[serde(skip_serializing_if = "Option::is_none")]
3973 pub assignee_group: Option<Box<Group>>,
3974 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
3975 #[serde(rename = "attacks")]
3976 #[serde(skip_serializing_if = "Option::is_none")]
3977 pub attacks: Option<Vec<Attack>>,
3978 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
3979 #[serde(rename = "authorizations")]
3980 #[serde(skip_serializing_if = "Option::is_none")]
3981 pub authorizations: Option<Vec<Authorization>>,
3982 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
3983 #[serde(rename = "category_name")]
3984 #[serde(skip_serializing_if = "Option::is_none")]
3985 pub category_name: Option<String>,
3986 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
3987 #[serde(rename = "category_uid")]
3988 #[serde(skip_serializing_if = "Option::is_none")]
3989 pub category_uid: Option<i64>,
3990 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Detection Finding</code>.\n\noptional"]
3991 #[serde(rename = "class_name")]
3992 #[serde(skip_serializing_if = "Option::is_none")]
3993 pub class_name: Option<String>,
3994 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
3995 #[serde(rename = "class_uid")]
3996 #[serde(skip_serializing_if = "Option::is_none")]
3997 pub class_uid: Option<i64>,
3998 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
3999 #[serde(rename = "cloud")]
4000 #[serde(skip_serializing_if = "Option::is_none")]
4001 pub cloud: Option<Box<Cloud>>,
4002 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
4003 #[serde(rename = "comment")]
4004 #[serde(skip_serializing_if = "Option::is_none")]
4005 pub comment: Option<String>,
4006 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4007 #[serde(rename = "confidence")]
4008 #[serde(skip_serializing_if = "Option::is_none")]
4009 pub confidence: Option<String>,
4010 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
4011 #[serde(rename = "confidence_id")]
4012 #[serde(skip_serializing_if = "Option::is_none")]
4013 pub confidence_id: Option<i64>,
4014 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
4015 #[serde(rename = "confidence_score")]
4016 #[serde(skip_serializing_if = "Option::is_none")]
4017 pub confidence_score: Option<i64>,
4018 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
4019 #[serde(rename = "count")]
4020 #[serde(skip_serializing_if = "Option::is_none")]
4021 pub count: Option<i64>,
4022 #[doc = "Device\n\nDescribes the affected device/host. If applicable, it can be used in conjunction with <code>Resource(s)</code>. <p> e.g. Specific details about an AWS EC2 instance, that is affected by the Finding.</p>\n\noptional"]
4023 #[serde(rename = "device")]
4024 #[serde(skip_serializing_if = "Option::is_none")]
4025 pub device: Option<Box<Device>>,
4026 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4027 #[serde(rename = "disposition")]
4028 #[serde(skip_serializing_if = "Option::is_none")]
4029 pub disposition: Option<String>,
4030 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
4031 #[serde(rename = "disposition_id")]
4032 #[serde(skip_serializing_if = "Option::is_none")]
4033 pub disposition_id: Option<i64>,
4034 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
4035 #[serde(rename = "duration")]
4036 #[serde(skip_serializing_if = "Option::is_none")]
4037 pub duration: Option<i64>,
4038 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
4039 #[serde(rename = "end_time")]
4040 #[serde(skip_serializing_if = "Option::is_none")]
4041 pub end_time: Option<i64>,
4042 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
4043 #[serde(rename = "end_time_dt")]
4044 #[serde(skip_serializing_if = "Option::is_none")]
4045 pub end_time_dt: Option<String>,
4046 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
4047 #[serde(rename = "enrichments")]
4048 #[serde(skip_serializing_if = "Option::is_none")]
4049 pub enrichments: Option<Vec<Enrichment>>,
4050 #[doc = "Evidence Artifacts\n\nDescribes various evidence artifacts associated to the activity/activities that triggered a security detection.\n\nrecommended"]
4051 #[serde(rename = "evidences")]
4052 #[serde(skip_serializing_if = "Option::is_none")]
4053 pub evidences: Option<Vec<Evidences>>,
4054 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
4055 #[serde(rename = "finding_info")]
4056 #[serde(skip_serializing_if = "Option::is_none")]
4057 pub finding_info: Option<Box<FindingInfo>>,
4058 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
4059 #[serde(rename = "firewall_rule")]
4060 #[serde(skip_serializing_if = "Option::is_none")]
4061 pub firewall_rule: Option<Box<FirewallRule>>,
4062 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4063 #[serde(rename = "impact")]
4064 #[serde(skip_serializing_if = "Option::is_none")]
4065 pub impact: Option<String>,
4066 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\noptional"]
4067 #[serde(rename = "impact_id")]
4068 #[serde(skip_serializing_if = "Option::is_none")]
4069 pub impact_id: Option<i64>,
4070 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\noptional"]
4071 #[serde(rename = "impact_score")]
4072 #[serde(skip_serializing_if = "Option::is_none")]
4073 pub impact_score: Option<i64>,
4074 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. For example, an <code>activity_id</code> of 'Create' could constitute an alertable signal and the value would be <code>true</code>, while 'Close' likely would not and either omit the attribute or set its value to <code>false</code>. Note that other events with the <code>security_control</code> profile may also be deemed alertable signals and may also carry <code>is_alert = true</code> attributes.\n\nrecommended"]
4075 #[serde(rename = "is_alert")]
4076 #[serde(skip_serializing_if = "Option::is_none")]
4077 pub is_alert: Option<bool>,
4078 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
4079 #[serde(rename = "is_suspected_breach")]
4080 #[serde(skip_serializing_if = "Option::is_none")]
4081 pub is_suspected_breach: Option<bool>,
4082 #[doc = "Malware\n\nDescribes malware reported in a Detection Finding.\n\noptional"]
4083 #[serde(rename = "malware")]
4084 #[serde(skip_serializing_if = "Option::is_none")]
4085 pub malware: Option<Vec<Malware>>,
4086 #[doc = "Malware Scan Info\n\nDescribes details about malware scan job that triggered this Detection Finding.\n\noptional"]
4087 #[serde(rename = "malware_scan_info")]
4088 #[serde(skip_serializing_if = "Option::is_none")]
4089 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
4090 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
4091 #[serde(rename = "message")]
4092 #[serde(skip_serializing_if = "Option::is_none")]
4093 pub message: Option<String>,
4094 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
4095 #[serde(rename = "metadata")]
4096 #[serde(skip_serializing_if = "Option::is_none")]
4097 pub metadata: Option<Box<Metadata>>,
4098 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
4099 #[serde(rename = "observables")]
4100 #[serde(skip_serializing_if = "Option::is_none")]
4101 pub observables: Option<Vec<Observable>>,
4102 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
4103 #[serde(rename = "osint")]
4104 #[serde(skip_serializing_if = "Option::is_none")]
4105 pub osint: Option<Vec<Osint>>,
4106 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
4107 #[serde(rename = "policy")]
4108 #[serde(skip_serializing_if = "Option::is_none")]
4109 pub policy: Option<Box<Policy>>,
4110 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4111 #[serde(rename = "priority")]
4112 #[serde(skip_serializing_if = "Option::is_none")]
4113 pub priority: Option<String>,
4114 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
4115 #[serde(rename = "priority_id")]
4116 #[serde(skip_serializing_if = "Option::is_none")]
4117 pub priority_id: Option<i64>,
4118 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
4119 #[serde(rename = "raw_data")]
4120 #[serde(skip_serializing_if = "Option::is_none")]
4121 pub raw_data: Option<String>,
4122 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
4123 #[serde(rename = "raw_data_hash")]
4124 #[serde(skip_serializing_if = "Option::is_none")]
4125 pub raw_data_hash: Option<Box<Fingerprint>>,
4126 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
4127 #[serde(rename = "raw_data_size")]
4128 #[serde(skip_serializing_if = "Option::is_none")]
4129 pub raw_data_size: Option<i64>,
4130 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
4131 #[serde(rename = "remediation")]
4132 #[serde(skip_serializing_if = "Option::is_none")]
4133 pub remediation: Option<Box<Remediation>>,
4134 #[doc = "Affected Resources\n\nDescribes details about resources that were the target of the activity that triggered the finding.\n\nrecommended"]
4135 #[serde(rename = "resources")]
4136 #[serde(skip_serializing_if = "Option::is_none")]
4137 pub resources: Option<Vec<ResourceDetails>>,
4138 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
4139 #[serde(rename = "risk_details")]
4140 #[serde(skip_serializing_if = "Option::is_none")]
4141 pub risk_details: Option<String>,
4142 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
4143 #[serde(rename = "risk_level")]
4144 #[serde(skip_serializing_if = "Option::is_none")]
4145 pub risk_level: Option<String>,
4146 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
4147 #[serde(rename = "risk_level_id")]
4148 #[serde(skip_serializing_if = "Option::is_none")]
4149 pub risk_level_id: Option<i64>,
4150 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
4151 #[serde(rename = "risk_score")]
4152 #[serde(skip_serializing_if = "Option::is_none")]
4153 pub risk_score: Option<i64>,
4154 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
4155 #[serde(rename = "severity")]
4156 #[serde(skip_serializing_if = "Option::is_none")]
4157 pub severity: Option<String>,
4158 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
4159 #[serde(rename = "severity_id")]
4160 #[serde(skip_serializing_if = "Option::is_none")]
4161 pub severity_id: Option<i64>,
4162 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
4163 #[serde(rename = "src_url")]
4164 #[serde(skip_serializing_if = "Option::is_none")]
4165 pub src_url: Option<String>,
4166 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
4167 #[serde(rename = "start_time")]
4168 #[serde(skip_serializing_if = "Option::is_none")]
4169 pub start_time: Option<i64>,
4170 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
4171 #[serde(rename = "start_time_dt")]
4172 #[serde(skip_serializing_if = "Option::is_none")]
4173 pub start_time_dt: Option<String>,
4174 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
4175 #[serde(rename = "status")]
4176 #[serde(skip_serializing_if = "Option::is_none")]
4177 pub status: Option<String>,
4178 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
4179 #[serde(rename = "status_code")]
4180 #[serde(skip_serializing_if = "Option::is_none")]
4181 pub status_code: Option<String>,
4182 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
4183 #[serde(rename = "status_detail")]
4184 #[serde(skip_serializing_if = "Option::is_none")]
4185 pub status_detail: Option<String>,
4186 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
4187 #[serde(rename = "status_id")]
4188 #[serde(skip_serializing_if = "Option::is_none")]
4189 pub status_id: Option<i64>,
4190 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
4191 #[serde(rename = "ticket")]
4192 #[serde(skip_serializing_if = "Option::is_none")]
4193 pub ticket: Option<Box<Ticket>>,
4194 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
4195 #[serde(rename = "tickets")]
4196 #[serde(skip_serializing_if = "Option::is_none")]
4197 pub tickets: Option<Vec<Ticket>>,
4198 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
4199 #[serde(rename = "time")]
4200 #[serde(skip_serializing_if = "Option::is_none")]
4201 pub time: Option<i64>,
4202 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
4203 #[serde(rename = "time_dt")]
4204 #[serde(skip_serializing_if = "Option::is_none")]
4205 pub time_dt: Option<String>,
4206 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
4207 #[serde(rename = "timezone_offset")]
4208 #[serde(skip_serializing_if = "Option::is_none")]
4209 pub timezone_offset: Option<i64>,
4210 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
4211 #[serde(rename = "type_name")]
4212 #[serde(skip_serializing_if = "Option::is_none")]
4213 pub type_name: Option<String>,
4214 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
4215 #[serde(rename = "type_uid")]
4216 #[serde(skip_serializing_if = "Option::is_none")]
4217 pub type_uid: Option<i64>,
4218 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
4219 #[serde(rename = "unmapped")]
4220 #[serde(skip_serializing_if = "Option::is_none")]
4221 pub unmapped: Option<serde_json::Value>,
4222 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
4223 #[serde(rename = "vendor_attributes")]
4224 #[serde(skip_serializing_if = "Option::is_none")]
4225 pub vendor_attributes: Option<Box<VendorAttributes>>,
4226 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
4227 #[serde(rename = "verdict")]
4228 #[serde(skip_serializing_if = "Option::is_none")]
4229 pub verdict: Option<String>,
4230 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
4231 #[serde(rename = "verdict_id")]
4232 #[serde(skip_serializing_if = "Option::is_none")]
4233 pub verdict_id: Option<i64>,
4234 #[doc = "Vulnerabilities\n\nDescribes vulnerabilities reported in a Detection Finding.\n\noptional"]
4235 #[serde(rename = "vulnerabilities")]
4236 #[serde(skip_serializing_if = "Option::is_none")]
4237 pub vulnerabilities: Option<Vec<Vulnerability>>,
4238}
4239#[doc = "Device Config State Change\n\nDevice Config State Change events report state changes that impact the security of the device.\n\n[UID:5019] Category: discovery | Name: device_config_state_change"]
4240#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
4241#[serde(default)]
4242#[non_exhaustive]
4243pub struct DeviceConfigStateChange {
4244 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
4245 #[serde(rename = "action")]
4246 #[serde(skip_serializing_if = "Option::is_none")]
4247 pub action: Option<String>,
4248 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
4249 #[serde(rename = "action_id")]
4250 #[serde(skip_serializing_if = "Option::is_none")]
4251 pub action_id: Option<i64>,
4252 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
4253 #[serde(rename = "activity_id")]
4254 #[serde(skip_serializing_if = "Option::is_none")]
4255 pub activity_id: Option<i64>,
4256 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
4257 #[serde(rename = "activity_name")]
4258 #[serde(skip_serializing_if = "Option::is_none")]
4259 pub activity_name: Option<String>,
4260 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
4261 #[serde(rename = "actor")]
4262 #[serde(skip_serializing_if = "Option::is_none")]
4263 pub actor: Option<Box<Actor>>,
4264 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
4265 #[serde(rename = "api")]
4266 #[serde(skip_serializing_if = "Option::is_none")]
4267 pub api: Option<Box<Api>>,
4268 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
4269 #[serde(rename = "attacks")]
4270 #[serde(skip_serializing_if = "Option::is_none")]
4271 pub attacks: Option<Vec<Attack>>,
4272 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
4273 #[serde(rename = "authorizations")]
4274 #[serde(skip_serializing_if = "Option::is_none")]
4275 pub authorizations: Option<Vec<Authorization>>,
4276 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
4277 #[serde(rename = "category_name")]
4278 #[serde(skip_serializing_if = "Option::is_none")]
4279 pub category_name: Option<String>,
4280 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
4281 #[serde(rename = "category_uid")]
4282 #[serde(skip_serializing_if = "Option::is_none")]
4283 pub category_uid: Option<i64>,
4284 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Device Config State Change</code>.\n\noptional"]
4285 #[serde(rename = "class_name")]
4286 #[serde(skip_serializing_if = "Option::is_none")]
4287 pub class_name: Option<String>,
4288 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
4289 #[serde(rename = "class_uid")]
4290 #[serde(skip_serializing_if = "Option::is_none")]
4291 pub class_uid: Option<i64>,
4292 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
4293 #[serde(rename = "cloud")]
4294 #[serde(skip_serializing_if = "Option::is_none")]
4295 pub cloud: Option<Box<Cloud>>,
4296 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4297 #[serde(rename = "confidence")]
4298 #[serde(skip_serializing_if = "Option::is_none")]
4299 pub confidence: Option<String>,
4300 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
4301 #[serde(rename = "confidence_id")]
4302 #[serde(skip_serializing_if = "Option::is_none")]
4303 pub confidence_id: Option<i64>,
4304 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
4305 #[serde(rename = "confidence_score")]
4306 #[serde(skip_serializing_if = "Option::is_none")]
4307 pub confidence_score: Option<i64>,
4308 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
4309 #[serde(rename = "count")]
4310 #[serde(skip_serializing_if = "Option::is_none")]
4311 pub count: Option<i64>,
4312 #[doc = "Device\n\nThe device that is impacted by the state change.\n\nrequired"]
4313 #[serde(rename = "device")]
4314 #[serde(skip_serializing_if = "Option::is_none")]
4315 pub device: Option<Box<Device>>,
4316 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4317 #[serde(rename = "disposition")]
4318 #[serde(skip_serializing_if = "Option::is_none")]
4319 pub disposition: Option<String>,
4320 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
4321 #[serde(rename = "disposition_id")]
4322 #[serde(skip_serializing_if = "Option::is_none")]
4323 pub disposition_id: Option<i64>,
4324 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
4325 #[serde(rename = "duration")]
4326 #[serde(skip_serializing_if = "Option::is_none")]
4327 pub duration: Option<i64>,
4328 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4329 #[serde(rename = "end_time")]
4330 #[serde(skip_serializing_if = "Option::is_none")]
4331 pub end_time: Option<i64>,
4332 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4333 #[serde(rename = "end_time_dt")]
4334 #[serde(skip_serializing_if = "Option::is_none")]
4335 pub end_time_dt: Option<String>,
4336 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
4337 #[serde(rename = "enrichments")]
4338 #[serde(skip_serializing_if = "Option::is_none")]
4339 pub enrichments: Option<Vec<Enrichment>>,
4340 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
4341 #[serde(rename = "firewall_rule")]
4342 #[serde(skip_serializing_if = "Option::is_none")]
4343 pub firewall_rule: Option<Box<FirewallRule>>,
4344 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
4345 #[serde(rename = "is_alert")]
4346 #[serde(skip_serializing_if = "Option::is_none")]
4347 pub is_alert: Option<bool>,
4348 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
4349 #[serde(rename = "malware")]
4350 #[serde(skip_serializing_if = "Option::is_none")]
4351 pub malware: Option<Vec<Malware>>,
4352 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
4353 #[serde(rename = "malware_scan_info")]
4354 #[serde(skip_serializing_if = "Option::is_none")]
4355 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
4356 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
4357 #[serde(rename = "message")]
4358 #[serde(skip_serializing_if = "Option::is_none")]
4359 pub message: Option<String>,
4360 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
4361 #[serde(rename = "metadata")]
4362 #[serde(skip_serializing_if = "Option::is_none")]
4363 pub metadata: Option<Box<Metadata>>,
4364 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
4365 #[serde(rename = "observables")]
4366 #[serde(skip_serializing_if = "Option::is_none")]
4367 pub observables: Option<Vec<Observable>>,
4368 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
4369 #[serde(rename = "osint")]
4370 #[serde(skip_serializing_if = "Option::is_none")]
4371 pub osint: Option<Vec<Osint>>,
4372 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
4373 #[serde(rename = "policy")]
4374 #[serde(skip_serializing_if = "Option::is_none")]
4375 pub policy: Option<Box<Policy>>,
4376 #[doc = "Previous Security Level\n\nThe previous security level of the entity\n\nrecommended"]
4377 #[serde(rename = "prev_security_level")]
4378 #[serde(skip_serializing_if = "Option::is_none")]
4379 pub prev_security_level: Option<String>,
4380 #[doc = "Previous Security Level ID\n\nThe previous security level of the entity\n\nrecommended"]
4381 #[serde(rename = "prev_security_level_id")]
4382 #[serde(skip_serializing_if = "Option::is_none")]
4383 pub prev_security_level_id: Option<i64>,
4384 #[doc = "Previous Security States\n\nThe previous security states of the device.\n\nrecommended"]
4385 #[serde(rename = "prev_security_states")]
4386 #[serde(skip_serializing_if = "Option::is_none")]
4387 pub prev_security_states: Option<Vec<SecurityState>>,
4388 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
4389 #[serde(rename = "raw_data")]
4390 #[serde(skip_serializing_if = "Option::is_none")]
4391 pub raw_data: Option<String>,
4392 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
4393 #[serde(rename = "raw_data_hash")]
4394 #[serde(skip_serializing_if = "Option::is_none")]
4395 pub raw_data_hash: Option<Box<Fingerprint>>,
4396 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
4397 #[serde(rename = "raw_data_size")]
4398 #[serde(skip_serializing_if = "Option::is_none")]
4399 pub raw_data_size: Option<i64>,
4400 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
4401 #[serde(rename = "risk_details")]
4402 #[serde(skip_serializing_if = "Option::is_none")]
4403 pub risk_details: Option<String>,
4404 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
4405 #[serde(rename = "risk_level")]
4406 #[serde(skip_serializing_if = "Option::is_none")]
4407 pub risk_level: Option<String>,
4408 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
4409 #[serde(rename = "risk_level_id")]
4410 #[serde(skip_serializing_if = "Option::is_none")]
4411 pub risk_level_id: Option<i64>,
4412 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
4413 #[serde(rename = "risk_score")]
4414 #[serde(skip_serializing_if = "Option::is_none")]
4415 pub risk_score: Option<i64>,
4416 #[doc = "Security Level\n\nThe current security level of the entity\n\nrecommended"]
4417 #[serde(rename = "security_level")]
4418 #[serde(skip_serializing_if = "Option::is_none")]
4419 pub security_level: Option<String>,
4420 #[doc = "Security Level ID\n\nThe current security level of the entity\n\nrecommended"]
4421 #[serde(rename = "security_level_id")]
4422 #[serde(skip_serializing_if = "Option::is_none")]
4423 pub security_level_id: Option<i64>,
4424 #[doc = "Security States\n\nThe current security states of the device.\n\nrecommended"]
4425 #[serde(rename = "security_states")]
4426 #[serde(skip_serializing_if = "Option::is_none")]
4427 pub security_states: Option<Vec<SecurityState>>,
4428 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
4429 #[serde(rename = "severity")]
4430 #[serde(skip_serializing_if = "Option::is_none")]
4431 pub severity: Option<String>,
4432 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
4433 #[serde(rename = "severity_id")]
4434 #[serde(skip_serializing_if = "Option::is_none")]
4435 pub severity_id: Option<i64>,
4436 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
4437 #[serde(rename = "start_time")]
4438 #[serde(skip_serializing_if = "Option::is_none")]
4439 pub start_time: Option<i64>,
4440 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
4441 #[serde(rename = "start_time_dt")]
4442 #[serde(skip_serializing_if = "Option::is_none")]
4443 pub start_time_dt: Option<String>,
4444 #[doc = "Config Change State\n\nThe Config Change Stat, normalized to the caption of the state_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
4445 #[serde(rename = "state")]
4446 #[serde(skip_serializing_if = "Option::is_none")]
4447 pub state: Option<String>,
4448 #[doc = "Config Change State ID\n\nThe Config Change State of the managed entity.\n\nrecommended"]
4449 #[serde(rename = "state_id")]
4450 #[serde(skip_serializing_if = "Option::is_none")]
4451 pub state_id: Option<i64>,
4452 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
4453 #[serde(rename = "status")]
4454 #[serde(skip_serializing_if = "Option::is_none")]
4455 pub status: Option<String>,
4456 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
4457 #[serde(rename = "status_code")]
4458 #[serde(skip_serializing_if = "Option::is_none")]
4459 pub status_code: Option<String>,
4460 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
4461 #[serde(rename = "status_detail")]
4462 #[serde(skip_serializing_if = "Option::is_none")]
4463 pub status_detail: Option<String>,
4464 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
4465 #[serde(rename = "status_id")]
4466 #[serde(skip_serializing_if = "Option::is_none")]
4467 pub status_id: Option<i64>,
4468 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
4469 #[serde(rename = "time")]
4470 #[serde(skip_serializing_if = "Option::is_none")]
4471 pub time: Option<i64>,
4472 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
4473 #[serde(rename = "time_dt")]
4474 #[serde(skip_serializing_if = "Option::is_none")]
4475 pub time_dt: Option<String>,
4476 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
4477 #[serde(rename = "timezone_offset")]
4478 #[serde(skip_serializing_if = "Option::is_none")]
4479 pub timezone_offset: Option<i64>,
4480 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
4481 #[serde(rename = "type_name")]
4482 #[serde(skip_serializing_if = "Option::is_none")]
4483 pub type_name: Option<String>,
4484 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
4485 #[serde(rename = "type_uid")]
4486 #[serde(skip_serializing_if = "Option::is_none")]
4487 pub type_uid: Option<i64>,
4488 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
4489 #[serde(rename = "unmapped")]
4490 #[serde(skip_serializing_if = "Option::is_none")]
4491 pub unmapped: Option<serde_json::Value>,
4492}
4493#[doc = "DHCP Activity\n\nDHCP Activity events report MAC to IP assignment via DHCP from a client or server.\n\n[UID:4004] Category: network | Name: dhcp_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
4494#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
4495#[serde(default)]
4496#[non_exhaustive]
4497pub struct DhcpActivity {
4498 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
4499 #[serde(rename = "action")]
4500 #[serde(skip_serializing_if = "Option::is_none")]
4501 pub action: Option<String>,
4502 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
4503 #[serde(rename = "action_id")]
4504 #[serde(skip_serializing_if = "Option::is_none")]
4505 pub action_id: Option<i64>,
4506 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
4507 #[serde(rename = "activity_id")]
4508 #[serde(skip_serializing_if = "Option::is_none")]
4509 pub activity_id: Option<i64>,
4510 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
4511 #[serde(rename = "activity_name")]
4512 #[serde(skip_serializing_if = "Option::is_none")]
4513 pub activity_name: Option<String>,
4514 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
4515 #[serde(rename = "actor")]
4516 #[serde(skip_serializing_if = "Option::is_none")]
4517 pub actor: Option<Box<Actor>>,
4518 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
4519 #[serde(rename = "api")]
4520 #[serde(skip_serializing_if = "Option::is_none")]
4521 pub api: Option<Box<Api>>,
4522 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
4523 #[serde(rename = "app_name")]
4524 #[serde(skip_serializing_if = "Option::is_none")]
4525 pub app_name: Option<String>,
4526 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
4527 #[serde(rename = "attacks")]
4528 #[serde(skip_serializing_if = "Option::is_none")]
4529 pub attacks: Option<Vec<Attack>>,
4530 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
4531 #[serde(rename = "authorizations")]
4532 #[serde(skip_serializing_if = "Option::is_none")]
4533 pub authorizations: Option<Vec<Authorization>>,
4534 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
4535 #[serde(rename = "category_name")]
4536 #[serde(skip_serializing_if = "Option::is_none")]
4537 pub category_name: Option<String>,
4538 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
4539 #[serde(rename = "category_uid")]
4540 #[serde(skip_serializing_if = "Option::is_none")]
4541 pub category_uid: Option<i64>,
4542 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>DHCP Activity</code>.\n\noptional"]
4543 #[serde(rename = "class_name")]
4544 #[serde(skip_serializing_if = "Option::is_none")]
4545 pub class_name: Option<String>,
4546 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
4547 #[serde(rename = "class_uid")]
4548 #[serde(skip_serializing_if = "Option::is_none")]
4549 pub class_uid: Option<i64>,
4550 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
4551 #[serde(rename = "cloud")]
4552 #[serde(skip_serializing_if = "Option::is_none")]
4553 pub cloud: Option<Box<Cloud>>,
4554 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4555 #[serde(rename = "confidence")]
4556 #[serde(skip_serializing_if = "Option::is_none")]
4557 pub confidence: Option<String>,
4558 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
4559 #[serde(rename = "confidence_id")]
4560 #[serde(skip_serializing_if = "Option::is_none")]
4561 pub confidence_id: Option<i64>,
4562 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
4563 #[serde(rename = "confidence_score")]
4564 #[serde(skip_serializing_if = "Option::is_none")]
4565 pub confidence_score: Option<i64>,
4566 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
4567 #[serde(rename = "connection_info")]
4568 #[serde(skip_serializing_if = "Option::is_none")]
4569 pub connection_info: Option<Box<NetworkConnectionInfo>>,
4570 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
4571 #[serde(rename = "count")]
4572 #[serde(skip_serializing_if = "Option::is_none")]
4573 pub count: Option<i64>,
4574 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
4575 #[serde(rename = "cumulative_traffic")]
4576 #[serde(skip_serializing_if = "Option::is_none")]
4577 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
4578 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
4579 #[serde(rename = "device")]
4580 #[serde(skip_serializing_if = "Option::is_none")]
4581 pub device: Option<Box<Device>>,
4582 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4583 #[serde(rename = "disposition")]
4584 #[serde(skip_serializing_if = "Option::is_none")]
4585 pub disposition: Option<String>,
4586 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
4587 #[serde(rename = "disposition_id")]
4588 #[serde(skip_serializing_if = "Option::is_none")]
4589 pub disposition_id: Option<i64>,
4590 #[doc = "Destination Endpoint\n\nThe responder (server) of the DHCP connection.\n\nrecommended"]
4591 #[serde(rename = "dst_endpoint")]
4592 #[serde(skip_serializing_if = "Option::is_none")]
4593 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
4594 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
4595 #[serde(rename = "duration")]
4596 #[serde(skip_serializing_if = "Option::is_none")]
4597 pub duration: Option<i64>,
4598 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4599 #[serde(rename = "end_time")]
4600 #[serde(skip_serializing_if = "Option::is_none")]
4601 pub end_time: Option<i64>,
4602 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4603 #[serde(rename = "end_time_dt")]
4604 #[serde(skip_serializing_if = "Option::is_none")]
4605 pub end_time_dt: Option<String>,
4606 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
4607 #[serde(rename = "enrichments")]
4608 #[serde(skip_serializing_if = "Option::is_none")]
4609 pub enrichments: Option<Vec<Enrichment>>,
4610 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
4611 #[serde(rename = "firewall_rule")]
4612 #[serde(skip_serializing_if = "Option::is_none")]
4613 pub firewall_rule: Option<Box<FirewallRule>>,
4614 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
4615 #[serde(rename = "is_alert")]
4616 #[serde(skip_serializing_if = "Option::is_none")]
4617 pub is_alert: Option<bool>,
4618 #[doc = "Renewal\n\nIndicates whether this is a lease/session renewal event.\n\nrecommended"]
4619 #[serde(rename = "is_renewal")]
4620 #[serde(skip_serializing_if = "Option::is_none")]
4621 pub is_renewal: Option<bool>,
4622 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
4623 #[serde(rename = "ja4_fingerprint_list")]
4624 #[serde(skip_serializing_if = "Option::is_none")]
4625 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
4626 #[doc = "Lease Duration\n\nThis represents the length of the DHCP lease in seconds. This is present in DHCP Ack events.\n\nrecommended"]
4627 #[serde(rename = "lease_dur")]
4628 #[serde(skip_serializing_if = "Option::is_none")]
4629 pub lease_dur: Option<i64>,
4630 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
4631 #[serde(rename = "load_balancer")]
4632 #[serde(skip_serializing_if = "Option::is_none")]
4633 pub load_balancer: Option<Box<LoadBalancer>>,
4634 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
4635 #[serde(rename = "malware")]
4636 #[serde(skip_serializing_if = "Option::is_none")]
4637 pub malware: Option<Vec<Malware>>,
4638 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
4639 #[serde(rename = "malware_scan_info")]
4640 #[serde(skip_serializing_if = "Option::is_none")]
4641 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
4642 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
4643 #[serde(rename = "message")]
4644 #[serde(skip_serializing_if = "Option::is_none")]
4645 pub message: Option<String>,
4646 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
4647 #[serde(rename = "metadata")]
4648 #[serde(skip_serializing_if = "Option::is_none")]
4649 pub metadata: Option<Box<Metadata>>,
4650 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
4651 #[serde(rename = "observables")]
4652 #[serde(skip_serializing_if = "Option::is_none")]
4653 pub observables: Option<Vec<Observable>>,
4654 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
4655 #[serde(rename = "observation_point")]
4656 #[serde(skip_serializing_if = "Option::is_none")]
4657 pub observation_point: Option<String>,
4658 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
4659 #[serde(rename = "observation_point_id")]
4660 #[serde(skip_serializing_if = "Option::is_none")]
4661 pub observation_point_id: Option<i64>,
4662 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
4663 #[serde(rename = "osint")]
4664 #[serde(skip_serializing_if = "Option::is_none")]
4665 pub osint: Option<Vec<Osint>>,
4666 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
4667 #[serde(rename = "policy")]
4668 #[serde(skip_serializing_if = "Option::is_none")]
4669 pub policy: Option<Box<Policy>>,
4670 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
4671 #[serde(rename = "proxy")]
4672 #[serde(skip_serializing_if = "Option::is_none")]
4673 pub proxy: Option<Box<NetworkProxy>>,
4674 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
4675 #[serde(rename = "proxy_connection_info")]
4676 #[serde(skip_serializing_if = "Option::is_none")]
4677 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
4678 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
4679 #[serde(rename = "proxy_endpoint")]
4680 #[serde(skip_serializing_if = "Option::is_none")]
4681 pub proxy_endpoint: Option<Box<NetworkProxy>>,
4682 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
4683 #[serde(rename = "proxy_http_request")]
4684 #[serde(skip_serializing_if = "Option::is_none")]
4685 pub proxy_http_request: Option<Box<HttpRequest>>,
4686 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
4687 #[serde(rename = "proxy_http_response")]
4688 #[serde(skip_serializing_if = "Option::is_none")]
4689 pub proxy_http_response: Option<Box<HttpResponse>>,
4690 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
4691 #[serde(rename = "proxy_tls")]
4692 #[serde(skip_serializing_if = "Option::is_none")]
4693 pub proxy_tls: Option<Box<Tls>>,
4694 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
4695 #[serde(rename = "proxy_traffic")]
4696 #[serde(skip_serializing_if = "Option::is_none")]
4697 pub proxy_traffic: Option<Box<NetworkTraffic>>,
4698 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
4699 #[serde(rename = "raw_data")]
4700 #[serde(skip_serializing_if = "Option::is_none")]
4701 pub raw_data: Option<String>,
4702 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
4703 #[serde(rename = "raw_data_hash")]
4704 #[serde(skip_serializing_if = "Option::is_none")]
4705 pub raw_data_hash: Option<Box<Fingerprint>>,
4706 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
4707 #[serde(rename = "raw_data_size")]
4708 #[serde(skip_serializing_if = "Option::is_none")]
4709 pub raw_data_size: Option<i64>,
4710 #[doc = "Relay\n\nThe network relay that is associated with the event.\n\nrecommended"]
4711 #[serde(rename = "relay")]
4712 #[serde(skip_serializing_if = "Option::is_none")]
4713 pub relay: Option<Box<NetworkInterface>>,
4714 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
4715 #[serde(rename = "risk_details")]
4716 #[serde(skip_serializing_if = "Option::is_none")]
4717 pub risk_details: Option<String>,
4718 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
4719 #[serde(rename = "risk_level")]
4720 #[serde(skip_serializing_if = "Option::is_none")]
4721 pub risk_level: Option<String>,
4722 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
4723 #[serde(rename = "risk_level_id")]
4724 #[serde(skip_serializing_if = "Option::is_none")]
4725 pub risk_level_id: Option<i64>,
4726 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
4727 #[serde(rename = "risk_score")]
4728 #[serde(skip_serializing_if = "Option::is_none")]
4729 pub risk_score: Option<i64>,
4730 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
4731 #[serde(rename = "severity")]
4732 #[serde(skip_serializing_if = "Option::is_none")]
4733 pub severity: Option<String>,
4734 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
4735 #[serde(rename = "severity_id")]
4736 #[serde(skip_serializing_if = "Option::is_none")]
4737 pub severity_id: Option<i64>,
4738 #[doc = "Source Endpoint\n\nThe initiator (client) of the DHCP connection.\n\nrecommended"]
4739 #[serde(rename = "src_endpoint")]
4740 #[serde(skip_serializing_if = "Option::is_none")]
4741 pub src_endpoint: Option<Box<NetworkEndpoint>>,
4742 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
4743 #[serde(rename = "start_time")]
4744 #[serde(skip_serializing_if = "Option::is_none")]
4745 pub start_time: Option<i64>,
4746 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
4747 #[serde(rename = "start_time_dt")]
4748 #[serde(skip_serializing_if = "Option::is_none")]
4749 pub start_time_dt: Option<String>,
4750 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
4751 #[serde(rename = "status")]
4752 #[serde(skip_serializing_if = "Option::is_none")]
4753 pub status: Option<String>,
4754 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
4755 #[serde(rename = "status_code")]
4756 #[serde(skip_serializing_if = "Option::is_none")]
4757 pub status_code: Option<String>,
4758 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
4759 #[serde(rename = "status_detail")]
4760 #[serde(skip_serializing_if = "Option::is_none")]
4761 pub status_detail: Option<String>,
4762 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
4763 #[serde(rename = "status_id")]
4764 #[serde(skip_serializing_if = "Option::is_none")]
4765 pub status_id: Option<i64>,
4766 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
4767 #[serde(rename = "time")]
4768 #[serde(skip_serializing_if = "Option::is_none")]
4769 pub time: Option<i64>,
4770 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
4771 #[serde(rename = "time_dt")]
4772 #[serde(skip_serializing_if = "Option::is_none")]
4773 pub time_dt: Option<String>,
4774 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
4775 #[serde(rename = "timezone_offset")]
4776 #[serde(skip_serializing_if = "Option::is_none")]
4777 pub timezone_offset: Option<i64>,
4778 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
4779 #[serde(rename = "tls")]
4780 #[serde(skip_serializing_if = "Option::is_none")]
4781 pub tls: Option<Box<Tls>>,
4782 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
4783 #[serde(rename = "traffic")]
4784 #[serde(skip_serializing_if = "Option::is_none")]
4785 pub traffic: Option<Box<NetworkTraffic>>,
4786 #[doc = "Transaction UID\n\nThe unique identifier of the transaction. This is typically a random number generated from the client to associate a dhcp request/response pair.\n\nrecommended"]
4787 #[serde(rename = "transaction_uid")]
4788 #[serde(skip_serializing_if = "Option::is_none")]
4789 pub transaction_uid: Option<String>,
4790 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
4791 #[serde(rename = "type_name")]
4792 #[serde(skip_serializing_if = "Option::is_none")]
4793 pub type_name: Option<String>,
4794 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
4795 #[serde(rename = "type_uid")]
4796 #[serde(skip_serializing_if = "Option::is_none")]
4797 pub type_uid: Option<i64>,
4798 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
4799 #[serde(rename = "unmapped")]
4800 #[serde(skip_serializing_if = "Option::is_none")]
4801 pub unmapped: Option<serde_json::Value>,
4802}
4803#[doc = "DNS Activity\n\nDNS Activity events report DNS queries and answers as seen on the network.\n\n[UID:4003] Category: network | Name: dns_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
4804#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
4805#[serde(default)]
4806#[non_exhaustive]
4807pub struct DnsActivity {
4808 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
4809 #[serde(rename = "action")]
4810 #[serde(skip_serializing_if = "Option::is_none")]
4811 pub action: Option<String>,
4812 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
4813 #[serde(rename = "action_id")]
4814 #[serde(skip_serializing_if = "Option::is_none")]
4815 pub action_id: Option<i64>,
4816 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
4817 #[serde(rename = "activity_id")]
4818 #[serde(skip_serializing_if = "Option::is_none")]
4819 pub activity_id: Option<i64>,
4820 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
4821 #[serde(rename = "activity_name")]
4822 #[serde(skip_serializing_if = "Option::is_none")]
4823 pub activity_name: Option<String>,
4824 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
4825 #[serde(rename = "actor")]
4826 #[serde(skip_serializing_if = "Option::is_none")]
4827 pub actor: Option<Box<Actor>>,
4828 #[doc = "DNS Answer\n\nThe Domain Name System (DNS) answers.\n\nrecommended"]
4829 #[serde(rename = "answers")]
4830 #[serde(skip_serializing_if = "Option::is_none")]
4831 pub answers: Option<Vec<DnsAnswer>>,
4832 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
4833 #[serde(rename = "api")]
4834 #[serde(skip_serializing_if = "Option::is_none")]
4835 pub api: Option<Box<Api>>,
4836 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
4837 #[serde(rename = "app_name")]
4838 #[serde(skip_serializing_if = "Option::is_none")]
4839 pub app_name: Option<String>,
4840 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
4841 #[serde(rename = "attacks")]
4842 #[serde(skip_serializing_if = "Option::is_none")]
4843 pub attacks: Option<Vec<Attack>>,
4844 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
4845 #[serde(rename = "authorizations")]
4846 #[serde(skip_serializing_if = "Option::is_none")]
4847 pub authorizations: Option<Vec<Authorization>>,
4848 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
4849 #[serde(rename = "category_name")]
4850 #[serde(skip_serializing_if = "Option::is_none")]
4851 pub category_name: Option<String>,
4852 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
4853 #[serde(rename = "category_uid")]
4854 #[serde(skip_serializing_if = "Option::is_none")]
4855 pub category_uid: Option<i64>,
4856 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>DNS Activity</code>.\n\noptional"]
4857 #[serde(rename = "class_name")]
4858 #[serde(skip_serializing_if = "Option::is_none")]
4859 pub class_name: Option<String>,
4860 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
4861 #[serde(rename = "class_uid")]
4862 #[serde(skip_serializing_if = "Option::is_none")]
4863 pub class_uid: Option<i64>,
4864 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
4865 #[serde(rename = "cloud")]
4866 #[serde(skip_serializing_if = "Option::is_none")]
4867 pub cloud: Option<Box<Cloud>>,
4868 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4869 #[serde(rename = "confidence")]
4870 #[serde(skip_serializing_if = "Option::is_none")]
4871 pub confidence: Option<String>,
4872 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
4873 #[serde(rename = "confidence_id")]
4874 #[serde(skip_serializing_if = "Option::is_none")]
4875 pub confidence_id: Option<i64>,
4876 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
4877 #[serde(rename = "confidence_score")]
4878 #[serde(skip_serializing_if = "Option::is_none")]
4879 pub confidence_score: Option<i64>,
4880 #[doc = "Connection Info\n\nThe network connection information.\n\noptional"]
4881 #[serde(rename = "connection_info")]
4882 #[serde(skip_serializing_if = "Option::is_none")]
4883 pub connection_info: Option<Box<NetworkConnectionInfo>>,
4884 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
4885 #[serde(rename = "count")]
4886 #[serde(skip_serializing_if = "Option::is_none")]
4887 pub count: Option<i64>,
4888 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
4889 #[serde(rename = "cumulative_traffic")]
4890 #[serde(skip_serializing_if = "Option::is_none")]
4891 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
4892 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
4893 #[serde(rename = "device")]
4894 #[serde(skip_serializing_if = "Option::is_none")]
4895 pub device: Option<Box<Device>>,
4896 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
4897 #[serde(rename = "disposition")]
4898 #[serde(skip_serializing_if = "Option::is_none")]
4899 pub disposition: Option<String>,
4900 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
4901 #[serde(rename = "disposition_id")]
4902 #[serde(skip_serializing_if = "Option::is_none")]
4903 pub disposition_id: Option<i64>,
4904 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
4905 #[serde(rename = "dst_endpoint")]
4906 #[serde(skip_serializing_if = "Option::is_none")]
4907 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
4908 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
4909 #[serde(rename = "duration")]
4910 #[serde(skip_serializing_if = "Option::is_none")]
4911 pub duration: Option<i64>,
4912 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4913 #[serde(rename = "end_time")]
4914 #[serde(skip_serializing_if = "Option::is_none")]
4915 pub end_time: Option<i64>,
4916 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
4917 #[serde(rename = "end_time_dt")]
4918 #[serde(skip_serializing_if = "Option::is_none")]
4919 pub end_time_dt: Option<String>,
4920 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
4921 #[serde(rename = "enrichments")]
4922 #[serde(skip_serializing_if = "Option::is_none")]
4923 pub enrichments: Option<Vec<Enrichment>>,
4924 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
4925 #[serde(rename = "firewall_rule")]
4926 #[serde(skip_serializing_if = "Option::is_none")]
4927 pub firewall_rule: Option<Box<FirewallRule>>,
4928 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
4929 #[serde(rename = "is_alert")]
4930 #[serde(skip_serializing_if = "Option::is_none")]
4931 pub is_alert: Option<bool>,
4932 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
4933 #[serde(rename = "ja4_fingerprint_list")]
4934 #[serde(skip_serializing_if = "Option::is_none")]
4935 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
4936 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
4937 #[serde(rename = "load_balancer")]
4938 #[serde(skip_serializing_if = "Option::is_none")]
4939 pub load_balancer: Option<Box<LoadBalancer>>,
4940 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
4941 #[serde(rename = "malware")]
4942 #[serde(skip_serializing_if = "Option::is_none")]
4943 pub malware: Option<Vec<Malware>>,
4944 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
4945 #[serde(rename = "malware_scan_info")]
4946 #[serde(skip_serializing_if = "Option::is_none")]
4947 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
4948 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
4949 #[serde(rename = "message")]
4950 #[serde(skip_serializing_if = "Option::is_none")]
4951 pub message: Option<String>,
4952 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
4953 #[serde(rename = "metadata")]
4954 #[serde(skip_serializing_if = "Option::is_none")]
4955 pub metadata: Option<Box<Metadata>>,
4956 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
4957 #[serde(rename = "observables")]
4958 #[serde(skip_serializing_if = "Option::is_none")]
4959 pub observables: Option<Vec<Observable>>,
4960 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
4961 #[serde(rename = "observation_point")]
4962 #[serde(skip_serializing_if = "Option::is_none")]
4963 pub observation_point: Option<String>,
4964 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
4965 #[serde(rename = "observation_point_id")]
4966 #[serde(skip_serializing_if = "Option::is_none")]
4967 pub observation_point_id: Option<i64>,
4968 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
4969 #[serde(rename = "osint")]
4970 #[serde(skip_serializing_if = "Option::is_none")]
4971 pub osint: Option<Vec<Osint>>,
4972 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
4973 #[serde(rename = "policy")]
4974 #[serde(skip_serializing_if = "Option::is_none")]
4975 pub policy: Option<Box<Policy>>,
4976 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
4977 #[serde(rename = "proxy")]
4978 #[serde(skip_serializing_if = "Option::is_none")]
4979 pub proxy: Option<Box<NetworkProxy>>,
4980 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
4981 #[serde(rename = "proxy_connection_info")]
4982 #[serde(skip_serializing_if = "Option::is_none")]
4983 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
4984 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
4985 #[serde(rename = "proxy_endpoint")]
4986 #[serde(skip_serializing_if = "Option::is_none")]
4987 pub proxy_endpoint: Option<Box<NetworkProxy>>,
4988 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
4989 #[serde(rename = "proxy_http_request")]
4990 #[serde(skip_serializing_if = "Option::is_none")]
4991 pub proxy_http_request: Option<Box<HttpRequest>>,
4992 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
4993 #[serde(rename = "proxy_http_response")]
4994 #[serde(skip_serializing_if = "Option::is_none")]
4995 pub proxy_http_response: Option<Box<HttpResponse>>,
4996 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
4997 #[serde(rename = "proxy_tls")]
4998 #[serde(skip_serializing_if = "Option::is_none")]
4999 pub proxy_tls: Option<Box<Tls>>,
5000 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
5001 #[serde(rename = "proxy_traffic")]
5002 #[serde(skip_serializing_if = "Option::is_none")]
5003 pub proxy_traffic: Option<Box<NetworkTraffic>>,
5004 #[doc = "DNS Query\n\nThe Domain Name System (DNS) query.\n\nrecommended"]
5005 #[serde(rename = "query")]
5006 #[serde(skip_serializing_if = "Option::is_none")]
5007 pub query: Option<Box<DnsQuery>>,
5008 #[doc = "Query Time\n\nThe Domain Name System (DNS) query time.\n\nrecommended"]
5009 #[serde(rename = "query_time")]
5010 #[serde(skip_serializing_if = "Option::is_none")]
5011 pub query_time: Option<i64>,
5012 #[doc = "Query Time\n\nThe Domain Name System (DNS) query time.\n\noptional"]
5013 #[serde(rename = "query_time_dt")]
5014 #[serde(skip_serializing_if = "Option::is_none")]
5015 pub query_time_dt: Option<String>,
5016 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
5017 #[serde(rename = "raw_data")]
5018 #[serde(skip_serializing_if = "Option::is_none")]
5019 pub raw_data: Option<String>,
5020 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
5021 #[serde(rename = "raw_data_hash")]
5022 #[serde(skip_serializing_if = "Option::is_none")]
5023 pub raw_data_hash: Option<Box<Fingerprint>>,
5024 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
5025 #[serde(rename = "raw_data_size")]
5026 #[serde(skip_serializing_if = "Option::is_none")]
5027 pub raw_data_size: Option<i64>,
5028 #[doc = "Response Code\n\nThe DNS server response code, normalized to the caption of the rcode_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
5029 #[serde(rename = "rcode")]
5030 #[serde(skip_serializing_if = "Option::is_none")]
5031 pub rcode: Option<String>,
5032 #[doc = "Response Code ID\n\nThe normalized identifier of the DNS server response code. See <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc6895'>RFC-6895</a>.\n\nrecommended"]
5033 #[serde(rename = "rcode_id")]
5034 #[serde(skip_serializing_if = "Option::is_none")]
5035 pub rcode_id: Option<i64>,
5036 #[doc = "Response Time\n\nThe Domain Name System (DNS) response time.\n\nrecommended"]
5037 #[serde(rename = "response_time")]
5038 #[serde(skip_serializing_if = "Option::is_none")]
5039 pub response_time: Option<i64>,
5040 #[doc = "Response Time\n\nThe Domain Name System (DNS) response time.\n\noptional"]
5041 #[serde(rename = "response_time_dt")]
5042 #[serde(skip_serializing_if = "Option::is_none")]
5043 pub response_time_dt: Option<String>,
5044 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
5045 #[serde(rename = "risk_details")]
5046 #[serde(skip_serializing_if = "Option::is_none")]
5047 pub risk_details: Option<String>,
5048 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
5049 #[serde(rename = "risk_level")]
5050 #[serde(skip_serializing_if = "Option::is_none")]
5051 pub risk_level: Option<String>,
5052 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
5053 #[serde(rename = "risk_level_id")]
5054 #[serde(skip_serializing_if = "Option::is_none")]
5055 pub risk_level_id: Option<i64>,
5056 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
5057 #[serde(rename = "risk_score")]
5058 #[serde(skip_serializing_if = "Option::is_none")]
5059 pub risk_score: Option<i64>,
5060 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
5061 #[serde(rename = "severity")]
5062 #[serde(skip_serializing_if = "Option::is_none")]
5063 pub severity: Option<String>,
5064 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
5065 #[serde(rename = "severity_id")]
5066 #[serde(skip_serializing_if = "Option::is_none")]
5067 pub severity_id: Option<i64>,
5068 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
5069 #[serde(rename = "src_endpoint")]
5070 #[serde(skip_serializing_if = "Option::is_none")]
5071 pub src_endpoint: Option<Box<NetworkEndpoint>>,
5072 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5073 #[serde(rename = "start_time")]
5074 #[serde(skip_serializing_if = "Option::is_none")]
5075 pub start_time: Option<i64>,
5076 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5077 #[serde(rename = "start_time_dt")]
5078 #[serde(skip_serializing_if = "Option::is_none")]
5079 pub start_time_dt: Option<String>,
5080 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
5081 #[serde(rename = "status")]
5082 #[serde(skip_serializing_if = "Option::is_none")]
5083 pub status: Option<String>,
5084 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
5085 #[serde(rename = "status_code")]
5086 #[serde(skip_serializing_if = "Option::is_none")]
5087 pub status_code: Option<String>,
5088 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
5089 #[serde(rename = "status_detail")]
5090 #[serde(skip_serializing_if = "Option::is_none")]
5091 pub status_detail: Option<String>,
5092 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
5093 #[serde(rename = "status_id")]
5094 #[serde(skip_serializing_if = "Option::is_none")]
5095 pub status_id: Option<i64>,
5096 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
5097 #[serde(rename = "time")]
5098 #[serde(skip_serializing_if = "Option::is_none")]
5099 pub time: Option<i64>,
5100 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
5101 #[serde(rename = "time_dt")]
5102 #[serde(skip_serializing_if = "Option::is_none")]
5103 pub time_dt: Option<String>,
5104 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
5105 #[serde(rename = "timezone_offset")]
5106 #[serde(skip_serializing_if = "Option::is_none")]
5107 pub timezone_offset: Option<i64>,
5108 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
5109 #[serde(rename = "tls")]
5110 #[serde(skip_serializing_if = "Option::is_none")]
5111 pub tls: Option<Box<Tls>>,
5112 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\noptional"]
5113 #[serde(rename = "traffic")]
5114 #[serde(skip_serializing_if = "Option::is_none")]
5115 pub traffic: Option<Box<NetworkTraffic>>,
5116 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
5117 #[serde(rename = "type_name")]
5118 #[serde(skip_serializing_if = "Option::is_none")]
5119 pub type_name: Option<String>,
5120 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
5121 #[serde(rename = "type_uid")]
5122 #[serde(skip_serializing_if = "Option::is_none")]
5123 pub type_uid: Option<i64>,
5124 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
5125 #[serde(rename = "unmapped")]
5126 #[serde(skip_serializing_if = "Option::is_none")]
5127 pub unmapped: Option<serde_json::Value>,
5128}
5129#[doc = "Drone Flights Activity\n\nDrone Flights Activity events report the activity of Unmanned Aerial Systems (UAS), their Operators, and mission-planning and authorization metadata as reported by the UAS platforms themselves, by Counter-UAS (CUAS) systems, or other remote monitoring or sensing infrastructure. Based on the Remote ID defined in Standard Specification for Remote ID and Tracking (ASTM Designation: F3411-22a) <a target='_blank' href='https://cdn.standards.iteh.ai/samples/112830/71297057ac42432880a203654f213709/ASTM-F3411-22a.pdf'>ASTM F3411-22a</a>\n\n[UID:8001] Category: unmanned_systems | Name: drone_flights_activity\n\n**Constraints:**\n* at_least_one: `[src_endpoint`,`unmanned_aerial_system`,`unmanned_system_operator`,`unmanned_system_operating_area]`\n"]
5130#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5131#[serde(default)]
5132#[non_exhaustive]
5133pub struct DroneFlightsActivity {
5134 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
5135 #[serde(rename = "action")]
5136 #[serde(skip_serializing_if = "Option::is_none")]
5137 pub action: Option<String>,
5138 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
5139 #[serde(rename = "action_id")]
5140 #[serde(skip_serializing_if = "Option::is_none")]
5141 pub action_id: Option<i64>,
5142 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
5143 #[serde(rename = "activity_id")]
5144 #[serde(skip_serializing_if = "Option::is_none")]
5145 pub activity_id: Option<i64>,
5146 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
5147 #[serde(rename = "activity_name")]
5148 #[serde(skip_serializing_if = "Option::is_none")]
5149 pub activity_name: Option<String>,
5150 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
5151 #[serde(rename = "actor")]
5152 #[serde(skip_serializing_if = "Option::is_none")]
5153 pub actor: Option<Box<Actor>>,
5154 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
5155 #[serde(rename = "api")]
5156 #[serde(skip_serializing_if = "Option::is_none")]
5157 pub api: Option<Box<Api>>,
5158 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
5159 #[serde(rename = "attacks")]
5160 #[serde(skip_serializing_if = "Option::is_none")]
5161 pub attacks: Option<Vec<Attack>>,
5162 #[doc = "Authentication Type\n\nThe authentication type as defined by the caption of <code>auth_protocol_id</code>. In the case of 'Other', it is defined by the event source.\n\noptional"]
5163 #[serde(rename = "auth_protocol")]
5164 #[serde(skip_serializing_if = "Option::is_none")]
5165 pub auth_protocol: Option<String>,
5166 #[doc = "Authentication Type ID\n\nThe normalized identifier of the authentication type used to authorize a flight plan or mission.\n\noptional"]
5167 #[serde(rename = "auth_protocol_id")]
5168 #[serde(skip_serializing_if = "Option::is_none")]
5169 pub auth_protocol_id: Option<i64>,
5170 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
5171 #[serde(rename = "authorizations")]
5172 #[serde(skip_serializing_if = "Option::is_none")]
5173 pub authorizations: Option<Vec<Authorization>>,
5174 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Unmanned Systems</code>.\n\noptional"]
5175 #[serde(rename = "category_name")]
5176 #[serde(skip_serializing_if = "Option::is_none")]
5177 pub category_name: Option<String>,
5178 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
5179 #[serde(rename = "category_uid")]
5180 #[serde(skip_serializing_if = "Option::is_none")]
5181 pub category_uid: Option<i64>,
5182 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Drone Flights Activity</code>.\n\noptional"]
5183 #[serde(rename = "class_name")]
5184 #[serde(skip_serializing_if = "Option::is_none")]
5185 pub class_name: Option<String>,
5186 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
5187 #[serde(rename = "class_uid")]
5188 #[serde(skip_serializing_if = "Option::is_none")]
5189 pub class_uid: Option<i64>,
5190 #[doc = "Classification Type\n\nUA Classification - Allows a region to classify UAS in a regional specific manner. The format may differ from region to region.\n\noptional"]
5191 #[serde(rename = "classification")]
5192 #[serde(skip_serializing_if = "Option::is_none")]
5193 pub classification: Option<String>,
5194 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
5195 #[serde(rename = "cloud")]
5196 #[serde(skip_serializing_if = "Option::is_none")]
5197 pub cloud: Option<Box<Cloud>>,
5198 #[doc = "Operation Description\n\nThis optional, free-text field enables the operator to describe the purpose of a flight, if so desired.\n\noptional"]
5199 #[serde(rename = "comment")]
5200 #[serde(skip_serializing_if = "Option::is_none")]
5201 pub comment: Option<String>,
5202 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5203 #[serde(rename = "confidence")]
5204 #[serde(skip_serializing_if = "Option::is_none")]
5205 pub confidence: Option<String>,
5206 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
5207 #[serde(rename = "confidence_id")]
5208 #[serde(skip_serializing_if = "Option::is_none")]
5209 pub confidence_id: Option<i64>,
5210 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
5211 #[serde(rename = "confidence_score")]
5212 #[serde(skip_serializing_if = "Option::is_none")]
5213 pub confidence_score: Option<i64>,
5214 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
5215 #[serde(rename = "connection_info")]
5216 #[serde(skip_serializing_if = "Option::is_none")]
5217 pub connection_info: Option<Box<NetworkConnectionInfo>>,
5218 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
5219 #[serde(rename = "count")]
5220 #[serde(skip_serializing_if = "Option::is_none")]
5221 pub count: Option<i64>,
5222 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
5223 #[serde(rename = "device")]
5224 #[serde(skip_serializing_if = "Option::is_none")]
5225 pub device: Option<Box<Device>>,
5226 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5227 #[serde(rename = "disposition")]
5228 #[serde(skip_serializing_if = "Option::is_none")]
5229 pub disposition: Option<String>,
5230 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
5231 #[serde(rename = "disposition_id")]
5232 #[serde(skip_serializing_if = "Option::is_none")]
5233 pub disposition_id: Option<i64>,
5234 #[doc = "Destination Endpoint\n\nThe destination network endpoint of the Unmanned Aerial System (UAS), Counter Unmanned Aerial System (CUAS) platform, or other unmanned systems monitoring and/or sensing infrastructure.\n\nrequired"]
5235 #[serde(rename = "dst_endpoint")]
5236 #[serde(skip_serializing_if = "Option::is_none")]
5237 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
5238 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
5239 #[serde(rename = "duration")]
5240 #[serde(skip_serializing_if = "Option::is_none")]
5241 pub duration: Option<i64>,
5242 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5243 #[serde(rename = "end_time")]
5244 #[serde(skip_serializing_if = "Option::is_none")]
5245 pub end_time: Option<i64>,
5246 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5247 #[serde(rename = "end_time_dt")]
5248 #[serde(skip_serializing_if = "Option::is_none")]
5249 pub end_time_dt: Option<String>,
5250 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
5251 #[serde(rename = "enrichments")]
5252 #[serde(skip_serializing_if = "Option::is_none")]
5253 pub enrichments: Option<Vec<Enrichment>>,
5254 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
5255 #[serde(rename = "firewall_rule")]
5256 #[serde(skip_serializing_if = "Option::is_none")]
5257 pub firewall_rule: Option<Box<FirewallRule>>,
5258 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
5259 #[serde(rename = "is_alert")]
5260 #[serde(skip_serializing_if = "Option::is_none")]
5261 pub is_alert: Option<bool>,
5262 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
5263 #[serde(rename = "malware")]
5264 #[serde(skip_serializing_if = "Option::is_none")]
5265 pub malware: Option<Vec<Malware>>,
5266 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
5267 #[serde(rename = "malware_scan_info")]
5268 #[serde(skip_serializing_if = "Option::is_none")]
5269 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
5270 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
5271 #[serde(rename = "message")]
5272 #[serde(skip_serializing_if = "Option::is_none")]
5273 pub message: Option<String>,
5274 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
5275 #[serde(rename = "metadata")]
5276 #[serde(skip_serializing_if = "Option::is_none")]
5277 pub metadata: Option<Box<Metadata>>,
5278 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
5279 #[serde(rename = "observables")]
5280 #[serde(skip_serializing_if = "Option::is_none")]
5281 pub observables: Option<Vec<Observable>>,
5282 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
5283 #[serde(rename = "osint")]
5284 #[serde(skip_serializing_if = "Option::is_none")]
5285 pub osint: Option<Vec<Osint>>,
5286 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
5287 #[serde(rename = "policy")]
5288 #[serde(skip_serializing_if = "Option::is_none")]
5289 pub policy: Option<Box<Policy>>,
5290 #[doc = "Remote ID Protocol\n\nThe networking protocol associated with the Remote ID device or beacon. E.g. <code>BLE</code>, <code>LTE</code>, <code>802.11</code>.\n\noptional"]
5291 #[serde(rename = "protocol_name")]
5292 #[serde(skip_serializing_if = "Option::is_none")]
5293 pub protocol_name: Option<String>,
5294 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\nrecommended"]
5295 #[serde(rename = "proxy_endpoint")]
5296 #[serde(skip_serializing_if = "Option::is_none")]
5297 pub proxy_endpoint: Option<Box<NetworkProxy>>,
5298 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
5299 #[serde(rename = "raw_data")]
5300 #[serde(skip_serializing_if = "Option::is_none")]
5301 pub raw_data: Option<String>,
5302 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
5303 #[serde(rename = "raw_data_hash")]
5304 #[serde(skip_serializing_if = "Option::is_none")]
5305 pub raw_data_hash: Option<Box<Fingerprint>>,
5306 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
5307 #[serde(rename = "raw_data_size")]
5308 #[serde(skip_serializing_if = "Option::is_none")]
5309 pub raw_data_size: Option<i64>,
5310 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
5311 #[serde(rename = "risk_details")]
5312 #[serde(skip_serializing_if = "Option::is_none")]
5313 pub risk_details: Option<String>,
5314 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
5315 #[serde(rename = "risk_level")]
5316 #[serde(skip_serializing_if = "Option::is_none")]
5317 pub risk_level: Option<String>,
5318 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
5319 #[serde(rename = "risk_level_id")]
5320 #[serde(skip_serializing_if = "Option::is_none")]
5321 pub risk_level_id: Option<i64>,
5322 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
5323 #[serde(rename = "risk_score")]
5324 #[serde(skip_serializing_if = "Option::is_none")]
5325 pub risk_score: Option<i64>,
5326 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
5327 #[serde(rename = "severity")]
5328 #[serde(skip_serializing_if = "Option::is_none")]
5329 pub severity: Option<String>,
5330 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
5331 #[serde(rename = "severity_id")]
5332 #[serde(skip_serializing_if = "Option::is_none")]
5333 pub severity_id: Option<i64>,
5334 #[doc = "Source Endpoint\n\nThe source network endpoint of the Unmanned Aerial System (UAS), Counter Unmanned Aerial System (CUAS) platform, or other unmanned systems monitoring and/or sensing infrastructure.\n\noptional"]
5335 #[serde(rename = "src_endpoint")]
5336 #[serde(skip_serializing_if = "Option::is_none")]
5337 pub src_endpoint: Option<Box<NetworkEndpoint>>,
5338 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5339 #[serde(rename = "start_time")]
5340 #[serde(skip_serializing_if = "Option::is_none")]
5341 pub start_time: Option<i64>,
5342 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5343 #[serde(rename = "start_time_dt")]
5344 #[serde(skip_serializing_if = "Option::is_none")]
5345 pub start_time_dt: Option<String>,
5346 #[doc = "Operational Status\n\nThe normalized Operational status for the Unmanned Aerial System (UAS) normalized to the caption of the <code>status_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
5347 #[serde(rename = "status")]
5348 #[serde(skip_serializing_if = "Option::is_none")]
5349 pub status: Option<String>,
5350 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
5351 #[serde(rename = "status_code")]
5352 #[serde(skip_serializing_if = "Option::is_none")]
5353 pub status_code: Option<String>,
5354 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
5355 #[serde(rename = "status_detail")]
5356 #[serde(skip_serializing_if = "Option::is_none")]
5357 pub status_detail: Option<String>,
5358 #[doc = "Operational Status ID\n\nThe normalized Operational status identifier for the Unmanned Aerial System (UAS).\n\nrecommended"]
5359 #[serde(rename = "status_id")]
5360 #[serde(skip_serializing_if = "Option::is_none")]
5361 pub status_id: Option<i64>,
5362 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
5363 #[serde(rename = "time")]
5364 #[serde(skip_serializing_if = "Option::is_none")]
5365 pub time: Option<i64>,
5366 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
5367 #[serde(rename = "time_dt")]
5368 #[serde(skip_serializing_if = "Option::is_none")]
5369 pub time_dt: Option<String>,
5370 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
5371 #[serde(rename = "timezone_offset")]
5372 #[serde(skip_serializing_if = "Option::is_none")]
5373 pub timezone_offset: Option<i64>,
5374 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
5375 #[serde(rename = "tls")]
5376 #[serde(skip_serializing_if = "Option::is_none")]
5377 pub tls: Option<Box<Tls>>,
5378 #[doc = "Traffic\n\nTraffic refers to the amount of data transmitted from a Unmanned Aerial System (UAS) or Counter Unmanned Aerial System (UAS) (CUAS) system at a given point of time. Ex: <code>bytes_in</code> and <code>bytes_out</code>.\n\noptional"]
5379 #[serde(rename = "traffic")]
5380 #[serde(skip_serializing_if = "Option::is_none")]
5381 pub traffic: Option<Box<NetworkTraffic>>,
5382 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
5383 #[serde(rename = "type_name")]
5384 #[serde(skip_serializing_if = "Option::is_none")]
5385 pub type_name: Option<String>,
5386 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
5387 #[serde(rename = "type_uid")]
5388 #[serde(skip_serializing_if = "Option::is_none")]
5389 pub type_uid: Option<i64>,
5390 #[doc = "Unmanned Aerial System\n\nThe Unmanned Aerial System object describes the characteristics, Position Location Information (PLI), and other metadata of Unmanned Aerial Systems (UAS) and other unmanned and drone systems used in Remote ID. Remote ID is defined in the Standard Specification for Remote ID and Tracking (ASTM Designation: F3411-22a) <a target='_blank' href='https://cdn.standards.iteh.ai/samples/112830/71297057ac42432880a203654f213709/ASTM-F3411-22a.pdf'>ASTM F3411-22a</a>.\n\nrequired"]
5391 #[serde(rename = "unmanned_aerial_system")]
5392 #[serde(skip_serializing_if = "Option::is_none")]
5393 pub unmanned_aerial_system: Option<Box<UnmannedAerialSystem>>,
5394 #[doc = "UAS Operating Area\n\nThe UAS Operating Area object describes details about a precise area of operations for a UAS flight or mission.\n\nrecommended"]
5395 #[serde(rename = "unmanned_system_operating_area")]
5396 #[serde(skip_serializing_if = "Option::is_none")]
5397 pub unmanned_system_operating_area: Option<Box<UnmannedSystemOperatingArea>>,
5398 #[doc = "Unmanned Systems Operator\n\nThe human or machine operator of an Unmanned System.\n\nrequired"]
5399 #[serde(rename = "unmanned_system_operator")]
5400 #[serde(skip_serializing_if = "Option::is_none")]
5401 pub unmanned_system_operator: Option<Box<User>>,
5402 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
5403 #[serde(rename = "unmapped")]
5404 #[serde(skip_serializing_if = "Option::is_none")]
5405 pub unmapped: Option<serde_json::Value>,
5406}
5407#[doc = "Email Activity\n\nEmail Activity events report SMTP protocol and email activities including those with embedded URLs and files. See the <code>Email</code> object for details.\n\n[UID:4009] Category: network | Name: email_activity"]
5408#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5409#[serde(default)]
5410#[non_exhaustive]
5411pub struct EmailActivity {
5412 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
5413 #[serde(rename = "action")]
5414 #[serde(skip_serializing_if = "Option::is_none")]
5415 pub action: Option<String>,
5416 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
5417 #[serde(rename = "action_id")]
5418 #[serde(skip_serializing_if = "Option::is_none")]
5419 pub action_id: Option<i64>,
5420 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
5421 #[serde(rename = "activity_id")]
5422 #[serde(skip_serializing_if = "Option::is_none")]
5423 pub activity_id: Option<i64>,
5424 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
5425 #[serde(rename = "activity_name")]
5426 #[serde(skip_serializing_if = "Option::is_none")]
5427 pub activity_name: Option<String>,
5428 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
5429 #[serde(rename = "actor")]
5430 #[serde(skip_serializing_if = "Option::is_none")]
5431 pub actor: Option<Box<Actor>>,
5432 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
5433 #[serde(rename = "api")]
5434 #[serde(skip_serializing_if = "Option::is_none")]
5435 pub api: Option<Box<Api>>,
5436 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
5437 #[serde(rename = "attacks")]
5438 #[serde(skip_serializing_if = "Option::is_none")]
5439 pub attacks: Option<Vec<Attack>>,
5440 #[doc = "Attempt\n\nThe attempt number for attempting to deliver the email.\n\noptional"]
5441 #[serde(rename = "attempt")]
5442 #[serde(skip_serializing_if = "Option::is_none")]
5443 pub attempt: Option<i64>,
5444 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
5445 #[serde(rename = "authorizations")]
5446 #[serde(skip_serializing_if = "Option::is_none")]
5447 pub authorizations: Option<Vec<Authorization>>,
5448 #[doc = "Protocol Banner\n\nThe initial connection response that a messaging server receives after it connects to an email server.\n\noptional"]
5449 #[serde(rename = "banner")]
5450 #[serde(skip_serializing_if = "Option::is_none")]
5451 pub banner: Option<String>,
5452 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
5453 #[serde(rename = "category_name")]
5454 #[serde(skip_serializing_if = "Option::is_none")]
5455 pub category_name: Option<String>,
5456 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
5457 #[serde(rename = "category_uid")]
5458 #[serde(skip_serializing_if = "Option::is_none")]
5459 pub category_uid: Option<i64>,
5460 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Email Activity</code>.\n\noptional"]
5461 #[serde(rename = "class_name")]
5462 #[serde(skip_serializing_if = "Option::is_none")]
5463 pub class_name: Option<String>,
5464 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
5465 #[serde(rename = "class_uid")]
5466 #[serde(skip_serializing_if = "Option::is_none")]
5467 pub class_uid: Option<i64>,
5468 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
5469 #[serde(rename = "cloud")]
5470 #[serde(skip_serializing_if = "Option::is_none")]
5471 pub cloud: Option<Box<Cloud>>,
5472 #[doc = "Command\n\nThe command issued by the initiator (client), such as SMTP HELO or EHLO.\n\nrecommended"]
5473 #[serde(rename = "command")]
5474 #[serde(skip_serializing_if = "Option::is_none")]
5475 pub command: Option<String>,
5476 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5477 #[serde(rename = "confidence")]
5478 #[serde(skip_serializing_if = "Option::is_none")]
5479 pub confidence: Option<String>,
5480 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
5481 #[serde(rename = "confidence_id")]
5482 #[serde(skip_serializing_if = "Option::is_none")]
5483 pub confidence_id: Option<i64>,
5484 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
5485 #[serde(rename = "confidence_score")]
5486 #[serde(skip_serializing_if = "Option::is_none")]
5487 pub confidence_score: Option<i64>,
5488 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
5489 #[serde(rename = "count")]
5490 #[serde(skip_serializing_if = "Option::is_none")]
5491 pub count: Option<i64>,
5492 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
5493 #[serde(rename = "device")]
5494 #[serde(skip_serializing_if = "Option::is_none")]
5495 pub device: Option<Box<Device>>,
5496 #[doc = "Direction\n\nThe direction of the email, as defined by the <code>direction_id</code> value.\n\noptional"]
5497 #[serde(rename = "direction")]
5498 #[serde(skip_serializing_if = "Option::is_none")]
5499 pub direction: Option<String>,
5500 #[doc = "Direction ID\n\n<p>The direction of the email relative to the scanning host or organization.</p>Email scanned at an internet gateway might be characterized as inbound to the organization from the Internet, outbound from the organization to the Internet, or internal within the organization. Email scanned at a workstation might be characterized as inbound to, or outbound from the workstation.\n\nrequired"]
5501 #[serde(rename = "direction_id")]
5502 #[serde(skip_serializing_if = "Option::is_none")]
5503 pub direction_id: Option<i64>,
5504 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5505 #[serde(rename = "disposition")]
5506 #[serde(skip_serializing_if = "Option::is_none")]
5507 pub disposition: Option<String>,
5508 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
5509 #[serde(rename = "disposition_id")]
5510 #[serde(skip_serializing_if = "Option::is_none")]
5511 pub disposition_id: Option<i64>,
5512 #[doc = "Destination Endpoint\n\nThe responder (server) receiving the email.\n\nrecommended"]
5513 #[serde(rename = "dst_endpoint")]
5514 #[serde(skip_serializing_if = "Option::is_none")]
5515 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
5516 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
5517 #[serde(rename = "duration")]
5518 #[serde(skip_serializing_if = "Option::is_none")]
5519 pub duration: Option<i64>,
5520 #[doc = "Email\n\nThe email object.\n\nrequired"]
5521 #[serde(rename = "email")]
5522 #[serde(skip_serializing_if = "Option::is_none")]
5523 pub email: Option<Box<Email>>,
5524 #[doc = "Email Authentication\n\nThe SPF, DKIM and DMARC attributes of an email.\n\nrecommended"]
5525 #[serde(rename = "email_auth")]
5526 #[serde(skip_serializing_if = "Option::is_none")]
5527 pub email_auth: Option<Box<EmailAuth>>,
5528 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5529 #[serde(rename = "end_time")]
5530 #[serde(skip_serializing_if = "Option::is_none")]
5531 pub end_time: Option<i64>,
5532 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5533 #[serde(rename = "end_time_dt")]
5534 #[serde(skip_serializing_if = "Option::is_none")]
5535 pub end_time_dt: Option<String>,
5536 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
5537 #[serde(rename = "enrichments")]
5538 #[serde(skip_serializing_if = "Option::is_none")]
5539 pub enrichments: Option<Vec<Enrichment>>,
5540 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
5541 #[serde(rename = "firewall_rule")]
5542 #[serde(skip_serializing_if = "Option::is_none")]
5543 pub firewall_rule: Option<Box<FirewallRule>>,
5544 #[doc = "From\n\nThe sender address from the transmission envelope. This reflects the actual sending party and may differ from the 'From' header in the message.\n\nrecommended"]
5545 #[serde(rename = "from")]
5546 #[serde(skip_serializing_if = "Option::is_none")]
5547 pub from: Option<String>,
5548 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
5549 #[serde(rename = "is_alert")]
5550 #[serde(skip_serializing_if = "Option::is_none")]
5551 pub is_alert: Option<bool>,
5552 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
5553 #[serde(rename = "malware")]
5554 #[serde(skip_serializing_if = "Option::is_none")]
5555 pub malware: Option<Vec<Malware>>,
5556 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
5557 #[serde(rename = "malware_scan_info")]
5558 #[serde(skip_serializing_if = "Option::is_none")]
5559 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
5560 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
5561 #[serde(rename = "message")]
5562 #[serde(skip_serializing_if = "Option::is_none")]
5563 pub message: Option<String>,
5564 #[doc = "Message Trace UID\n\nThe identifier that tracks a message that travels through multiple points of a messaging service.\n\nrecommended"]
5565 #[serde(rename = "message_trace_uid")]
5566 #[serde(skip_serializing_if = "Option::is_none")]
5567 pub message_trace_uid: Option<String>,
5568 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
5569 #[serde(rename = "metadata")]
5570 #[serde(skip_serializing_if = "Option::is_none")]
5571 pub metadata: Option<Box<Metadata>>,
5572 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
5573 #[serde(rename = "observables")]
5574 #[serde(skip_serializing_if = "Option::is_none")]
5575 pub observables: Option<Vec<Observable>>,
5576 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
5577 #[serde(rename = "osint")]
5578 #[serde(skip_serializing_if = "Option::is_none")]
5579 pub osint: Option<Vec<Osint>>,
5580 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
5581 #[serde(rename = "policy")]
5582 #[serde(skip_serializing_if = "Option::is_none")]
5583 pub policy: Option<Box<Policy>>,
5584 #[doc = "Protocol Name\n\nThe Protocol Name specifies the email communication protocol, such as SMTP, IMAP, or POP3.\n\nrecommended"]
5585 #[serde(rename = "protocol_name")]
5586 #[serde(skip_serializing_if = "Option::is_none")]
5587 pub protocol_name: Option<String>,
5588 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
5589 #[serde(rename = "raw_data")]
5590 #[serde(skip_serializing_if = "Option::is_none")]
5591 pub raw_data: Option<String>,
5592 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
5593 #[serde(rename = "raw_data_hash")]
5594 #[serde(skip_serializing_if = "Option::is_none")]
5595 pub raw_data_hash: Option<Box<Fingerprint>>,
5596 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
5597 #[serde(rename = "raw_data_size")]
5598 #[serde(skip_serializing_if = "Option::is_none")]
5599 pub raw_data_size: Option<i64>,
5600 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
5601 #[serde(rename = "risk_details")]
5602 #[serde(skip_serializing_if = "Option::is_none")]
5603 pub risk_details: Option<String>,
5604 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
5605 #[serde(rename = "risk_level")]
5606 #[serde(skip_serializing_if = "Option::is_none")]
5607 pub risk_level: Option<String>,
5608 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
5609 #[serde(rename = "risk_level_id")]
5610 #[serde(skip_serializing_if = "Option::is_none")]
5611 pub risk_level_id: Option<i64>,
5612 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
5613 #[serde(rename = "risk_score")]
5614 #[serde(skip_serializing_if = "Option::is_none")]
5615 pub risk_score: Option<i64>,
5616 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
5617 #[serde(rename = "severity")]
5618 #[serde(skip_serializing_if = "Option::is_none")]
5619 pub severity: Option<String>,
5620 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
5621 #[serde(rename = "severity_id")]
5622 #[serde(skip_serializing_if = "Option::is_none")]
5623 pub severity_id: Option<i64>,
5624 #[doc = "SMTP Hello\n\nThe value of the SMTP HELO or EHLO command sent by the initiator (client).\n\nrecommended"]
5625 #[serde(rename = "smtp_hello")]
5626 #[serde(skip_serializing_if = "Option::is_none")]
5627 pub smtp_hello: Option<String>,
5628 #[doc = "Source Endpoint\n\nThe initiator (client) sending the email.\n\nrecommended"]
5629 #[serde(rename = "src_endpoint")]
5630 #[serde(skip_serializing_if = "Option::is_none")]
5631 pub src_endpoint: Option<Box<NetworkEndpoint>>,
5632 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5633 #[serde(rename = "start_time")]
5634 #[serde(skip_serializing_if = "Option::is_none")]
5635 pub start_time: Option<i64>,
5636 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5637 #[serde(rename = "start_time_dt")]
5638 #[serde(skip_serializing_if = "Option::is_none")]
5639 pub start_time_dt: Option<String>,
5640 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
5641 #[serde(rename = "status")]
5642 #[serde(skip_serializing_if = "Option::is_none")]
5643 pub status: Option<String>,
5644 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
5645 #[serde(rename = "status_code")]
5646 #[serde(skip_serializing_if = "Option::is_none")]
5647 pub status_code: Option<String>,
5648 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
5649 #[serde(rename = "status_detail")]
5650 #[serde(skip_serializing_if = "Option::is_none")]
5651 pub status_detail: Option<String>,
5652 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
5653 #[serde(rename = "status_id")]
5654 #[serde(skip_serializing_if = "Option::is_none")]
5655 pub status_id: Option<i64>,
5656 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
5657 #[serde(rename = "time")]
5658 #[serde(skip_serializing_if = "Option::is_none")]
5659 pub time: Option<i64>,
5660 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
5661 #[serde(rename = "time_dt")]
5662 #[serde(skip_serializing_if = "Option::is_none")]
5663 pub time_dt: Option<String>,
5664 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
5665 #[serde(rename = "timezone_offset")]
5666 #[serde(skip_serializing_if = "Option::is_none")]
5667 pub timezone_offset: Option<i64>,
5668 #[doc = "To\n\nThe recipient address from the transmission envelope. This may differ from the 'To' header and represents where the message was actually delivered.\n\nrecommended"]
5669 #[serde(rename = "to")]
5670 #[serde(skip_serializing_if = "Option::is_none")]
5671 pub to: Option<Vec<String>>,
5672 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
5673 #[serde(rename = "type_name")]
5674 #[serde(skip_serializing_if = "Option::is_none")]
5675 pub type_name: Option<String>,
5676 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
5677 #[serde(rename = "type_uid")]
5678 #[serde(skip_serializing_if = "Option::is_none")]
5679 pub type_uid: Option<i64>,
5680 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
5681 #[serde(rename = "unmapped")]
5682 #[serde(skip_serializing_if = "Option::is_none")]
5683 pub unmapped: Option<serde_json::Value>,
5684}
5685#[doc = "Email File Activity\n\nEmail File Activity events report files within emails.\n\n[UID:4011] Category: network | Name: email_file_activity"]
5686#[deprecated(
5687 note = "Use the <code>Email Activity</code> class with the <code>email.files[]</code> array instead. (Since 1.3.0)"
5688)]
5689#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5690#[serde(default)]
5691#[non_exhaustive]
5692pub struct EmailFileActivity {
5693 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
5694 #[serde(rename = "action")]
5695 #[serde(skip_serializing_if = "Option::is_none")]
5696 pub action: Option<String>,
5697 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
5698 #[serde(rename = "action_id")]
5699 #[serde(skip_serializing_if = "Option::is_none")]
5700 pub action_id: Option<i64>,
5701 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
5702 #[serde(rename = "activity_id")]
5703 #[serde(skip_serializing_if = "Option::is_none")]
5704 pub activity_id: Option<i64>,
5705 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
5706 #[serde(rename = "activity_name")]
5707 #[serde(skip_serializing_if = "Option::is_none")]
5708 pub activity_name: Option<String>,
5709 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
5710 #[serde(rename = "actor")]
5711 #[serde(skip_serializing_if = "Option::is_none")]
5712 pub actor: Option<Box<Actor>>,
5713 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
5714 #[serde(rename = "api")]
5715 #[serde(skip_serializing_if = "Option::is_none")]
5716 pub api: Option<Box<Api>>,
5717 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
5718 #[serde(rename = "attacks")]
5719 #[serde(skip_serializing_if = "Option::is_none")]
5720 pub attacks: Option<Vec<Attack>>,
5721 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
5722 #[serde(rename = "authorizations")]
5723 #[serde(skip_serializing_if = "Option::is_none")]
5724 pub authorizations: Option<Vec<Authorization>>,
5725 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
5726 #[serde(rename = "category_name")]
5727 #[serde(skip_serializing_if = "Option::is_none")]
5728 pub category_name: Option<String>,
5729 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
5730 #[serde(rename = "category_uid")]
5731 #[serde(skip_serializing_if = "Option::is_none")]
5732 pub category_uid: Option<i64>,
5733 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Email File Activity</code>.\n\noptional"]
5734 #[serde(rename = "class_name")]
5735 #[serde(skip_serializing_if = "Option::is_none")]
5736 pub class_name: Option<String>,
5737 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
5738 #[serde(rename = "class_uid")]
5739 #[serde(skip_serializing_if = "Option::is_none")]
5740 pub class_uid: Option<i64>,
5741 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
5742 #[serde(rename = "cloud")]
5743 #[serde(skip_serializing_if = "Option::is_none")]
5744 pub cloud: Option<Box<Cloud>>,
5745 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5746 #[serde(rename = "confidence")]
5747 #[serde(skip_serializing_if = "Option::is_none")]
5748 pub confidence: Option<String>,
5749 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
5750 #[serde(rename = "confidence_id")]
5751 #[serde(skip_serializing_if = "Option::is_none")]
5752 pub confidence_id: Option<i64>,
5753 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
5754 #[serde(rename = "confidence_score")]
5755 #[serde(skip_serializing_if = "Option::is_none")]
5756 pub confidence_score: Option<i64>,
5757 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
5758 #[serde(rename = "count")]
5759 #[serde(skip_serializing_if = "Option::is_none")]
5760 pub count: Option<i64>,
5761 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
5762 #[serde(rename = "device")]
5763 #[serde(skip_serializing_if = "Option::is_none")]
5764 pub device: Option<Box<Device>>,
5765 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5766 #[serde(rename = "disposition")]
5767 #[serde(skip_serializing_if = "Option::is_none")]
5768 pub disposition: Option<String>,
5769 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
5770 #[serde(rename = "disposition_id")]
5771 #[serde(skip_serializing_if = "Option::is_none")]
5772 pub disposition_id: Option<i64>,
5773 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
5774 #[serde(rename = "duration")]
5775 #[serde(skip_serializing_if = "Option::is_none")]
5776 pub duration: Option<i64>,
5777 #[doc = "Email UID\n\nThe unique identifier of the email, used to correlate related email alert and activity events.\n\nrequired"]
5778 #[serde(rename = "email_uid")]
5779 #[serde(skip_serializing_if = "Option::is_none")]
5780 pub email_uid: Option<String>,
5781 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5782 #[serde(rename = "end_time")]
5783 #[serde(skip_serializing_if = "Option::is_none")]
5784 pub end_time: Option<i64>,
5785 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
5786 #[serde(rename = "end_time_dt")]
5787 #[serde(skip_serializing_if = "Option::is_none")]
5788 pub end_time_dt: Option<String>,
5789 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
5790 #[serde(rename = "enrichments")]
5791 #[serde(skip_serializing_if = "Option::is_none")]
5792 pub enrichments: Option<Vec<Enrichment>>,
5793 #[doc = "File\n\nThe email file attachment.\n\nrequired"]
5794 #[serde(rename = "file")]
5795 #[serde(skip_serializing_if = "Option::is_none")]
5796 pub file: Option<Box<File>>,
5797 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
5798 #[serde(rename = "firewall_rule")]
5799 #[serde(skip_serializing_if = "Option::is_none")]
5800 pub firewall_rule: Option<Box<FirewallRule>>,
5801 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
5802 #[serde(rename = "is_alert")]
5803 #[serde(skip_serializing_if = "Option::is_none")]
5804 pub is_alert: Option<bool>,
5805 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
5806 #[serde(rename = "malware")]
5807 #[serde(skip_serializing_if = "Option::is_none")]
5808 pub malware: Option<Vec<Malware>>,
5809 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
5810 #[serde(rename = "malware_scan_info")]
5811 #[serde(skip_serializing_if = "Option::is_none")]
5812 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
5813 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
5814 #[serde(rename = "message")]
5815 #[serde(skip_serializing_if = "Option::is_none")]
5816 pub message: Option<String>,
5817 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
5818 #[serde(rename = "metadata")]
5819 #[serde(skip_serializing_if = "Option::is_none")]
5820 pub metadata: Option<Box<Metadata>>,
5821 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
5822 #[serde(rename = "observables")]
5823 #[serde(skip_serializing_if = "Option::is_none")]
5824 pub observables: Option<Vec<Observable>>,
5825 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
5826 #[serde(rename = "osint")]
5827 #[serde(skip_serializing_if = "Option::is_none")]
5828 pub osint: Option<Vec<Osint>>,
5829 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
5830 #[serde(rename = "policy")]
5831 #[serde(skip_serializing_if = "Option::is_none")]
5832 pub policy: Option<Box<Policy>>,
5833 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
5834 #[serde(rename = "raw_data")]
5835 #[serde(skip_serializing_if = "Option::is_none")]
5836 pub raw_data: Option<String>,
5837 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
5838 #[serde(rename = "raw_data_hash")]
5839 #[serde(skip_serializing_if = "Option::is_none")]
5840 pub raw_data_hash: Option<Box<Fingerprint>>,
5841 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
5842 #[serde(rename = "raw_data_size")]
5843 #[serde(skip_serializing_if = "Option::is_none")]
5844 pub raw_data_size: Option<i64>,
5845 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
5846 #[serde(rename = "risk_details")]
5847 #[serde(skip_serializing_if = "Option::is_none")]
5848 pub risk_details: Option<String>,
5849 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
5850 #[serde(rename = "risk_level")]
5851 #[serde(skip_serializing_if = "Option::is_none")]
5852 pub risk_level: Option<String>,
5853 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
5854 #[serde(rename = "risk_level_id")]
5855 #[serde(skip_serializing_if = "Option::is_none")]
5856 pub risk_level_id: Option<i64>,
5857 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
5858 #[serde(rename = "risk_score")]
5859 #[serde(skip_serializing_if = "Option::is_none")]
5860 pub risk_score: Option<i64>,
5861 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
5862 #[serde(rename = "severity")]
5863 #[serde(skip_serializing_if = "Option::is_none")]
5864 pub severity: Option<String>,
5865 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
5866 #[serde(rename = "severity_id")]
5867 #[serde(skip_serializing_if = "Option::is_none")]
5868 pub severity_id: Option<i64>,
5869 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5870 #[serde(rename = "start_time")]
5871 #[serde(skip_serializing_if = "Option::is_none")]
5872 pub start_time: Option<i64>,
5873 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
5874 #[serde(rename = "start_time_dt")]
5875 #[serde(skip_serializing_if = "Option::is_none")]
5876 pub start_time_dt: Option<String>,
5877 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
5878 #[serde(rename = "status")]
5879 #[serde(skip_serializing_if = "Option::is_none")]
5880 pub status: Option<String>,
5881 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
5882 #[serde(rename = "status_code")]
5883 #[serde(skip_serializing_if = "Option::is_none")]
5884 pub status_code: Option<String>,
5885 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
5886 #[serde(rename = "status_detail")]
5887 #[serde(skip_serializing_if = "Option::is_none")]
5888 pub status_detail: Option<String>,
5889 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
5890 #[serde(rename = "status_id")]
5891 #[serde(skip_serializing_if = "Option::is_none")]
5892 pub status_id: Option<i64>,
5893 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
5894 #[serde(rename = "time")]
5895 #[serde(skip_serializing_if = "Option::is_none")]
5896 pub time: Option<i64>,
5897 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
5898 #[serde(rename = "time_dt")]
5899 #[serde(skip_serializing_if = "Option::is_none")]
5900 pub time_dt: Option<String>,
5901 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
5902 #[serde(rename = "timezone_offset")]
5903 #[serde(skip_serializing_if = "Option::is_none")]
5904 pub timezone_offset: Option<i64>,
5905 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
5906 #[serde(rename = "type_name")]
5907 #[serde(skip_serializing_if = "Option::is_none")]
5908 pub type_name: Option<String>,
5909 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
5910 #[serde(rename = "type_uid")]
5911 #[serde(skip_serializing_if = "Option::is_none")]
5912 pub type_uid: Option<i64>,
5913 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
5914 #[serde(rename = "unmapped")]
5915 #[serde(skip_serializing_if = "Option::is_none")]
5916 pub unmapped: Option<serde_json::Value>,
5917}
5918#[doc = "Email URL Activity\n\nEmail URL Activity events report URLs within an email.\n\n[UID:4012] Category: network | Name: email_url_activity"]
5919#[deprecated(
5920 note = "Use the <code>Email Activity</code> class with the <code>email.urls[]</code> array instead. (Since 1.3.0)"
5921)]
5922#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
5923#[serde(default)]
5924#[non_exhaustive]
5925pub struct EmailUrlActivity {
5926 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
5927 #[serde(rename = "action")]
5928 #[serde(skip_serializing_if = "Option::is_none")]
5929 pub action: Option<String>,
5930 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
5931 #[serde(rename = "action_id")]
5932 #[serde(skip_serializing_if = "Option::is_none")]
5933 pub action_id: Option<i64>,
5934 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
5935 #[serde(rename = "activity_id")]
5936 #[serde(skip_serializing_if = "Option::is_none")]
5937 pub activity_id: Option<i64>,
5938 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
5939 #[serde(rename = "activity_name")]
5940 #[serde(skip_serializing_if = "Option::is_none")]
5941 pub activity_name: Option<String>,
5942 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
5943 #[serde(rename = "actor")]
5944 #[serde(skip_serializing_if = "Option::is_none")]
5945 pub actor: Option<Box<Actor>>,
5946 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
5947 #[serde(rename = "api")]
5948 #[serde(skip_serializing_if = "Option::is_none")]
5949 pub api: Option<Box<Api>>,
5950 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
5951 #[serde(rename = "attacks")]
5952 #[serde(skip_serializing_if = "Option::is_none")]
5953 pub attacks: Option<Vec<Attack>>,
5954 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
5955 #[serde(rename = "authorizations")]
5956 #[serde(skip_serializing_if = "Option::is_none")]
5957 pub authorizations: Option<Vec<Authorization>>,
5958 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
5959 #[serde(rename = "category_name")]
5960 #[serde(skip_serializing_if = "Option::is_none")]
5961 pub category_name: Option<String>,
5962 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
5963 #[serde(rename = "category_uid")]
5964 #[serde(skip_serializing_if = "Option::is_none")]
5965 pub category_uid: Option<i64>,
5966 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Email URL Activity</code>.\n\noptional"]
5967 #[serde(rename = "class_name")]
5968 #[serde(skip_serializing_if = "Option::is_none")]
5969 pub class_name: Option<String>,
5970 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
5971 #[serde(rename = "class_uid")]
5972 #[serde(skip_serializing_if = "Option::is_none")]
5973 pub class_uid: Option<i64>,
5974 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
5975 #[serde(rename = "cloud")]
5976 #[serde(skip_serializing_if = "Option::is_none")]
5977 pub cloud: Option<Box<Cloud>>,
5978 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5979 #[serde(rename = "confidence")]
5980 #[serde(skip_serializing_if = "Option::is_none")]
5981 pub confidence: Option<String>,
5982 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
5983 #[serde(rename = "confidence_id")]
5984 #[serde(skip_serializing_if = "Option::is_none")]
5985 pub confidence_id: Option<i64>,
5986 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
5987 #[serde(rename = "confidence_score")]
5988 #[serde(skip_serializing_if = "Option::is_none")]
5989 pub confidence_score: Option<i64>,
5990 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
5991 #[serde(rename = "count")]
5992 #[serde(skip_serializing_if = "Option::is_none")]
5993 pub count: Option<i64>,
5994 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
5995 #[serde(rename = "device")]
5996 #[serde(skip_serializing_if = "Option::is_none")]
5997 pub device: Option<Box<Device>>,
5998 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
5999 #[serde(rename = "disposition")]
6000 #[serde(skip_serializing_if = "Option::is_none")]
6001 pub disposition: Option<String>,
6002 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
6003 #[serde(rename = "disposition_id")]
6004 #[serde(skip_serializing_if = "Option::is_none")]
6005 pub disposition_id: Option<i64>,
6006 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
6007 #[serde(rename = "duration")]
6008 #[serde(skip_serializing_if = "Option::is_none")]
6009 pub duration: Option<i64>,
6010 #[doc = "Email UID\n\nThe unique identifier of the email, used to correlate related email alert and activity events.\n\nrequired"]
6011 #[serde(rename = "email_uid")]
6012 #[serde(skip_serializing_if = "Option::is_none")]
6013 pub email_uid: Option<String>,
6014 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6015 #[serde(rename = "end_time")]
6016 #[serde(skip_serializing_if = "Option::is_none")]
6017 pub end_time: Option<i64>,
6018 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6019 #[serde(rename = "end_time_dt")]
6020 #[serde(skip_serializing_if = "Option::is_none")]
6021 pub end_time_dt: Option<String>,
6022 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
6023 #[serde(rename = "enrichments")]
6024 #[serde(skip_serializing_if = "Option::is_none")]
6025 pub enrichments: Option<Vec<Enrichment>>,
6026 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
6027 #[serde(rename = "firewall_rule")]
6028 #[serde(skip_serializing_if = "Option::is_none")]
6029 pub firewall_rule: Option<Box<FirewallRule>>,
6030 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
6031 #[serde(rename = "is_alert")]
6032 #[serde(skip_serializing_if = "Option::is_none")]
6033 pub is_alert: Option<bool>,
6034 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
6035 #[serde(rename = "malware")]
6036 #[serde(skip_serializing_if = "Option::is_none")]
6037 pub malware: Option<Vec<Malware>>,
6038 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
6039 #[serde(rename = "malware_scan_info")]
6040 #[serde(skip_serializing_if = "Option::is_none")]
6041 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
6042 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
6043 #[serde(rename = "message")]
6044 #[serde(skip_serializing_if = "Option::is_none")]
6045 pub message: Option<String>,
6046 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
6047 #[serde(rename = "metadata")]
6048 #[serde(skip_serializing_if = "Option::is_none")]
6049 pub metadata: Option<Box<Metadata>>,
6050 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
6051 #[serde(rename = "observables")]
6052 #[serde(skip_serializing_if = "Option::is_none")]
6053 pub observables: Option<Vec<Observable>>,
6054 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
6055 #[serde(rename = "osint")]
6056 #[serde(skip_serializing_if = "Option::is_none")]
6057 pub osint: Option<Vec<Osint>>,
6058 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
6059 #[serde(rename = "policy")]
6060 #[serde(skip_serializing_if = "Option::is_none")]
6061 pub policy: Option<Box<Policy>>,
6062 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
6063 #[serde(rename = "raw_data")]
6064 #[serde(skip_serializing_if = "Option::is_none")]
6065 pub raw_data: Option<String>,
6066 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
6067 #[serde(rename = "raw_data_hash")]
6068 #[serde(skip_serializing_if = "Option::is_none")]
6069 pub raw_data_hash: Option<Box<Fingerprint>>,
6070 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
6071 #[serde(rename = "raw_data_size")]
6072 #[serde(skip_serializing_if = "Option::is_none")]
6073 pub raw_data_size: Option<i64>,
6074 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
6075 #[serde(rename = "risk_details")]
6076 #[serde(skip_serializing_if = "Option::is_none")]
6077 pub risk_details: Option<String>,
6078 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
6079 #[serde(rename = "risk_level")]
6080 #[serde(skip_serializing_if = "Option::is_none")]
6081 pub risk_level: Option<String>,
6082 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
6083 #[serde(rename = "risk_level_id")]
6084 #[serde(skip_serializing_if = "Option::is_none")]
6085 pub risk_level_id: Option<i64>,
6086 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
6087 #[serde(rename = "risk_score")]
6088 #[serde(skip_serializing_if = "Option::is_none")]
6089 pub risk_score: Option<i64>,
6090 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
6091 #[serde(rename = "severity")]
6092 #[serde(skip_serializing_if = "Option::is_none")]
6093 pub severity: Option<String>,
6094 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
6095 #[serde(rename = "severity_id")]
6096 #[serde(skip_serializing_if = "Option::is_none")]
6097 pub severity_id: Option<i64>,
6098 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6099 #[serde(rename = "start_time")]
6100 #[serde(skip_serializing_if = "Option::is_none")]
6101 pub start_time: Option<i64>,
6102 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6103 #[serde(rename = "start_time_dt")]
6104 #[serde(skip_serializing_if = "Option::is_none")]
6105 pub start_time_dt: Option<String>,
6106 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
6107 #[serde(rename = "status")]
6108 #[serde(skip_serializing_if = "Option::is_none")]
6109 pub status: Option<String>,
6110 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
6111 #[serde(rename = "status_code")]
6112 #[serde(skip_serializing_if = "Option::is_none")]
6113 pub status_code: Option<String>,
6114 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
6115 #[serde(rename = "status_detail")]
6116 #[serde(skip_serializing_if = "Option::is_none")]
6117 pub status_detail: Option<String>,
6118 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
6119 #[serde(rename = "status_id")]
6120 #[serde(skip_serializing_if = "Option::is_none")]
6121 pub status_id: Option<i64>,
6122 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
6123 #[serde(rename = "time")]
6124 #[serde(skip_serializing_if = "Option::is_none")]
6125 pub time: Option<i64>,
6126 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
6127 #[serde(rename = "time_dt")]
6128 #[serde(skip_serializing_if = "Option::is_none")]
6129 pub time_dt: Option<String>,
6130 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
6131 #[serde(rename = "timezone_offset")]
6132 #[serde(skip_serializing_if = "Option::is_none")]
6133 pub timezone_offset: Option<i64>,
6134 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
6135 #[serde(rename = "type_name")]
6136 #[serde(skip_serializing_if = "Option::is_none")]
6137 pub type_name: Option<String>,
6138 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
6139 #[serde(rename = "type_uid")]
6140 #[serde(skip_serializing_if = "Option::is_none")]
6141 pub type_uid: Option<i64>,
6142 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
6143 #[serde(rename = "unmapped")]
6144 #[serde(skip_serializing_if = "Option::is_none")]
6145 pub unmapped: Option<serde_json::Value>,
6146 #[doc = "URL\n\nThe URL included in the email content.\n\nrequired"]
6147 #[serde(rename = "url")]
6148 #[serde(skip_serializing_if = "Option::is_none")]
6149 pub url: Option<Box<Url>>,
6150}
6151#[doc = "Entity Management\n\nEntity Management events report activity by a managed client, a micro service, or a user at a management console. The activity can be a create, read, update, and delete operation on a managed entity.\n\n[UID:3004] Category: iam | Name: entity_management"]
6152#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
6153#[serde(default)]
6154#[non_exhaustive]
6155pub struct EntityManagement {
6156 #[doc = "Access List\n\nThe list of requested access rights.\n\noptional"]
6157 #[serde(rename = "access_list")]
6158 #[serde(skip_serializing_if = "Option::is_none")]
6159 pub access_list: Option<Vec<String>>,
6160 #[doc = "Access Mask\n\nThe access mask in a platform-native format.\n\noptional"]
6161 #[serde(rename = "access_mask")]
6162 #[serde(skip_serializing_if = "Option::is_none")]
6163 pub access_mask: Option<i64>,
6164 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
6165 #[serde(rename = "action")]
6166 #[serde(skip_serializing_if = "Option::is_none")]
6167 pub action: Option<String>,
6168 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
6169 #[serde(rename = "action_id")]
6170 #[serde(skip_serializing_if = "Option::is_none")]
6171 pub action_id: Option<i64>,
6172 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
6173 #[serde(rename = "activity_id")]
6174 #[serde(skip_serializing_if = "Option::is_none")]
6175 pub activity_id: Option<i64>,
6176 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
6177 #[serde(rename = "activity_name")]
6178 #[serde(skip_serializing_if = "Option::is_none")]
6179 pub activity_name: Option<String>,
6180 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
6181 #[serde(rename = "actor")]
6182 #[serde(skip_serializing_if = "Option::is_none")]
6183 pub actor: Option<Box<Actor>>,
6184 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
6185 #[serde(rename = "api")]
6186 #[serde(skip_serializing_if = "Option::is_none")]
6187 pub api: Option<Box<Api>>,
6188 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
6189 #[serde(rename = "attacks")]
6190 #[serde(skip_serializing_if = "Option::is_none")]
6191 pub attacks: Option<Vec<Attack>>,
6192 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
6193 #[serde(rename = "authorizations")]
6194 #[serde(skip_serializing_if = "Option::is_none")]
6195 pub authorizations: Option<Vec<Authorization>>,
6196 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
6197 #[serde(rename = "category_name")]
6198 #[serde(skip_serializing_if = "Option::is_none")]
6199 pub category_name: Option<String>,
6200 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
6201 #[serde(rename = "category_uid")]
6202 #[serde(skip_serializing_if = "Option::is_none")]
6203 pub category_uid: Option<i64>,
6204 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Entity Management</code>.\n\noptional"]
6205 #[serde(rename = "class_name")]
6206 #[serde(skip_serializing_if = "Option::is_none")]
6207 pub class_name: Option<String>,
6208 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
6209 #[serde(rename = "class_uid")]
6210 #[serde(skip_serializing_if = "Option::is_none")]
6211 pub class_uid: Option<i64>,
6212 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
6213 #[serde(rename = "cloud")]
6214 #[serde(skip_serializing_if = "Option::is_none")]
6215 pub cloud: Option<Box<Cloud>>,
6216 #[doc = "Comment\n\nThe user provided comment about why the entity was changed.\n\nrecommended"]
6217 #[serde(rename = "comment")]
6218 #[serde(skip_serializing_if = "Option::is_none")]
6219 pub comment: Option<String>,
6220 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6221 #[serde(rename = "confidence")]
6222 #[serde(skip_serializing_if = "Option::is_none")]
6223 pub confidence: Option<String>,
6224 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
6225 #[serde(rename = "confidence_id")]
6226 #[serde(skip_serializing_if = "Option::is_none")]
6227 pub confidence_id: Option<i64>,
6228 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
6229 #[serde(rename = "confidence_score")]
6230 #[serde(skip_serializing_if = "Option::is_none")]
6231 pub confidence_score: Option<i64>,
6232 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
6233 #[serde(rename = "count")]
6234 #[serde(skip_serializing_if = "Option::is_none")]
6235 pub count: Option<i64>,
6236 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
6237 #[serde(rename = "device")]
6238 #[serde(skip_serializing_if = "Option::is_none")]
6239 pub device: Option<Box<Device>>,
6240 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6241 #[serde(rename = "disposition")]
6242 #[serde(skip_serializing_if = "Option::is_none")]
6243 pub disposition: Option<String>,
6244 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
6245 #[serde(rename = "disposition_id")]
6246 #[serde(skip_serializing_if = "Option::is_none")]
6247 pub disposition_id: Option<i64>,
6248 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
6249 #[serde(rename = "duration")]
6250 #[serde(skip_serializing_if = "Option::is_none")]
6251 pub duration: Option<i64>,
6252 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6253 #[serde(rename = "end_time")]
6254 #[serde(skip_serializing_if = "Option::is_none")]
6255 pub end_time: Option<i64>,
6256 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6257 #[serde(rename = "end_time_dt")]
6258 #[serde(skip_serializing_if = "Option::is_none")]
6259 pub end_time_dt: Option<String>,
6260 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
6261 #[serde(rename = "enrichments")]
6262 #[serde(skip_serializing_if = "Option::is_none")]
6263 pub enrichments: Option<Vec<Enrichment>>,
6264 #[doc = "Entity\n\nThe managed entity that is being acted upon.\n\nrequired"]
6265 #[serde(rename = "entity")]
6266 #[serde(skip_serializing_if = "Option::is_none")]
6267 pub entity: Option<Box<ManagedEntity>>,
6268 #[doc = "Entity Result\n\nThe updated managed entity.\n\nrecommended"]
6269 #[serde(rename = "entity_result")]
6270 #[serde(skip_serializing_if = "Option::is_none")]
6271 pub entity_result: Option<Box<ManagedEntity>>,
6272 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
6273 #[serde(rename = "firewall_rule")]
6274 #[serde(skip_serializing_if = "Option::is_none")]
6275 pub firewall_rule: Option<Box<FirewallRule>>,
6276 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
6277 #[serde(rename = "http_request")]
6278 #[serde(skip_serializing_if = "Option::is_none")]
6279 pub http_request: Option<Box<HttpRequest>>,
6280 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
6281 #[serde(rename = "http_response")]
6282 #[serde(skip_serializing_if = "Option::is_none")]
6283 pub http_response: Option<Box<HttpResponse>>,
6284 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
6285 #[serde(rename = "is_alert")]
6286 #[serde(skip_serializing_if = "Option::is_none")]
6287 pub is_alert: Option<bool>,
6288 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
6289 #[serde(rename = "malware")]
6290 #[serde(skip_serializing_if = "Option::is_none")]
6291 pub malware: Option<Vec<Malware>>,
6292 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
6293 #[serde(rename = "malware_scan_info")]
6294 #[serde(skip_serializing_if = "Option::is_none")]
6295 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
6296 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
6297 #[serde(rename = "message")]
6298 #[serde(skip_serializing_if = "Option::is_none")]
6299 pub message: Option<String>,
6300 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
6301 #[serde(rename = "metadata")]
6302 #[serde(skip_serializing_if = "Option::is_none")]
6303 pub metadata: Option<Box<Metadata>>,
6304 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
6305 #[serde(rename = "observables")]
6306 #[serde(skip_serializing_if = "Option::is_none")]
6307 pub observables: Option<Vec<Observable>>,
6308 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
6309 #[serde(rename = "osint")]
6310 #[serde(skip_serializing_if = "Option::is_none")]
6311 pub osint: Option<Vec<Osint>>,
6312 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
6313 #[serde(rename = "policy")]
6314 #[serde(skip_serializing_if = "Option::is_none")]
6315 pub policy: Option<Box<Policy>>,
6316 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
6317 #[serde(rename = "raw_data")]
6318 #[serde(skip_serializing_if = "Option::is_none")]
6319 pub raw_data: Option<String>,
6320 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
6321 #[serde(rename = "raw_data_hash")]
6322 #[serde(skip_serializing_if = "Option::is_none")]
6323 pub raw_data_hash: Option<Box<Fingerprint>>,
6324 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
6325 #[serde(rename = "raw_data_size")]
6326 #[serde(skip_serializing_if = "Option::is_none")]
6327 pub raw_data_size: Option<i64>,
6328 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
6329 #[serde(rename = "risk_details")]
6330 #[serde(skip_serializing_if = "Option::is_none")]
6331 pub risk_details: Option<String>,
6332 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
6333 #[serde(rename = "risk_level")]
6334 #[serde(skip_serializing_if = "Option::is_none")]
6335 pub risk_level: Option<String>,
6336 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
6337 #[serde(rename = "risk_level_id")]
6338 #[serde(skip_serializing_if = "Option::is_none")]
6339 pub risk_level_id: Option<i64>,
6340 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
6341 #[serde(rename = "risk_score")]
6342 #[serde(skip_serializing_if = "Option::is_none")]
6343 pub risk_score: Option<i64>,
6344 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
6345 #[serde(rename = "severity")]
6346 #[serde(skip_serializing_if = "Option::is_none")]
6347 pub severity: Option<String>,
6348 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
6349 #[serde(rename = "severity_id")]
6350 #[serde(skip_serializing_if = "Option::is_none")]
6351 pub severity_id: Option<i64>,
6352 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
6353 #[serde(rename = "src_endpoint")]
6354 #[serde(skip_serializing_if = "Option::is_none")]
6355 pub src_endpoint: Option<Box<NetworkEndpoint>>,
6356 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6357 #[serde(rename = "start_time")]
6358 #[serde(skip_serializing_if = "Option::is_none")]
6359 pub start_time: Option<i64>,
6360 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6361 #[serde(rename = "start_time_dt")]
6362 #[serde(skip_serializing_if = "Option::is_none")]
6363 pub start_time_dt: Option<String>,
6364 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
6365 #[serde(rename = "status")]
6366 #[serde(skip_serializing_if = "Option::is_none")]
6367 pub status: Option<String>,
6368 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
6369 #[serde(rename = "status_code")]
6370 #[serde(skip_serializing_if = "Option::is_none")]
6371 pub status_code: Option<String>,
6372 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
6373 #[serde(rename = "status_detail")]
6374 #[serde(skip_serializing_if = "Option::is_none")]
6375 pub status_detail: Option<String>,
6376 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
6377 #[serde(rename = "status_id")]
6378 #[serde(skip_serializing_if = "Option::is_none")]
6379 pub status_id: Option<i64>,
6380 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
6381 #[serde(rename = "time")]
6382 #[serde(skip_serializing_if = "Option::is_none")]
6383 pub time: Option<i64>,
6384 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
6385 #[serde(rename = "time_dt")]
6386 #[serde(skip_serializing_if = "Option::is_none")]
6387 pub time_dt: Option<String>,
6388 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
6389 #[serde(rename = "timezone_offset")]
6390 #[serde(skip_serializing_if = "Option::is_none")]
6391 pub timezone_offset: Option<i64>,
6392 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
6393 #[serde(rename = "type_name")]
6394 #[serde(skip_serializing_if = "Option::is_none")]
6395 pub type_name: Option<String>,
6396 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
6397 #[serde(rename = "type_uid")]
6398 #[serde(skip_serializing_if = "Option::is_none")]
6399 pub type_uid: Option<i64>,
6400 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
6401 #[serde(rename = "unmapped")]
6402 #[serde(skip_serializing_if = "Option::is_none")]
6403 pub unmapped: Option<serde_json::Value>,
6404}
6405#[doc = "Event Log Activity\n\nEvent Log Activity events report actions pertaining to the system's event logging service(s), such as disabling logging or clearing the log data.\n\n[UID:1008] Category: system | Name: event_log_actvity\n\n**Constraints:**\n* at_least_one: `[log_file`,`log_name`,`log_provider`,`log_type`,`log_type_id]`\n"]
6406#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
6407#[serde(default)]
6408#[non_exhaustive]
6409pub struct EventLogActvity {
6410 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
6411 #[serde(rename = "action")]
6412 #[serde(skip_serializing_if = "Option::is_none")]
6413 pub action: Option<String>,
6414 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
6415 #[serde(rename = "action_id")]
6416 #[serde(skip_serializing_if = "Option::is_none")]
6417 pub action_id: Option<i64>,
6418 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
6419 #[serde(rename = "activity_id")]
6420 #[serde(skip_serializing_if = "Option::is_none")]
6421 pub activity_id: Option<i64>,
6422 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
6423 #[serde(rename = "activity_name")]
6424 #[serde(skip_serializing_if = "Option::is_none")]
6425 pub activity_name: Option<String>,
6426 #[doc = "Actor\n\nThe actor that performed the activity.\n\nrecommended"]
6427 #[serde(rename = "actor")]
6428 #[serde(skip_serializing_if = "Option::is_none")]
6429 pub actor: Option<Box<Actor>>,
6430 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
6431 #[serde(rename = "api")]
6432 #[serde(skip_serializing_if = "Option::is_none")]
6433 pub api: Option<Box<Api>>,
6434 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
6435 #[serde(rename = "attacks")]
6436 #[serde(skip_serializing_if = "Option::is_none")]
6437 pub attacks: Option<Vec<Attack>>,
6438 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
6439 #[serde(rename = "authorizations")]
6440 #[serde(skip_serializing_if = "Option::is_none")]
6441 pub authorizations: Option<Vec<Authorization>>,
6442 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
6443 #[serde(rename = "category_name")]
6444 #[serde(skip_serializing_if = "Option::is_none")]
6445 pub category_name: Option<String>,
6446 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
6447 #[serde(rename = "category_uid")]
6448 #[serde(skip_serializing_if = "Option::is_none")]
6449 pub category_uid: Option<i64>,
6450 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Event Log Activity</code>.\n\noptional"]
6451 #[serde(rename = "class_name")]
6452 #[serde(skip_serializing_if = "Option::is_none")]
6453 pub class_name: Option<String>,
6454 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
6455 #[serde(rename = "class_uid")]
6456 #[serde(skip_serializing_if = "Option::is_none")]
6457 pub class_uid: Option<i64>,
6458 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
6459 #[serde(rename = "cloud")]
6460 #[serde(skip_serializing_if = "Option::is_none")]
6461 pub cloud: Option<Box<Cloud>>,
6462 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6463 #[serde(rename = "confidence")]
6464 #[serde(skip_serializing_if = "Option::is_none")]
6465 pub confidence: Option<String>,
6466 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
6467 #[serde(rename = "confidence_id")]
6468 #[serde(skip_serializing_if = "Option::is_none")]
6469 pub confidence_id: Option<i64>,
6470 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
6471 #[serde(rename = "confidence_score")]
6472 #[serde(skip_serializing_if = "Option::is_none")]
6473 pub confidence_score: Option<i64>,
6474 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
6475 #[serde(rename = "count")]
6476 #[serde(skip_serializing_if = "Option::is_none")]
6477 pub count: Option<i64>,
6478 #[doc = "Device\n\nThe device that reported the event.\n\nrecommended"]
6479 #[serde(rename = "device")]
6480 #[serde(skip_serializing_if = "Option::is_none")]
6481 pub device: Option<Box<Device>>,
6482 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6483 #[serde(rename = "disposition")]
6484 #[serde(skip_serializing_if = "Option::is_none")]
6485 pub disposition: Option<String>,
6486 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
6487 #[serde(rename = "disposition_id")]
6488 #[serde(skip_serializing_if = "Option::is_none")]
6489 pub disposition_id: Option<i64>,
6490 #[doc = "Destination Endpoint\n\nThe <p style='display:inline;color:red'>targeted</p> endpoint for the event log activity.\n\nrecommended"]
6491 #[serde(rename = "dst_endpoint")]
6492 #[serde(skip_serializing_if = "Option::is_none")]
6493 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
6494 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
6495 #[serde(rename = "duration")]
6496 #[serde(skip_serializing_if = "Option::is_none")]
6497 pub duration: Option<i64>,
6498 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6499 #[serde(rename = "end_time")]
6500 #[serde(skip_serializing_if = "Option::is_none")]
6501 pub end_time: Option<i64>,
6502 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6503 #[serde(rename = "end_time_dt")]
6504 #[serde(skip_serializing_if = "Option::is_none")]
6505 pub end_time_dt: Option<String>,
6506 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
6507 #[serde(rename = "enrichments")]
6508 #[serde(skip_serializing_if = "Option::is_none")]
6509 pub enrichments: Option<Vec<Enrichment>>,
6510 #[doc = "File\n\nThe file <p style='display:inline;color:red'>targeted by</p> the activity. Example: <code>/var/log/audit.log</code>\n\nrecommended"]
6511 #[serde(rename = "file")]
6512 #[serde(skip_serializing_if = "Option::is_none")]
6513 pub file: Option<Box<File>>,
6514 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
6515 #[serde(rename = "firewall_rule")]
6516 #[serde(skip_serializing_if = "Option::is_none")]
6517 pub firewall_rule: Option<Box<FirewallRule>>,
6518 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
6519 #[serde(rename = "is_alert")]
6520 #[serde(skip_serializing_if = "Option::is_none")]
6521 pub is_alert: Option<bool>,
6522 #[doc = "Log Name\n\nThe name of the event log <p style='display:inline;color:red'>targeted by</p> the activity. Example: Windows <code>Security</code>.\n\nrecommended"]
6523 #[serde(rename = "log_name")]
6524 #[serde(skip_serializing_if = "Option::is_none")]
6525 pub log_name: Option<String>,
6526 #[doc = "Log Provider\n\nThe logging provider or logging service <p style='display:inline;color:red'>targeted by</p> the activity.<br />Example: <code>Microsoft-Windows-Security-Auditing</code>, <code>Auditd</code>, or <code>Syslog</code>.\n\nrecommended"]
6527 #[serde(rename = "log_provider")]
6528 #[serde(skip_serializing_if = "Option::is_none")]
6529 pub log_provider: Option<String>,
6530 #[doc = "Log Type\n\nThe log type, normalized to the caption of the <code>log_type_id</code> value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
6531 #[serde(rename = "log_type")]
6532 #[serde(skip_serializing_if = "Option::is_none")]
6533 pub log_type: Option<String>,
6534 #[doc = "Log Type ID\n\nThe normalized log type identifier.\n\nrecommended"]
6535 #[serde(rename = "log_type_id")]
6536 #[serde(skip_serializing_if = "Option::is_none")]
6537 pub log_type_id: Option<i64>,
6538 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
6539 #[serde(rename = "malware")]
6540 #[serde(skip_serializing_if = "Option::is_none")]
6541 pub malware: Option<Vec<Malware>>,
6542 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
6543 #[serde(rename = "malware_scan_info")]
6544 #[serde(skip_serializing_if = "Option::is_none")]
6545 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
6546 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
6547 #[serde(rename = "message")]
6548 #[serde(skip_serializing_if = "Option::is_none")]
6549 pub message: Option<String>,
6550 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
6551 #[serde(rename = "metadata")]
6552 #[serde(skip_serializing_if = "Option::is_none")]
6553 pub metadata: Option<Box<Metadata>>,
6554 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
6555 #[serde(rename = "observables")]
6556 #[serde(skip_serializing_if = "Option::is_none")]
6557 pub observables: Option<Vec<Observable>>,
6558 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
6559 #[serde(rename = "osint")]
6560 #[serde(skip_serializing_if = "Option::is_none")]
6561 pub osint: Option<Vec<Osint>>,
6562 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
6563 #[serde(rename = "policy")]
6564 #[serde(skip_serializing_if = "Option::is_none")]
6565 pub policy: Option<Box<Policy>>,
6566 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
6567 #[serde(rename = "raw_data")]
6568 #[serde(skip_serializing_if = "Option::is_none")]
6569 pub raw_data: Option<String>,
6570 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
6571 #[serde(rename = "raw_data_hash")]
6572 #[serde(skip_serializing_if = "Option::is_none")]
6573 pub raw_data_hash: Option<Box<Fingerprint>>,
6574 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
6575 #[serde(rename = "raw_data_size")]
6576 #[serde(skip_serializing_if = "Option::is_none")]
6577 pub raw_data_size: Option<i64>,
6578 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
6579 #[serde(rename = "risk_details")]
6580 #[serde(skip_serializing_if = "Option::is_none")]
6581 pub risk_details: Option<String>,
6582 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
6583 #[serde(rename = "risk_level")]
6584 #[serde(skip_serializing_if = "Option::is_none")]
6585 pub risk_level: Option<String>,
6586 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
6587 #[serde(rename = "risk_level_id")]
6588 #[serde(skip_serializing_if = "Option::is_none")]
6589 pub risk_level_id: Option<i64>,
6590 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
6591 #[serde(rename = "risk_score")]
6592 #[serde(skip_serializing_if = "Option::is_none")]
6593 pub risk_score: Option<i64>,
6594 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
6595 #[serde(rename = "severity")]
6596 #[serde(skip_serializing_if = "Option::is_none")]
6597 pub severity: Option<String>,
6598 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
6599 #[serde(rename = "severity_id")]
6600 #[serde(skip_serializing_if = "Option::is_none")]
6601 pub severity_id: Option<i64>,
6602 #[doc = "Source Endpoint\n\nThe source endpoint for the event log activity.\n\nrecommended"]
6603 #[serde(rename = "src_endpoint")]
6604 #[serde(skip_serializing_if = "Option::is_none")]
6605 pub src_endpoint: Option<Box<NetworkEndpoint>>,
6606 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6607 #[serde(rename = "start_time")]
6608 #[serde(skip_serializing_if = "Option::is_none")]
6609 pub start_time: Option<i64>,
6610 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6611 #[serde(rename = "start_time_dt")]
6612 #[serde(skip_serializing_if = "Option::is_none")]
6613 pub start_time_dt: Option<String>,
6614 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
6615 #[serde(rename = "status")]
6616 #[serde(skip_serializing_if = "Option::is_none")]
6617 pub status: Option<String>,
6618 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br />Example: <code>0</code>, <code>8</code>, or <code>21</code> for <a target='_blank' href='https://learn.microsoft.com/en-us/previous-versions/windows/desktop/eventlogprov/cleareventlog-method-in-class-win32-nteventlogfile'>Windows ClearEventLog</a>.\n\nrecommended"]
6619 #[serde(rename = "status_code")]
6620 #[serde(skip_serializing_if = "Option::is_none")]
6621 pub status_code: Option<String>,
6622 #[doc = "Status Detail\n\nThe status detail contains additional information about the event outcome.<br />Example: <code>Success</code>, <code>Privilege Missing</code>, or <code>Invalid Parameter</code> for <a target='_blank' href='https://learn.microsoft.com/en-us/previous-versions/windows/desktop/eventlogprov/cleareventlog-method-in-class-win32-nteventlogfile'>Windows ClearEventLog</a>.\n\nrecommended"]
6623 #[serde(rename = "status_detail")]
6624 #[serde(skip_serializing_if = "Option::is_none")]
6625 pub status_detail: Option<String>,
6626 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
6627 #[serde(rename = "status_id")]
6628 #[serde(skip_serializing_if = "Option::is_none")]
6629 pub status_id: Option<i64>,
6630 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
6631 #[serde(rename = "time")]
6632 #[serde(skip_serializing_if = "Option::is_none")]
6633 pub time: Option<i64>,
6634 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
6635 #[serde(rename = "time_dt")]
6636 #[serde(skip_serializing_if = "Option::is_none")]
6637 pub time_dt: Option<String>,
6638 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
6639 #[serde(rename = "timezone_offset")]
6640 #[serde(skip_serializing_if = "Option::is_none")]
6641 pub timezone_offset: Option<i64>,
6642 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
6643 #[serde(rename = "type_name")]
6644 #[serde(skip_serializing_if = "Option::is_none")]
6645 pub type_name: Option<String>,
6646 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
6647 #[serde(rename = "type_uid")]
6648 #[serde(skip_serializing_if = "Option::is_none")]
6649 pub type_uid: Option<i64>,
6650 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
6651 #[serde(rename = "unmapped")]
6652 #[serde(skip_serializing_if = "Option::is_none")]
6653 pub unmapped: Option<serde_json::Value>,
6654}
6655#[doc = "Live Evidence Info\n\nData collected directly from devices that represents forensic information pulled, queried, or discovered from devices that may indicate malicious activity. It contains a number of child objects, each representing a distinct evidence domain (network connections, file artifacts, registry entries, etc.). When mapping raw telemetry data users should select Query Evidence and then the appropriate child object that best matches the evidence type.\n\n[UID:5040] Category: discovery | Name: evidence_info"]
6656#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
6657#[serde(default)]
6658#[non_exhaustive]
6659pub struct EvidenceInfo {
6660 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
6661 #[serde(rename = "action")]
6662 #[serde(skip_serializing_if = "Option::is_none")]
6663 pub action: Option<String>,
6664 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
6665 #[serde(rename = "action_id")]
6666 #[serde(skip_serializing_if = "Option::is_none")]
6667 pub action_id: Option<i64>,
6668 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
6669 #[serde(rename = "activity_id")]
6670 #[serde(skip_serializing_if = "Option::is_none")]
6671 pub activity_id: Option<i64>,
6672 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
6673 #[serde(rename = "activity_name")]
6674 #[serde(skip_serializing_if = "Option::is_none")]
6675 pub activity_name: Option<String>,
6676 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
6677 #[serde(rename = "actor")]
6678 #[serde(skip_serializing_if = "Option::is_none")]
6679 pub actor: Option<Box<Actor>>,
6680 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
6681 #[serde(rename = "api")]
6682 #[serde(skip_serializing_if = "Option::is_none")]
6683 pub api: Option<Box<Api>>,
6684 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
6685 #[serde(rename = "attacks")]
6686 #[serde(skip_serializing_if = "Option::is_none")]
6687 pub attacks: Option<Vec<Attack>>,
6688 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
6689 #[serde(rename = "authorizations")]
6690 #[serde(skip_serializing_if = "Option::is_none")]
6691 pub authorizations: Option<Vec<Authorization>>,
6692 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
6693 #[serde(rename = "category_name")]
6694 #[serde(skip_serializing_if = "Option::is_none")]
6695 pub category_name: Option<String>,
6696 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
6697 #[serde(rename = "category_uid")]
6698 #[serde(skip_serializing_if = "Option::is_none")]
6699 pub category_uid: Option<i64>,
6700 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Live Evidence Info</code>.\n\noptional"]
6701 #[serde(rename = "class_name")]
6702 #[serde(skip_serializing_if = "Option::is_none")]
6703 pub class_name: Option<String>,
6704 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
6705 #[serde(rename = "class_uid")]
6706 #[serde(skip_serializing_if = "Option::is_none")]
6707 pub class_uid: Option<i64>,
6708 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
6709 #[serde(rename = "cloud")]
6710 #[serde(skip_serializing_if = "Option::is_none")]
6711 pub cloud: Option<Box<Cloud>>,
6712 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6713 #[serde(rename = "confidence")]
6714 #[serde(skip_serializing_if = "Option::is_none")]
6715 pub confidence: Option<String>,
6716 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
6717 #[serde(rename = "confidence_id")]
6718 #[serde(skip_serializing_if = "Option::is_none")]
6719 pub confidence_id: Option<i64>,
6720 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
6721 #[serde(rename = "confidence_score")]
6722 #[serde(skip_serializing_if = "Option::is_none")]
6723 pub confidence_score: Option<i64>,
6724 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
6725 #[serde(rename = "count")]
6726 #[serde(skip_serializing_if = "Option::is_none")]
6727 pub count: Option<i64>,
6728 #[doc = "Device\n\nAn addressable device, computer system or host from which evidence was collected.\n\nrequired"]
6729 #[serde(rename = "device")]
6730 #[serde(skip_serializing_if = "Option::is_none")]
6731 pub device: Option<Box<Device>>,
6732 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6733 #[serde(rename = "disposition")]
6734 #[serde(skip_serializing_if = "Option::is_none")]
6735 pub disposition: Option<String>,
6736 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
6737 #[serde(rename = "disposition_id")]
6738 #[serde(skip_serializing_if = "Option::is_none")]
6739 pub disposition_id: Option<i64>,
6740 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
6741 #[serde(rename = "duration")]
6742 #[serde(skip_serializing_if = "Option::is_none")]
6743 pub duration: Option<i64>,
6744 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6745 #[serde(rename = "end_time")]
6746 #[serde(skip_serializing_if = "Option::is_none")]
6747 pub end_time: Option<i64>,
6748 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6749 #[serde(rename = "end_time_dt")]
6750 #[serde(skip_serializing_if = "Option::is_none")]
6751 pub end_time_dt: Option<String>,
6752 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
6753 #[serde(rename = "enrichments")]
6754 #[serde(skip_serializing_if = "Option::is_none")]
6755 pub enrichments: Option<Vec<Enrichment>>,
6756 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
6757 #[serde(rename = "firewall_rule")]
6758 #[serde(skip_serializing_if = "Option::is_none")]
6759 pub firewall_rule: Option<Box<FirewallRule>>,
6760 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
6761 #[serde(rename = "is_alert")]
6762 #[serde(skip_serializing_if = "Option::is_none")]
6763 pub is_alert: Option<bool>,
6764 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
6765 #[serde(rename = "malware")]
6766 #[serde(skip_serializing_if = "Option::is_none")]
6767 pub malware: Option<Vec<Malware>>,
6768 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
6769 #[serde(rename = "malware_scan_info")]
6770 #[serde(skip_serializing_if = "Option::is_none")]
6771 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
6772 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
6773 #[serde(rename = "message")]
6774 #[serde(skip_serializing_if = "Option::is_none")]
6775 pub message: Option<String>,
6776 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
6777 #[serde(rename = "metadata")]
6778 #[serde(skip_serializing_if = "Option::is_none")]
6779 pub metadata: Option<Box<Metadata>>,
6780 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
6781 #[serde(rename = "observables")]
6782 #[serde(skip_serializing_if = "Option::is_none")]
6783 pub observables: Option<Vec<Observable>>,
6784 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
6785 #[serde(rename = "osint")]
6786 #[serde(skip_serializing_if = "Option::is_none")]
6787 pub osint: Option<Vec<Osint>>,
6788 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
6789 #[serde(rename = "policy")]
6790 #[serde(skip_serializing_if = "Option::is_none")]
6791 pub policy: Option<Box<Policy>>,
6792 #[doc = "Query Evidence\n\nThe specific resulting evidence information that was queried or discovered based on the query type. Contains various child objects corresponding to the query_type_id values.\n\nrequired"]
6793 #[serde(rename = "query_evidence")]
6794 #[serde(skip_serializing_if = "Option::is_none")]
6795 pub query_evidence: Option<Box<QueryEvidence>>,
6796 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
6797 #[serde(rename = "query_info")]
6798 #[serde(skip_serializing_if = "Option::is_none")]
6799 pub query_info: Option<Box<QueryInfo>>,
6800 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
6801 #[serde(rename = "query_result")]
6802 #[serde(skip_serializing_if = "Option::is_none")]
6803 pub query_result: Option<String>,
6804 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
6805 #[serde(rename = "query_result_id")]
6806 #[serde(skip_serializing_if = "Option::is_none")]
6807 pub query_result_id: Option<i64>,
6808 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
6809 #[serde(rename = "raw_data")]
6810 #[serde(skip_serializing_if = "Option::is_none")]
6811 pub raw_data: Option<String>,
6812 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
6813 #[serde(rename = "raw_data_hash")]
6814 #[serde(skip_serializing_if = "Option::is_none")]
6815 pub raw_data_hash: Option<Box<Fingerprint>>,
6816 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
6817 #[serde(rename = "raw_data_size")]
6818 #[serde(skip_serializing_if = "Option::is_none")]
6819 pub raw_data_size: Option<i64>,
6820 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
6821 #[serde(rename = "risk_details")]
6822 #[serde(skip_serializing_if = "Option::is_none")]
6823 pub risk_details: Option<String>,
6824 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
6825 #[serde(rename = "risk_level")]
6826 #[serde(skip_serializing_if = "Option::is_none")]
6827 pub risk_level: Option<String>,
6828 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
6829 #[serde(rename = "risk_level_id")]
6830 #[serde(skip_serializing_if = "Option::is_none")]
6831 pub risk_level_id: Option<i64>,
6832 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
6833 #[serde(rename = "risk_score")]
6834 #[serde(skip_serializing_if = "Option::is_none")]
6835 pub risk_score: Option<i64>,
6836 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
6837 #[serde(rename = "severity")]
6838 #[serde(skip_serializing_if = "Option::is_none")]
6839 pub severity: Option<String>,
6840 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
6841 #[serde(rename = "severity_id")]
6842 #[serde(skip_serializing_if = "Option::is_none")]
6843 pub severity_id: Option<i64>,
6844 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6845 #[serde(rename = "start_time")]
6846 #[serde(skip_serializing_if = "Option::is_none")]
6847 pub start_time: Option<i64>,
6848 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
6849 #[serde(rename = "start_time_dt")]
6850 #[serde(skip_serializing_if = "Option::is_none")]
6851 pub start_time_dt: Option<String>,
6852 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
6853 #[serde(rename = "status")]
6854 #[serde(skip_serializing_if = "Option::is_none")]
6855 pub status: Option<String>,
6856 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
6857 #[serde(rename = "status_code")]
6858 #[serde(skip_serializing_if = "Option::is_none")]
6859 pub status_code: Option<String>,
6860 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
6861 #[serde(rename = "status_detail")]
6862 #[serde(skip_serializing_if = "Option::is_none")]
6863 pub status_detail: Option<String>,
6864 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
6865 #[serde(rename = "status_id")]
6866 #[serde(skip_serializing_if = "Option::is_none")]
6867 pub status_id: Option<i64>,
6868 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
6869 #[serde(rename = "time")]
6870 #[serde(skip_serializing_if = "Option::is_none")]
6871 pub time: Option<i64>,
6872 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
6873 #[serde(rename = "time_dt")]
6874 #[serde(skip_serializing_if = "Option::is_none")]
6875 pub time_dt: Option<String>,
6876 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
6877 #[serde(rename = "timezone_offset")]
6878 #[serde(skip_serializing_if = "Option::is_none")]
6879 pub timezone_offset: Option<i64>,
6880 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
6881 #[serde(rename = "type_name")]
6882 #[serde(skip_serializing_if = "Option::is_none")]
6883 pub type_name: Option<String>,
6884 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
6885 #[serde(rename = "type_uid")]
6886 #[serde(skip_serializing_if = "Option::is_none")]
6887 pub type_uid: Option<i64>,
6888 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
6889 #[serde(rename = "unmapped")]
6890 #[serde(skip_serializing_if = "Option::is_none")]
6891 pub unmapped: Option<serde_json::Value>,
6892}
6893#[doc = "File System Activity\n\nFile System Activity events report when a process performs an action on a file or folder.\n\n[UID:1001] Category: system | Name: file_activity"]
6894#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
6895#[serde(default)]
6896#[non_exhaustive]
6897pub struct FileActivity {
6898 #[doc = "Access Mask\n\nThe access mask in a platform-native format.\n\noptional"]
6899 #[serde(rename = "access_mask")]
6900 #[serde(skip_serializing_if = "Option::is_none")]
6901 pub access_mask: Option<i64>,
6902 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
6903 #[serde(rename = "action")]
6904 #[serde(skip_serializing_if = "Option::is_none")]
6905 pub action: Option<String>,
6906 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
6907 #[serde(rename = "action_id")]
6908 #[serde(skip_serializing_if = "Option::is_none")]
6909 pub action_id: Option<i64>,
6910 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
6911 #[serde(rename = "activity_id")]
6912 #[serde(skip_serializing_if = "Option::is_none")]
6913 pub activity_id: Option<i64>,
6914 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
6915 #[serde(rename = "activity_name")]
6916 #[serde(skip_serializing_if = "Option::is_none")]
6917 pub activity_name: Option<String>,
6918 #[doc = "Actor\n\nThe actor that performed the activity on the <code>file</code> object\n\nrequired"]
6919 #[serde(rename = "actor")]
6920 #[serde(skip_serializing_if = "Option::is_none")]
6921 pub actor: Option<Box<Actor>>,
6922 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
6923 #[serde(rename = "api")]
6924 #[serde(skip_serializing_if = "Option::is_none")]
6925 pub api: Option<Box<Api>>,
6926 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
6927 #[serde(rename = "attacks")]
6928 #[serde(skip_serializing_if = "Option::is_none")]
6929 pub attacks: Option<Vec<Attack>>,
6930 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
6931 #[serde(rename = "authorizations")]
6932 #[serde(skip_serializing_if = "Option::is_none")]
6933 pub authorizations: Option<Vec<Authorization>>,
6934 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
6935 #[serde(rename = "category_name")]
6936 #[serde(skip_serializing_if = "Option::is_none")]
6937 pub category_name: Option<String>,
6938 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
6939 #[serde(rename = "category_uid")]
6940 #[serde(skip_serializing_if = "Option::is_none")]
6941 pub category_uid: Option<i64>,
6942 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>File System Activity</code>.\n\noptional"]
6943 #[serde(rename = "class_name")]
6944 #[serde(skip_serializing_if = "Option::is_none")]
6945 pub class_name: Option<String>,
6946 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
6947 #[serde(rename = "class_uid")]
6948 #[serde(skip_serializing_if = "Option::is_none")]
6949 pub class_uid: Option<i64>,
6950 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
6951 #[serde(rename = "cloud")]
6952 #[serde(skip_serializing_if = "Option::is_none")]
6953 pub cloud: Option<Box<Cloud>>,
6954 #[doc = "Component\n\n<p>The name or relative pathname of a sub-component of the data object, if applicable. </p>For example: <code>attachment.doc</code>, <code>attachment.zip/bad.doc</code>, or <code>part.mime/part.cab/part.uue/part.doc</code>.\n\nrecommended"]
6955 #[serde(rename = "component")]
6956 #[serde(skip_serializing_if = "Option::is_none")]
6957 pub component: Option<String>,
6958 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6959 #[serde(rename = "confidence")]
6960 #[serde(skip_serializing_if = "Option::is_none")]
6961 pub confidence: Option<String>,
6962 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
6963 #[serde(rename = "confidence_id")]
6964 #[serde(skip_serializing_if = "Option::is_none")]
6965 pub confidence_id: Option<i64>,
6966 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
6967 #[serde(rename = "confidence_score")]
6968 #[serde(skip_serializing_if = "Option::is_none")]
6969 pub confidence_score: Option<i64>,
6970 #[doc = "Connection Identifier\n\nThe network connection identifier.\n\noptional"]
6971 #[serde(rename = "connection_uid")]
6972 #[serde(skip_serializing_if = "Option::is_none")]
6973 pub connection_uid: Option<String>,
6974 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
6975 #[serde(rename = "count")]
6976 #[serde(skip_serializing_if = "Option::is_none")]
6977 pub count: Option<i64>,
6978 #[doc = "Create Mask\n\nThe original Windows mask that is required to create the object.\n\nrecommended"]
6979 #[serde(rename = "create_mask")]
6980 #[serde(skip_serializing_if = "Option::is_none")]
6981 pub create_mask: Option<String>,
6982 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
6983 #[serde(rename = "device")]
6984 #[serde(skip_serializing_if = "Option::is_none")]
6985 pub device: Option<Box<Device>>,
6986 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
6987 #[serde(rename = "disposition")]
6988 #[serde(skip_serializing_if = "Option::is_none")]
6989 pub disposition: Option<String>,
6990 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
6991 #[serde(rename = "disposition_id")]
6992 #[serde(skip_serializing_if = "Option::is_none")]
6993 pub disposition_id: Option<i64>,
6994 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
6995 #[serde(rename = "duration")]
6996 #[serde(skip_serializing_if = "Option::is_none")]
6997 pub duration: Option<i64>,
6998 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
6999 #[serde(rename = "end_time")]
7000 #[serde(skip_serializing_if = "Option::is_none")]
7001 pub end_time: Option<i64>,
7002 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7003 #[serde(rename = "end_time_dt")]
7004 #[serde(skip_serializing_if = "Option::is_none")]
7005 pub end_time_dt: Option<String>,
7006 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
7007 #[serde(rename = "enrichments")]
7008 #[serde(skip_serializing_if = "Option::is_none")]
7009 pub enrichments: Option<Vec<Enrichment>>,
7010 #[doc = "File\n\nThe file that is the target of the activity.\n\nrequired"]
7011 #[serde(rename = "file")]
7012 #[serde(skip_serializing_if = "Option::is_none")]
7013 pub file: Option<Box<File>>,
7014 #[doc = "File Diff\n\nFile content differences used for change detection. For example, a common use case is to identify itemized changes within INI or configuration/property setting values.\n\nrecommended"]
7015 #[serde(rename = "file_diff")]
7016 #[serde(skip_serializing_if = "Option::is_none")]
7017 pub file_diff: Option<String>,
7018 #[doc = "File Result\n\nThe resulting file object when the activity was allowed and successful.\n\nrecommended"]
7019 #[serde(rename = "file_result")]
7020 #[serde(skip_serializing_if = "Option::is_none")]
7021 pub file_result: Option<Box<File>>,
7022 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
7023 #[serde(rename = "firewall_rule")]
7024 #[serde(skip_serializing_if = "Option::is_none")]
7025 pub firewall_rule: Option<Box<FirewallRule>>,
7026 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
7027 #[serde(rename = "is_alert")]
7028 #[serde(skip_serializing_if = "Option::is_none")]
7029 pub is_alert: Option<bool>,
7030 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
7031 #[serde(rename = "malware")]
7032 #[serde(skip_serializing_if = "Option::is_none")]
7033 pub malware: Option<Vec<Malware>>,
7034 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
7035 #[serde(rename = "malware_scan_info")]
7036 #[serde(skip_serializing_if = "Option::is_none")]
7037 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
7038 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
7039 #[serde(rename = "message")]
7040 #[serde(skip_serializing_if = "Option::is_none")]
7041 pub message: Option<String>,
7042 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
7043 #[serde(rename = "metadata")]
7044 #[serde(skip_serializing_if = "Option::is_none")]
7045 pub metadata: Option<Box<Metadata>>,
7046 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
7047 #[serde(rename = "observables")]
7048 #[serde(skip_serializing_if = "Option::is_none")]
7049 pub observables: Option<Vec<Observable>>,
7050 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
7051 #[serde(rename = "osint")]
7052 #[serde(skip_serializing_if = "Option::is_none")]
7053 pub osint: Option<Vec<Osint>>,
7054 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
7055 #[serde(rename = "policy")]
7056 #[serde(skip_serializing_if = "Option::is_none")]
7057 pub policy: Option<Box<Policy>>,
7058 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
7059 #[serde(rename = "raw_data")]
7060 #[serde(skip_serializing_if = "Option::is_none")]
7061 pub raw_data: Option<String>,
7062 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
7063 #[serde(rename = "raw_data_hash")]
7064 #[serde(skip_serializing_if = "Option::is_none")]
7065 pub raw_data_hash: Option<Box<Fingerprint>>,
7066 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
7067 #[serde(rename = "raw_data_size")]
7068 #[serde(skip_serializing_if = "Option::is_none")]
7069 pub raw_data_size: Option<i64>,
7070 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
7071 #[serde(rename = "risk_details")]
7072 #[serde(skip_serializing_if = "Option::is_none")]
7073 pub risk_details: Option<String>,
7074 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
7075 #[serde(rename = "risk_level")]
7076 #[serde(skip_serializing_if = "Option::is_none")]
7077 pub risk_level: Option<String>,
7078 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
7079 #[serde(rename = "risk_level_id")]
7080 #[serde(skip_serializing_if = "Option::is_none")]
7081 pub risk_level_id: Option<i64>,
7082 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
7083 #[serde(rename = "risk_score")]
7084 #[serde(skip_serializing_if = "Option::is_none")]
7085 pub risk_score: Option<i64>,
7086 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
7087 #[serde(rename = "severity")]
7088 #[serde(skip_serializing_if = "Option::is_none")]
7089 pub severity: Option<String>,
7090 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
7091 #[serde(rename = "severity_id")]
7092 #[serde(skip_serializing_if = "Option::is_none")]
7093 pub severity_id: Option<i64>,
7094 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7095 #[serde(rename = "start_time")]
7096 #[serde(skip_serializing_if = "Option::is_none")]
7097 pub start_time: Option<i64>,
7098 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7099 #[serde(rename = "start_time_dt")]
7100 #[serde(skip_serializing_if = "Option::is_none")]
7101 pub start_time_dt: Option<String>,
7102 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
7103 #[serde(rename = "status")]
7104 #[serde(skip_serializing_if = "Option::is_none")]
7105 pub status: Option<String>,
7106 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
7107 #[serde(rename = "status_code")]
7108 #[serde(skip_serializing_if = "Option::is_none")]
7109 pub status_code: Option<String>,
7110 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
7111 #[serde(rename = "status_detail")]
7112 #[serde(skip_serializing_if = "Option::is_none")]
7113 pub status_detail: Option<String>,
7114 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
7115 #[serde(rename = "status_id")]
7116 #[serde(skip_serializing_if = "Option::is_none")]
7117 pub status_id: Option<i64>,
7118 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
7119 #[serde(rename = "time")]
7120 #[serde(skip_serializing_if = "Option::is_none")]
7121 pub time: Option<i64>,
7122 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
7123 #[serde(rename = "time_dt")]
7124 #[serde(skip_serializing_if = "Option::is_none")]
7125 pub time_dt: Option<String>,
7126 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
7127 #[serde(rename = "timezone_offset")]
7128 #[serde(skip_serializing_if = "Option::is_none")]
7129 pub timezone_offset: Option<i64>,
7130 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
7131 #[serde(rename = "type_name")]
7132 #[serde(skip_serializing_if = "Option::is_none")]
7133 pub type_name: Option<String>,
7134 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
7135 #[serde(rename = "type_uid")]
7136 #[serde(skip_serializing_if = "Option::is_none")]
7137 pub type_uid: Option<i64>,
7138 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
7139 #[serde(rename = "unmapped")]
7140 #[serde(skip_serializing_if = "Option::is_none")]
7141 pub unmapped: Option<serde_json::Value>,
7142}
7143#[doc = "File Hosting Activity\n\nFile Hosting Activity events report the actions taken by file management applications, including file sharing servers like Sharepoint and services such as Box, MS OneDrive, Google Drive, or network file share services.\n\n[UID:6006] Category: application | Name: file_hosting"]
7144#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
7145#[serde(default)]
7146#[non_exhaustive]
7147pub struct FileHosting {
7148 #[doc = "Access List\n\nThe list of requested access rights.\n\noptional"]
7149 #[serde(rename = "access_list")]
7150 #[serde(skip_serializing_if = "Option::is_none")]
7151 pub access_list: Option<Vec<String>>,
7152 #[doc = "Access Mask\n\nThe sum of hexadecimal values of requested access rights.\n\noptional"]
7153 #[serde(rename = "access_mask")]
7154 #[serde(skip_serializing_if = "Option::is_none")]
7155 pub access_mask: Option<i64>,
7156 #[doc = "Access Check Result\n\nThe list of access check results.\n\noptional"]
7157 #[serde(rename = "access_result")]
7158 #[serde(skip_serializing_if = "Option::is_none")]
7159 pub access_result: Option<serde_json::Value>,
7160 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
7161 #[serde(rename = "action")]
7162 #[serde(skip_serializing_if = "Option::is_none")]
7163 pub action: Option<String>,
7164 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
7165 #[serde(rename = "action_id")]
7166 #[serde(skip_serializing_if = "Option::is_none")]
7167 pub action_id: Option<i64>,
7168 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
7169 #[serde(rename = "activity_id")]
7170 #[serde(skip_serializing_if = "Option::is_none")]
7171 pub activity_id: Option<i64>,
7172 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
7173 #[serde(rename = "activity_name")]
7174 #[serde(skip_serializing_if = "Option::is_none")]
7175 pub activity_name: Option<String>,
7176 #[doc = "Actor\n\nThe actor that performed the activity on the target file.\n\nrequired"]
7177 #[serde(rename = "actor")]
7178 #[serde(skip_serializing_if = "Option::is_none")]
7179 pub actor: Option<Box<Actor>>,
7180 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
7181 #[serde(rename = "api")]
7182 #[serde(skip_serializing_if = "Option::is_none")]
7183 pub api: Option<Box<Api>>,
7184 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
7185 #[serde(rename = "attacks")]
7186 #[serde(skip_serializing_if = "Option::is_none")]
7187 pub attacks: Option<Vec<Attack>>,
7188 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
7189 #[serde(rename = "authorizations")]
7190 #[serde(skip_serializing_if = "Option::is_none")]
7191 pub authorizations: Option<Vec<Authorization>>,
7192 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
7193 #[serde(rename = "category_name")]
7194 #[serde(skip_serializing_if = "Option::is_none")]
7195 pub category_name: Option<String>,
7196 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
7197 #[serde(rename = "category_uid")]
7198 #[serde(skip_serializing_if = "Option::is_none")]
7199 pub category_uid: Option<i64>,
7200 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>File Hosting Activity</code>.\n\noptional"]
7201 #[serde(rename = "class_name")]
7202 #[serde(skip_serializing_if = "Option::is_none")]
7203 pub class_name: Option<String>,
7204 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
7205 #[serde(rename = "class_uid")]
7206 #[serde(skip_serializing_if = "Option::is_none")]
7207 pub class_uid: Option<i64>,
7208 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
7209 #[serde(rename = "cloud")]
7210 #[serde(skip_serializing_if = "Option::is_none")]
7211 pub cloud: Option<Box<Cloud>>,
7212 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7213 #[serde(rename = "confidence")]
7214 #[serde(skip_serializing_if = "Option::is_none")]
7215 pub confidence: Option<String>,
7216 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
7217 #[serde(rename = "confidence_id")]
7218 #[serde(skip_serializing_if = "Option::is_none")]
7219 pub confidence_id: Option<i64>,
7220 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
7221 #[serde(rename = "confidence_score")]
7222 #[serde(skip_serializing_if = "Option::is_none")]
7223 pub confidence_score: Option<i64>,
7224 #[doc = "Connection Info\n\nThe network connection information.\n\noptional"]
7225 #[serde(rename = "connection_info")]
7226 #[serde(skip_serializing_if = "Option::is_none")]
7227 pub connection_info: Option<Box<NetworkConnectionInfo>>,
7228 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
7229 #[serde(rename = "count")]
7230 #[serde(skip_serializing_if = "Option::is_none")]
7231 pub count: Option<i64>,
7232 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
7233 #[serde(rename = "device")]
7234 #[serde(skip_serializing_if = "Option::is_none")]
7235 pub device: Option<Box<Device>>,
7236 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7237 #[serde(rename = "disposition")]
7238 #[serde(skip_serializing_if = "Option::is_none")]
7239 pub disposition: Option<String>,
7240 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
7241 #[serde(rename = "disposition_id")]
7242 #[serde(skip_serializing_if = "Option::is_none")]
7243 pub disposition_id: Option<i64>,
7244 #[doc = "Destination Endpoint\n\nThe endpoint that received the activity on the target file.\n\nrecommended"]
7245 #[serde(rename = "dst_endpoint")]
7246 #[serde(skip_serializing_if = "Option::is_none")]
7247 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
7248 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
7249 #[serde(rename = "duration")]
7250 #[serde(skip_serializing_if = "Option::is_none")]
7251 pub duration: Option<i64>,
7252 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7253 #[serde(rename = "end_time")]
7254 #[serde(skip_serializing_if = "Option::is_none")]
7255 pub end_time: Option<i64>,
7256 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7257 #[serde(rename = "end_time_dt")]
7258 #[serde(skip_serializing_if = "Option::is_none")]
7259 pub end_time_dt: Option<String>,
7260 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
7261 #[serde(rename = "enrichments")]
7262 #[serde(skip_serializing_if = "Option::is_none")]
7263 pub enrichments: Option<Vec<Enrichment>>,
7264 #[doc = "Expiration Time\n\nThe share expiration time.\n\noptional"]
7265 #[serde(rename = "expiration_time")]
7266 #[serde(skip_serializing_if = "Option::is_none")]
7267 pub expiration_time: Option<i64>,
7268 #[doc = "Expiration Time\n\nThe share expiration time.\n\noptional"]
7269 #[serde(rename = "expiration_time_dt")]
7270 #[serde(skip_serializing_if = "Option::is_none")]
7271 pub expiration_time_dt: Option<String>,
7272 #[doc = "File\n\nThe file that is the target of the activity.\n\nrequired"]
7273 #[serde(rename = "file")]
7274 #[serde(skip_serializing_if = "Option::is_none")]
7275 pub file: Option<Box<File>>,
7276 #[doc = "File Result\n\nThe resulting file object when the activity was allowed and successful.\n\noptional"]
7277 #[serde(rename = "file_result")]
7278 #[serde(skip_serializing_if = "Option::is_none")]
7279 pub file_result: Option<Box<File>>,
7280 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
7281 #[serde(rename = "firewall_rule")]
7282 #[serde(skip_serializing_if = "Option::is_none")]
7283 pub firewall_rule: Option<Box<FirewallRule>>,
7284 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\nrecommended"]
7285 #[serde(rename = "http_request")]
7286 #[serde(skip_serializing_if = "Option::is_none")]
7287 pub http_request: Option<Box<HttpRequest>>,
7288 #[doc = "HTTP Response\n\nDetails about the HTTP response, if available.\n\noptional"]
7289 #[serde(rename = "http_response")]
7290 #[serde(skip_serializing_if = "Option::is_none")]
7291 pub http_response: Option<Box<HttpResponse>>,
7292 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
7293 #[serde(rename = "is_alert")]
7294 #[serde(skip_serializing_if = "Option::is_none")]
7295 pub is_alert: Option<bool>,
7296 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
7297 #[serde(rename = "malware")]
7298 #[serde(skip_serializing_if = "Option::is_none")]
7299 pub malware: Option<Vec<Malware>>,
7300 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
7301 #[serde(rename = "malware_scan_info")]
7302 #[serde(skip_serializing_if = "Option::is_none")]
7303 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
7304 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
7305 #[serde(rename = "message")]
7306 #[serde(skip_serializing_if = "Option::is_none")]
7307 pub message: Option<String>,
7308 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
7309 #[serde(rename = "metadata")]
7310 #[serde(skip_serializing_if = "Option::is_none")]
7311 pub metadata: Option<Box<Metadata>>,
7312 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
7313 #[serde(rename = "observables")]
7314 #[serde(skip_serializing_if = "Option::is_none")]
7315 pub observables: Option<Vec<Observable>>,
7316 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
7317 #[serde(rename = "osint")]
7318 #[serde(skip_serializing_if = "Option::is_none")]
7319 pub osint: Option<Vec<Osint>>,
7320 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
7321 #[serde(rename = "policy")]
7322 #[serde(skip_serializing_if = "Option::is_none")]
7323 pub policy: Option<Box<Policy>>,
7324 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
7325 #[serde(rename = "raw_data")]
7326 #[serde(skip_serializing_if = "Option::is_none")]
7327 pub raw_data: Option<String>,
7328 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
7329 #[serde(rename = "raw_data_hash")]
7330 #[serde(skip_serializing_if = "Option::is_none")]
7331 pub raw_data_hash: Option<Box<Fingerprint>>,
7332 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
7333 #[serde(rename = "raw_data_size")]
7334 #[serde(skip_serializing_if = "Option::is_none")]
7335 pub raw_data_size: Option<i64>,
7336 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
7337 #[serde(rename = "risk_details")]
7338 #[serde(skip_serializing_if = "Option::is_none")]
7339 pub risk_details: Option<String>,
7340 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
7341 #[serde(rename = "risk_level")]
7342 #[serde(skip_serializing_if = "Option::is_none")]
7343 pub risk_level: Option<String>,
7344 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
7345 #[serde(rename = "risk_level_id")]
7346 #[serde(skip_serializing_if = "Option::is_none")]
7347 pub risk_level_id: Option<i64>,
7348 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
7349 #[serde(rename = "risk_score")]
7350 #[serde(skip_serializing_if = "Option::is_none")]
7351 pub risk_score: Option<i64>,
7352 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
7353 #[serde(rename = "severity")]
7354 #[serde(skip_serializing_if = "Option::is_none")]
7355 pub severity: Option<String>,
7356 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
7357 #[serde(rename = "severity_id")]
7358 #[serde(skip_serializing_if = "Option::is_none")]
7359 pub severity_id: Option<i64>,
7360 #[doc = "Share\n\nThe share name.\n\noptional"]
7361 #[serde(rename = "share")]
7362 #[serde(skip_serializing_if = "Option::is_none")]
7363 pub share: Option<String>,
7364 #[doc = "Share Type\n\nThe share type, normalized to the caption of the share_type_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7365 #[serde(rename = "share_type")]
7366 #[serde(skip_serializing_if = "Option::is_none")]
7367 pub share_type: Option<String>,
7368 #[doc = "Share Type ID\n\nThe normalized identifier of the share type.\n\noptional"]
7369 #[serde(rename = "share_type_id")]
7370 #[serde(skip_serializing_if = "Option::is_none")]
7371 pub share_type_id: Option<i64>,
7372 #[doc = "Source Endpoint\n\nThe endpoint that performed the activity on the target file.\n\nrequired"]
7373 #[serde(rename = "src_endpoint")]
7374 #[serde(skip_serializing_if = "Option::is_none")]
7375 pub src_endpoint: Option<Box<NetworkEndpoint>>,
7376 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7377 #[serde(rename = "start_time")]
7378 #[serde(skip_serializing_if = "Option::is_none")]
7379 pub start_time: Option<i64>,
7380 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7381 #[serde(rename = "start_time_dt")]
7382 #[serde(skip_serializing_if = "Option::is_none")]
7383 pub start_time_dt: Option<String>,
7384 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
7385 #[serde(rename = "status")]
7386 #[serde(skip_serializing_if = "Option::is_none")]
7387 pub status: Option<String>,
7388 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
7389 #[serde(rename = "status_code")]
7390 #[serde(skip_serializing_if = "Option::is_none")]
7391 pub status_code: Option<String>,
7392 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
7393 #[serde(rename = "status_detail")]
7394 #[serde(skip_serializing_if = "Option::is_none")]
7395 pub status_detail: Option<String>,
7396 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
7397 #[serde(rename = "status_id")]
7398 #[serde(skip_serializing_if = "Option::is_none")]
7399 pub status_id: Option<i64>,
7400 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
7401 #[serde(rename = "time")]
7402 #[serde(skip_serializing_if = "Option::is_none")]
7403 pub time: Option<i64>,
7404 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
7405 #[serde(rename = "time_dt")]
7406 #[serde(skip_serializing_if = "Option::is_none")]
7407 pub time_dt: Option<String>,
7408 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
7409 #[serde(rename = "timezone_offset")]
7410 #[serde(skip_serializing_if = "Option::is_none")]
7411 pub timezone_offset: Option<i64>,
7412 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
7413 #[serde(rename = "type_name")]
7414 #[serde(skip_serializing_if = "Option::is_none")]
7415 pub type_name: Option<String>,
7416 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
7417 #[serde(rename = "type_uid")]
7418 #[serde(skip_serializing_if = "Option::is_none")]
7419 pub type_uid: Option<i64>,
7420 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
7421 #[serde(rename = "unmapped")]
7422 #[serde(skip_serializing_if = "Option::is_none")]
7423 pub unmapped: Option<serde_json::Value>,
7424}
7425#[doc = "File Query\n\nFile Query events report information about files that are present on the system.\n\n[UID:5007] Category: discovery | Name: file_query"]
7426#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
7427#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
7428#[serde(default)]
7429#[non_exhaustive]
7430pub struct FileQuery {
7431 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
7432 #[serde(rename = "action")]
7433 #[serde(skip_serializing_if = "Option::is_none")]
7434 pub action: Option<String>,
7435 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
7436 #[serde(rename = "action_id")]
7437 #[serde(skip_serializing_if = "Option::is_none")]
7438 pub action_id: Option<i64>,
7439 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
7440 #[serde(rename = "activity_id")]
7441 #[serde(skip_serializing_if = "Option::is_none")]
7442 pub activity_id: Option<i64>,
7443 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
7444 #[serde(rename = "activity_name")]
7445 #[serde(skip_serializing_if = "Option::is_none")]
7446 pub activity_name: Option<String>,
7447 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
7448 #[serde(rename = "actor")]
7449 #[serde(skip_serializing_if = "Option::is_none")]
7450 pub actor: Option<Box<Actor>>,
7451 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
7452 #[serde(rename = "api")]
7453 #[serde(skip_serializing_if = "Option::is_none")]
7454 pub api: Option<Box<Api>>,
7455 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
7456 #[serde(rename = "attacks")]
7457 #[serde(skip_serializing_if = "Option::is_none")]
7458 pub attacks: Option<Vec<Attack>>,
7459 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
7460 #[serde(rename = "authorizations")]
7461 #[serde(skip_serializing_if = "Option::is_none")]
7462 pub authorizations: Option<Vec<Authorization>>,
7463 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
7464 #[serde(rename = "category_name")]
7465 #[serde(skip_serializing_if = "Option::is_none")]
7466 pub category_name: Option<String>,
7467 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
7468 #[serde(rename = "category_uid")]
7469 #[serde(skip_serializing_if = "Option::is_none")]
7470 pub category_uid: Option<i64>,
7471 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>File Query</code>.\n\noptional"]
7472 #[serde(rename = "class_name")]
7473 #[serde(skip_serializing_if = "Option::is_none")]
7474 pub class_name: Option<String>,
7475 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
7476 #[serde(rename = "class_uid")]
7477 #[serde(skip_serializing_if = "Option::is_none")]
7478 pub class_uid: Option<i64>,
7479 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
7480 #[serde(rename = "cloud")]
7481 #[serde(skip_serializing_if = "Option::is_none")]
7482 pub cloud: Option<Box<Cloud>>,
7483 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7484 #[serde(rename = "confidence")]
7485 #[serde(skip_serializing_if = "Option::is_none")]
7486 pub confidence: Option<String>,
7487 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
7488 #[serde(rename = "confidence_id")]
7489 #[serde(skip_serializing_if = "Option::is_none")]
7490 pub confidence_id: Option<i64>,
7491 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
7492 #[serde(rename = "confidence_score")]
7493 #[serde(skip_serializing_if = "Option::is_none")]
7494 pub confidence_score: Option<i64>,
7495 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
7496 #[serde(rename = "count")]
7497 #[serde(skip_serializing_if = "Option::is_none")]
7498 pub count: Option<i64>,
7499 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
7500 #[serde(rename = "device")]
7501 #[serde(skip_serializing_if = "Option::is_none")]
7502 pub device: Option<Box<Device>>,
7503 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7504 #[serde(rename = "disposition")]
7505 #[serde(skip_serializing_if = "Option::is_none")]
7506 pub disposition: Option<String>,
7507 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
7508 #[serde(rename = "disposition_id")]
7509 #[serde(skip_serializing_if = "Option::is_none")]
7510 pub disposition_id: Option<i64>,
7511 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
7512 #[serde(rename = "duration")]
7513 #[serde(skip_serializing_if = "Option::is_none")]
7514 pub duration: Option<i64>,
7515 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7516 #[serde(rename = "end_time")]
7517 #[serde(skip_serializing_if = "Option::is_none")]
7518 pub end_time: Option<i64>,
7519 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7520 #[serde(rename = "end_time_dt")]
7521 #[serde(skip_serializing_if = "Option::is_none")]
7522 pub end_time_dt: Option<String>,
7523 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
7524 #[serde(rename = "enrichments")]
7525 #[serde(skip_serializing_if = "Option::is_none")]
7526 pub enrichments: Option<Vec<Enrichment>>,
7527 #[doc = "File\n\nThe file that is the target of the query.\n\nrequired"]
7528 #[serde(rename = "file")]
7529 #[serde(skip_serializing_if = "Option::is_none")]
7530 pub file: Option<Box<File>>,
7531 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
7532 #[serde(rename = "firewall_rule")]
7533 #[serde(skip_serializing_if = "Option::is_none")]
7534 pub firewall_rule: Option<Box<FirewallRule>>,
7535 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
7536 #[serde(rename = "is_alert")]
7537 #[serde(skip_serializing_if = "Option::is_none")]
7538 pub is_alert: Option<bool>,
7539 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
7540 #[serde(rename = "malware")]
7541 #[serde(skip_serializing_if = "Option::is_none")]
7542 pub malware: Option<Vec<Malware>>,
7543 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
7544 #[serde(rename = "malware_scan_info")]
7545 #[serde(skip_serializing_if = "Option::is_none")]
7546 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
7547 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
7548 #[serde(rename = "message")]
7549 #[serde(skip_serializing_if = "Option::is_none")]
7550 pub message: Option<String>,
7551 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
7552 #[serde(rename = "metadata")]
7553 #[serde(skip_serializing_if = "Option::is_none")]
7554 pub metadata: Option<Box<Metadata>>,
7555 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
7556 #[serde(rename = "observables")]
7557 #[serde(skip_serializing_if = "Option::is_none")]
7558 pub observables: Option<Vec<Observable>>,
7559 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
7560 #[serde(rename = "osint")]
7561 #[serde(skip_serializing_if = "Option::is_none")]
7562 pub osint: Option<Vec<Osint>>,
7563 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
7564 #[serde(rename = "policy")]
7565 #[serde(skip_serializing_if = "Option::is_none")]
7566 pub policy: Option<Box<Policy>>,
7567 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
7568 #[serde(rename = "query_info")]
7569 #[serde(skip_serializing_if = "Option::is_none")]
7570 pub query_info: Option<Box<QueryInfo>>,
7571 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
7572 #[serde(rename = "query_result")]
7573 #[serde(skip_serializing_if = "Option::is_none")]
7574 pub query_result: Option<String>,
7575 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
7576 #[serde(rename = "query_result_id")]
7577 #[serde(skip_serializing_if = "Option::is_none")]
7578 pub query_result_id: Option<i64>,
7579 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
7580 #[serde(rename = "raw_data")]
7581 #[serde(skip_serializing_if = "Option::is_none")]
7582 pub raw_data: Option<String>,
7583 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
7584 #[serde(rename = "raw_data_hash")]
7585 #[serde(skip_serializing_if = "Option::is_none")]
7586 pub raw_data_hash: Option<Box<Fingerprint>>,
7587 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
7588 #[serde(rename = "raw_data_size")]
7589 #[serde(skip_serializing_if = "Option::is_none")]
7590 pub raw_data_size: Option<i64>,
7591 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
7592 #[serde(rename = "risk_details")]
7593 #[serde(skip_serializing_if = "Option::is_none")]
7594 pub risk_details: Option<String>,
7595 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
7596 #[serde(rename = "risk_level")]
7597 #[serde(skip_serializing_if = "Option::is_none")]
7598 pub risk_level: Option<String>,
7599 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
7600 #[serde(rename = "risk_level_id")]
7601 #[serde(skip_serializing_if = "Option::is_none")]
7602 pub risk_level_id: Option<i64>,
7603 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
7604 #[serde(rename = "risk_score")]
7605 #[serde(skip_serializing_if = "Option::is_none")]
7606 pub risk_score: Option<i64>,
7607 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
7608 #[serde(rename = "severity")]
7609 #[serde(skip_serializing_if = "Option::is_none")]
7610 pub severity: Option<String>,
7611 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
7612 #[serde(rename = "severity_id")]
7613 #[serde(skip_serializing_if = "Option::is_none")]
7614 pub severity_id: Option<i64>,
7615 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7616 #[serde(rename = "start_time")]
7617 #[serde(skip_serializing_if = "Option::is_none")]
7618 pub start_time: Option<i64>,
7619 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7620 #[serde(rename = "start_time_dt")]
7621 #[serde(skip_serializing_if = "Option::is_none")]
7622 pub start_time_dt: Option<String>,
7623 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
7624 #[serde(rename = "status")]
7625 #[serde(skip_serializing_if = "Option::is_none")]
7626 pub status: Option<String>,
7627 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
7628 #[serde(rename = "status_code")]
7629 #[serde(skip_serializing_if = "Option::is_none")]
7630 pub status_code: Option<String>,
7631 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
7632 #[serde(rename = "status_detail")]
7633 #[serde(skip_serializing_if = "Option::is_none")]
7634 pub status_detail: Option<String>,
7635 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
7636 #[serde(rename = "status_id")]
7637 #[serde(skip_serializing_if = "Option::is_none")]
7638 pub status_id: Option<i64>,
7639 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
7640 #[serde(rename = "time")]
7641 #[serde(skip_serializing_if = "Option::is_none")]
7642 pub time: Option<i64>,
7643 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
7644 #[serde(rename = "time_dt")]
7645 #[serde(skip_serializing_if = "Option::is_none")]
7646 pub time_dt: Option<String>,
7647 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
7648 #[serde(rename = "timezone_offset")]
7649 #[serde(skip_serializing_if = "Option::is_none")]
7650 pub timezone_offset: Option<i64>,
7651 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
7652 #[serde(rename = "type_name")]
7653 #[serde(skip_serializing_if = "Option::is_none")]
7654 pub type_name: Option<String>,
7655 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
7656 #[serde(rename = "type_uid")]
7657 #[serde(skip_serializing_if = "Option::is_none")]
7658 pub type_uid: Option<i64>,
7659 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
7660 #[serde(rename = "unmapped")]
7661 #[serde(skip_serializing_if = "Option::is_none")]
7662 pub unmapped: Option<serde_json::Value>,
7663}
7664#[doc = "File Remediation Activity\n\nFile Remediation Activity events report on attempts at remediating files. It follows the MITRE countermeasures defined by the D3FEND™ <a target='_blank' href='https://d3fend.mitre.org/'>Matrix</a>. Sub-techniques will include File, such as File Removal or Restore File.\n\n[UID:7002] Category: remediation | Name: file_remediation_activity"]
7665#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
7666#[serde(default)]
7667#[non_exhaustive]
7668pub struct FileRemediationActivity {
7669 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
7670 #[serde(rename = "action")]
7671 #[serde(skip_serializing_if = "Option::is_none")]
7672 pub action: Option<String>,
7673 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
7674 #[serde(rename = "action_id")]
7675 #[serde(skip_serializing_if = "Option::is_none")]
7676 pub action_id: Option<i64>,
7677 #[doc = "Activity ID\n\nMatches the MITRE D3FEND™ Tactic. Note: the Model and Detect Tactics are not supported as remediations by the OCSF Remediation event class.\n\nrequired"]
7678 #[serde(rename = "activity_id")]
7679 #[serde(skip_serializing_if = "Option::is_none")]
7680 pub activity_id: Option<i64>,
7681 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
7682 #[serde(rename = "activity_name")]
7683 #[serde(skip_serializing_if = "Option::is_none")]
7684 pub activity_name: Option<String>,
7685 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
7686 #[serde(rename = "actor")]
7687 #[serde(skip_serializing_if = "Option::is_none")]
7688 pub actor: Option<Box<Actor>>,
7689 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
7690 #[serde(rename = "api")]
7691 #[serde(skip_serializing_if = "Option::is_none")]
7692 pub api: Option<Box<Api>>,
7693 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
7694 #[serde(rename = "attacks")]
7695 #[serde(skip_serializing_if = "Option::is_none")]
7696 pub attacks: Option<Vec<Attack>>,
7697 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
7698 #[serde(rename = "authorizations")]
7699 #[serde(skip_serializing_if = "Option::is_none")]
7700 pub authorizations: Option<Vec<Authorization>>,
7701 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Remediation</code>.\n\noptional"]
7702 #[serde(rename = "category_name")]
7703 #[serde(skip_serializing_if = "Option::is_none")]
7704 pub category_name: Option<String>,
7705 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
7706 #[serde(rename = "category_uid")]
7707 #[serde(skip_serializing_if = "Option::is_none")]
7708 pub category_uid: Option<i64>,
7709 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>File Remediation Activity</code>.\n\noptional"]
7710 #[serde(rename = "class_name")]
7711 #[serde(skip_serializing_if = "Option::is_none")]
7712 pub class_name: Option<String>,
7713 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
7714 #[serde(rename = "class_uid")]
7715 #[serde(skip_serializing_if = "Option::is_none")]
7716 pub class_uid: Option<i64>,
7717 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
7718 #[serde(rename = "cloud")]
7719 #[serde(skip_serializing_if = "Option::is_none")]
7720 pub cloud: Option<Box<Cloud>>,
7721 #[doc = "Command UID\n\nThe unique identifier of the remediation command that pertains to this event.\n\nrequired"]
7722 #[serde(rename = "command_uid")]
7723 #[serde(skip_serializing_if = "Option::is_none")]
7724 pub command_uid: Option<String>,
7725 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7726 #[serde(rename = "confidence")]
7727 #[serde(skip_serializing_if = "Option::is_none")]
7728 pub confidence: Option<String>,
7729 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
7730 #[serde(rename = "confidence_id")]
7731 #[serde(skip_serializing_if = "Option::is_none")]
7732 pub confidence_id: Option<i64>,
7733 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
7734 #[serde(rename = "confidence_score")]
7735 #[serde(skip_serializing_if = "Option::is_none")]
7736 pub confidence_score: Option<i64>,
7737 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
7738 #[serde(rename = "count")]
7739 #[serde(skip_serializing_if = "Option::is_none")]
7740 pub count: Option<i64>,
7741 #[doc = "Countermeasures\n\nThe MITRE D3FEND™ Matrix Countermeasures associated with a remediation.\n\nrecommended"]
7742 #[serde(rename = "countermeasures")]
7743 #[serde(skip_serializing_if = "Option::is_none")]
7744 pub countermeasures: Option<Vec<D3fend>>,
7745 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
7746 #[serde(rename = "device")]
7747 #[serde(skip_serializing_if = "Option::is_none")]
7748 pub device: Option<Box<Device>>,
7749 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7750 #[serde(rename = "disposition")]
7751 #[serde(skip_serializing_if = "Option::is_none")]
7752 pub disposition: Option<String>,
7753 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
7754 #[serde(rename = "disposition_id")]
7755 #[serde(skip_serializing_if = "Option::is_none")]
7756 pub disposition_id: Option<i64>,
7757 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
7758 #[serde(rename = "duration")]
7759 #[serde(skip_serializing_if = "Option::is_none")]
7760 pub duration: Option<i64>,
7761 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7762 #[serde(rename = "end_time")]
7763 #[serde(skip_serializing_if = "Option::is_none")]
7764 pub end_time: Option<i64>,
7765 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7766 #[serde(rename = "end_time_dt")]
7767 #[serde(skip_serializing_if = "Option::is_none")]
7768 pub end_time_dt: Option<String>,
7769 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
7770 #[serde(rename = "enrichments")]
7771 #[serde(skip_serializing_if = "Option::is_none")]
7772 pub enrichments: Option<Vec<Enrichment>>,
7773 #[doc = "File\n\nThe file that pertains to the remediation event.\n\nrequired"]
7774 #[serde(rename = "file")]
7775 #[serde(skip_serializing_if = "Option::is_none")]
7776 pub file: Option<Box<File>>,
7777 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
7778 #[serde(rename = "firewall_rule")]
7779 #[serde(skip_serializing_if = "Option::is_none")]
7780 pub firewall_rule: Option<Box<FirewallRule>>,
7781 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
7782 #[serde(rename = "is_alert")]
7783 #[serde(skip_serializing_if = "Option::is_none")]
7784 pub is_alert: Option<bool>,
7785 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
7786 #[serde(rename = "malware")]
7787 #[serde(skip_serializing_if = "Option::is_none")]
7788 pub malware: Option<Vec<Malware>>,
7789 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
7790 #[serde(rename = "malware_scan_info")]
7791 #[serde(skip_serializing_if = "Option::is_none")]
7792 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
7793 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
7794 #[serde(rename = "message")]
7795 #[serde(skip_serializing_if = "Option::is_none")]
7796 pub message: Option<String>,
7797 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
7798 #[serde(rename = "metadata")]
7799 #[serde(skip_serializing_if = "Option::is_none")]
7800 pub metadata: Option<Box<Metadata>>,
7801 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
7802 #[serde(rename = "observables")]
7803 #[serde(skip_serializing_if = "Option::is_none")]
7804 pub observables: Option<Vec<Observable>>,
7805 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
7806 #[serde(rename = "osint")]
7807 #[serde(skip_serializing_if = "Option::is_none")]
7808 pub osint: Option<Vec<Osint>>,
7809 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
7810 #[serde(rename = "policy")]
7811 #[serde(skip_serializing_if = "Option::is_none")]
7812 pub policy: Option<Box<Policy>>,
7813 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
7814 #[serde(rename = "raw_data")]
7815 #[serde(skip_serializing_if = "Option::is_none")]
7816 pub raw_data: Option<String>,
7817 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
7818 #[serde(rename = "raw_data_hash")]
7819 #[serde(skip_serializing_if = "Option::is_none")]
7820 pub raw_data_hash: Option<Box<Fingerprint>>,
7821 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
7822 #[serde(rename = "raw_data_size")]
7823 #[serde(skip_serializing_if = "Option::is_none")]
7824 pub raw_data_size: Option<i64>,
7825 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
7826 #[serde(rename = "remediation")]
7827 #[serde(skip_serializing_if = "Option::is_none")]
7828 pub remediation: Option<Box<Remediation>>,
7829 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
7830 #[serde(rename = "risk_details")]
7831 #[serde(skip_serializing_if = "Option::is_none")]
7832 pub risk_details: Option<String>,
7833 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
7834 #[serde(rename = "risk_level")]
7835 #[serde(skip_serializing_if = "Option::is_none")]
7836 pub risk_level: Option<String>,
7837 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
7838 #[serde(rename = "risk_level_id")]
7839 #[serde(skip_serializing_if = "Option::is_none")]
7840 pub risk_level_id: Option<i64>,
7841 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
7842 #[serde(rename = "risk_score")]
7843 #[serde(skip_serializing_if = "Option::is_none")]
7844 pub risk_score: Option<i64>,
7845 #[doc = "Scan\n\nThe remediation scan that pertains to this event.\n\noptional"]
7846 #[serde(rename = "scan")]
7847 #[serde(skip_serializing_if = "Option::is_none")]
7848 pub scan: Option<Box<Scan>>,
7849 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
7850 #[serde(rename = "severity")]
7851 #[serde(skip_serializing_if = "Option::is_none")]
7852 pub severity: Option<String>,
7853 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
7854 #[serde(rename = "severity_id")]
7855 #[serde(skip_serializing_if = "Option::is_none")]
7856 pub severity_id: Option<i64>,
7857 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7858 #[serde(rename = "start_time")]
7859 #[serde(skip_serializing_if = "Option::is_none")]
7860 pub start_time: Option<i64>,
7861 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
7862 #[serde(rename = "start_time_dt")]
7863 #[serde(skip_serializing_if = "Option::is_none")]
7864 pub start_time_dt: Option<String>,
7865 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
7866 #[serde(rename = "status")]
7867 #[serde(skip_serializing_if = "Option::is_none")]
7868 pub status: Option<String>,
7869 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
7870 #[serde(rename = "status_code")]
7871 #[serde(skip_serializing_if = "Option::is_none")]
7872 pub status_code: Option<String>,
7873 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
7874 #[serde(rename = "status_detail")]
7875 #[serde(skip_serializing_if = "Option::is_none")]
7876 pub status_detail: Option<String>,
7877 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
7878 #[serde(rename = "status_id")]
7879 #[serde(skip_serializing_if = "Option::is_none")]
7880 pub status_id: Option<i64>,
7881 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
7882 #[serde(rename = "time")]
7883 #[serde(skip_serializing_if = "Option::is_none")]
7884 pub time: Option<i64>,
7885 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
7886 #[serde(rename = "time_dt")]
7887 #[serde(skip_serializing_if = "Option::is_none")]
7888 pub time_dt: Option<String>,
7889 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
7890 #[serde(rename = "timezone_offset")]
7891 #[serde(skip_serializing_if = "Option::is_none")]
7892 pub timezone_offset: Option<i64>,
7893 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
7894 #[serde(rename = "type_name")]
7895 #[serde(skip_serializing_if = "Option::is_none")]
7896 pub type_name: Option<String>,
7897 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
7898 #[serde(rename = "type_uid")]
7899 #[serde(skip_serializing_if = "Option::is_none")]
7900 pub type_uid: Option<i64>,
7901 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
7902 #[serde(rename = "unmapped")]
7903 #[serde(skip_serializing_if = "Option::is_none")]
7904 pub unmapped: Option<serde_json::Value>,
7905}
7906#[doc = "Folder Query\n\nFolder Query events report information about folders that are present on the system.\n\n[UID:5008] Category: discovery | Name: folder_query"]
7907#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
7908#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
7909#[serde(default)]
7910#[non_exhaustive]
7911pub struct FolderQuery {
7912 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
7913 #[serde(rename = "action")]
7914 #[serde(skip_serializing_if = "Option::is_none")]
7915 pub action: Option<String>,
7916 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
7917 #[serde(rename = "action_id")]
7918 #[serde(skip_serializing_if = "Option::is_none")]
7919 pub action_id: Option<i64>,
7920 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
7921 #[serde(rename = "activity_id")]
7922 #[serde(skip_serializing_if = "Option::is_none")]
7923 pub activity_id: Option<i64>,
7924 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
7925 #[serde(rename = "activity_name")]
7926 #[serde(skip_serializing_if = "Option::is_none")]
7927 pub activity_name: Option<String>,
7928 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
7929 #[serde(rename = "actor")]
7930 #[serde(skip_serializing_if = "Option::is_none")]
7931 pub actor: Option<Box<Actor>>,
7932 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
7933 #[serde(rename = "api")]
7934 #[serde(skip_serializing_if = "Option::is_none")]
7935 pub api: Option<Box<Api>>,
7936 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
7937 #[serde(rename = "attacks")]
7938 #[serde(skip_serializing_if = "Option::is_none")]
7939 pub attacks: Option<Vec<Attack>>,
7940 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
7941 #[serde(rename = "authorizations")]
7942 #[serde(skip_serializing_if = "Option::is_none")]
7943 pub authorizations: Option<Vec<Authorization>>,
7944 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
7945 #[serde(rename = "category_name")]
7946 #[serde(skip_serializing_if = "Option::is_none")]
7947 pub category_name: Option<String>,
7948 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
7949 #[serde(rename = "category_uid")]
7950 #[serde(skip_serializing_if = "Option::is_none")]
7951 pub category_uid: Option<i64>,
7952 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Folder Query</code>.\n\noptional"]
7953 #[serde(rename = "class_name")]
7954 #[serde(skip_serializing_if = "Option::is_none")]
7955 pub class_name: Option<String>,
7956 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
7957 #[serde(rename = "class_uid")]
7958 #[serde(skip_serializing_if = "Option::is_none")]
7959 pub class_uid: Option<i64>,
7960 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
7961 #[serde(rename = "cloud")]
7962 #[serde(skip_serializing_if = "Option::is_none")]
7963 pub cloud: Option<Box<Cloud>>,
7964 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7965 #[serde(rename = "confidence")]
7966 #[serde(skip_serializing_if = "Option::is_none")]
7967 pub confidence: Option<String>,
7968 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
7969 #[serde(rename = "confidence_id")]
7970 #[serde(skip_serializing_if = "Option::is_none")]
7971 pub confidence_id: Option<i64>,
7972 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
7973 #[serde(rename = "confidence_score")]
7974 #[serde(skip_serializing_if = "Option::is_none")]
7975 pub confidence_score: Option<i64>,
7976 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
7977 #[serde(rename = "count")]
7978 #[serde(skip_serializing_if = "Option::is_none")]
7979 pub count: Option<i64>,
7980 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
7981 #[serde(rename = "device")]
7982 #[serde(skip_serializing_if = "Option::is_none")]
7983 pub device: Option<Box<Device>>,
7984 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
7985 #[serde(rename = "disposition")]
7986 #[serde(skip_serializing_if = "Option::is_none")]
7987 pub disposition: Option<String>,
7988 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
7989 #[serde(rename = "disposition_id")]
7990 #[serde(skip_serializing_if = "Option::is_none")]
7991 pub disposition_id: Option<i64>,
7992 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
7993 #[serde(rename = "duration")]
7994 #[serde(skip_serializing_if = "Option::is_none")]
7995 pub duration: Option<i64>,
7996 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
7997 #[serde(rename = "end_time")]
7998 #[serde(skip_serializing_if = "Option::is_none")]
7999 pub end_time: Option<i64>,
8000 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8001 #[serde(rename = "end_time_dt")]
8002 #[serde(skip_serializing_if = "Option::is_none")]
8003 pub end_time_dt: Option<String>,
8004 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
8005 #[serde(rename = "enrichments")]
8006 #[serde(skip_serializing_if = "Option::is_none")]
8007 pub enrichments: Option<Vec<Enrichment>>,
8008 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
8009 #[serde(rename = "firewall_rule")]
8010 #[serde(skip_serializing_if = "Option::is_none")]
8011 pub firewall_rule: Option<Box<FirewallRule>>,
8012 #[doc = "Folder\n\nThe folder that is the target of the query.\n\nrequired"]
8013 #[serde(rename = "folder")]
8014 #[serde(skip_serializing_if = "Option::is_none")]
8015 pub folder: Option<Box<File>>,
8016 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
8017 #[serde(rename = "is_alert")]
8018 #[serde(skip_serializing_if = "Option::is_none")]
8019 pub is_alert: Option<bool>,
8020 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
8021 #[serde(rename = "malware")]
8022 #[serde(skip_serializing_if = "Option::is_none")]
8023 pub malware: Option<Vec<Malware>>,
8024 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
8025 #[serde(rename = "malware_scan_info")]
8026 #[serde(skip_serializing_if = "Option::is_none")]
8027 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
8028 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
8029 #[serde(rename = "message")]
8030 #[serde(skip_serializing_if = "Option::is_none")]
8031 pub message: Option<String>,
8032 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
8033 #[serde(rename = "metadata")]
8034 #[serde(skip_serializing_if = "Option::is_none")]
8035 pub metadata: Option<Box<Metadata>>,
8036 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
8037 #[serde(rename = "observables")]
8038 #[serde(skip_serializing_if = "Option::is_none")]
8039 pub observables: Option<Vec<Observable>>,
8040 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
8041 #[serde(rename = "osint")]
8042 #[serde(skip_serializing_if = "Option::is_none")]
8043 pub osint: Option<Vec<Osint>>,
8044 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
8045 #[serde(rename = "policy")]
8046 #[serde(skip_serializing_if = "Option::is_none")]
8047 pub policy: Option<Box<Policy>>,
8048 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
8049 #[serde(rename = "query_info")]
8050 #[serde(skip_serializing_if = "Option::is_none")]
8051 pub query_info: Option<Box<QueryInfo>>,
8052 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
8053 #[serde(rename = "query_result")]
8054 #[serde(skip_serializing_if = "Option::is_none")]
8055 pub query_result: Option<String>,
8056 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
8057 #[serde(rename = "query_result_id")]
8058 #[serde(skip_serializing_if = "Option::is_none")]
8059 pub query_result_id: Option<i64>,
8060 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
8061 #[serde(rename = "raw_data")]
8062 #[serde(skip_serializing_if = "Option::is_none")]
8063 pub raw_data: Option<String>,
8064 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
8065 #[serde(rename = "raw_data_hash")]
8066 #[serde(skip_serializing_if = "Option::is_none")]
8067 pub raw_data_hash: Option<Box<Fingerprint>>,
8068 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
8069 #[serde(rename = "raw_data_size")]
8070 #[serde(skip_serializing_if = "Option::is_none")]
8071 pub raw_data_size: Option<i64>,
8072 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
8073 #[serde(rename = "risk_details")]
8074 #[serde(skip_serializing_if = "Option::is_none")]
8075 pub risk_details: Option<String>,
8076 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
8077 #[serde(rename = "risk_level")]
8078 #[serde(skip_serializing_if = "Option::is_none")]
8079 pub risk_level: Option<String>,
8080 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
8081 #[serde(rename = "risk_level_id")]
8082 #[serde(skip_serializing_if = "Option::is_none")]
8083 pub risk_level_id: Option<i64>,
8084 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
8085 #[serde(rename = "risk_score")]
8086 #[serde(skip_serializing_if = "Option::is_none")]
8087 pub risk_score: Option<i64>,
8088 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
8089 #[serde(rename = "severity")]
8090 #[serde(skip_serializing_if = "Option::is_none")]
8091 pub severity: Option<String>,
8092 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
8093 #[serde(rename = "severity_id")]
8094 #[serde(skip_serializing_if = "Option::is_none")]
8095 pub severity_id: Option<i64>,
8096 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8097 #[serde(rename = "start_time")]
8098 #[serde(skip_serializing_if = "Option::is_none")]
8099 pub start_time: Option<i64>,
8100 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8101 #[serde(rename = "start_time_dt")]
8102 #[serde(skip_serializing_if = "Option::is_none")]
8103 pub start_time_dt: Option<String>,
8104 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
8105 #[serde(rename = "status")]
8106 #[serde(skip_serializing_if = "Option::is_none")]
8107 pub status: Option<String>,
8108 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
8109 #[serde(rename = "status_code")]
8110 #[serde(skip_serializing_if = "Option::is_none")]
8111 pub status_code: Option<String>,
8112 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
8113 #[serde(rename = "status_detail")]
8114 #[serde(skip_serializing_if = "Option::is_none")]
8115 pub status_detail: Option<String>,
8116 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
8117 #[serde(rename = "status_id")]
8118 #[serde(skip_serializing_if = "Option::is_none")]
8119 pub status_id: Option<i64>,
8120 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
8121 #[serde(rename = "time")]
8122 #[serde(skip_serializing_if = "Option::is_none")]
8123 pub time: Option<i64>,
8124 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
8125 #[serde(rename = "time_dt")]
8126 #[serde(skip_serializing_if = "Option::is_none")]
8127 pub time_dt: Option<String>,
8128 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
8129 #[serde(rename = "timezone_offset")]
8130 #[serde(skip_serializing_if = "Option::is_none")]
8131 pub timezone_offset: Option<i64>,
8132 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
8133 #[serde(rename = "type_name")]
8134 #[serde(skip_serializing_if = "Option::is_none")]
8135 pub type_name: Option<String>,
8136 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
8137 #[serde(rename = "type_uid")]
8138 #[serde(skip_serializing_if = "Option::is_none")]
8139 pub type_uid: Option<i64>,
8140 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
8141 #[serde(rename = "unmapped")]
8142 #[serde(skip_serializing_if = "Option::is_none")]
8143 pub unmapped: Option<serde_json::Value>,
8144}
8145#[doc = "FTP Activity\n\nFile Transfer Protocol (FTP) Activity events report file transfers between a server and a client as seen on the network.\n\n[UID:4008] Category: network | Name: ftp_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
8146#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
8147#[serde(default)]
8148#[non_exhaustive]
8149pub struct FtpActivity {
8150 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
8151 #[serde(rename = "action")]
8152 #[serde(skip_serializing_if = "Option::is_none")]
8153 pub action: Option<String>,
8154 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
8155 #[serde(rename = "action_id")]
8156 #[serde(skip_serializing_if = "Option::is_none")]
8157 pub action_id: Option<i64>,
8158 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
8159 #[serde(rename = "activity_id")]
8160 #[serde(skip_serializing_if = "Option::is_none")]
8161 pub activity_id: Option<i64>,
8162 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
8163 #[serde(rename = "activity_name")]
8164 #[serde(skip_serializing_if = "Option::is_none")]
8165 pub activity_name: Option<String>,
8166 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
8167 #[serde(rename = "actor")]
8168 #[serde(skip_serializing_if = "Option::is_none")]
8169 pub actor: Option<Box<Actor>>,
8170 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
8171 #[serde(rename = "api")]
8172 #[serde(skip_serializing_if = "Option::is_none")]
8173 pub api: Option<Box<Api>>,
8174 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
8175 #[serde(rename = "app_name")]
8176 #[serde(skip_serializing_if = "Option::is_none")]
8177 pub app_name: Option<String>,
8178 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
8179 #[serde(rename = "attacks")]
8180 #[serde(skip_serializing_if = "Option::is_none")]
8181 pub attacks: Option<Vec<Attack>>,
8182 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
8183 #[serde(rename = "authorizations")]
8184 #[serde(skip_serializing_if = "Option::is_none")]
8185 pub authorizations: Option<Vec<Authorization>>,
8186 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
8187 #[serde(rename = "category_name")]
8188 #[serde(skip_serializing_if = "Option::is_none")]
8189 pub category_name: Option<String>,
8190 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
8191 #[serde(rename = "category_uid")]
8192 #[serde(skip_serializing_if = "Option::is_none")]
8193 pub category_uid: Option<i64>,
8194 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>FTP Activity</code>.\n\noptional"]
8195 #[serde(rename = "class_name")]
8196 #[serde(skip_serializing_if = "Option::is_none")]
8197 pub class_name: Option<String>,
8198 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
8199 #[serde(rename = "class_uid")]
8200 #[serde(skip_serializing_if = "Option::is_none")]
8201 pub class_uid: Option<i64>,
8202 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
8203 #[serde(rename = "cloud")]
8204 #[serde(skip_serializing_if = "Option::is_none")]
8205 pub cloud: Option<Box<Cloud>>,
8206 #[doc = "Response Codes\n\nThe list of return codes to the FTP command.\n\nrecommended"]
8207 #[serde(rename = "codes")]
8208 #[serde(skip_serializing_if = "Option::is_none")]
8209 pub codes: Option<Vec<i64>>,
8210 #[doc = "Command\n\nThe FTP command.\n\nrecommended"]
8211 #[serde(rename = "command")]
8212 #[serde(skip_serializing_if = "Option::is_none")]
8213 pub command: Option<String>,
8214 #[doc = "Command Responses\n\nThe list of responses to the FTP command.\n\nrecommended"]
8215 #[serde(rename = "command_responses")]
8216 #[serde(skip_serializing_if = "Option::is_none")]
8217 pub command_responses: Option<Vec<String>>,
8218 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8219 #[serde(rename = "confidence")]
8220 #[serde(skip_serializing_if = "Option::is_none")]
8221 pub confidence: Option<String>,
8222 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
8223 #[serde(rename = "confidence_id")]
8224 #[serde(skip_serializing_if = "Option::is_none")]
8225 pub confidence_id: Option<i64>,
8226 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
8227 #[serde(rename = "confidence_score")]
8228 #[serde(skip_serializing_if = "Option::is_none")]
8229 pub confidence_score: Option<i64>,
8230 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
8231 #[serde(rename = "connection_info")]
8232 #[serde(skip_serializing_if = "Option::is_none")]
8233 pub connection_info: Option<Box<NetworkConnectionInfo>>,
8234 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
8235 #[serde(rename = "count")]
8236 #[serde(skip_serializing_if = "Option::is_none")]
8237 pub count: Option<i64>,
8238 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
8239 #[serde(rename = "cumulative_traffic")]
8240 #[serde(skip_serializing_if = "Option::is_none")]
8241 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
8242 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
8243 #[serde(rename = "device")]
8244 #[serde(skip_serializing_if = "Option::is_none")]
8245 pub device: Option<Box<Device>>,
8246 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8247 #[serde(rename = "disposition")]
8248 #[serde(skip_serializing_if = "Option::is_none")]
8249 pub disposition: Option<String>,
8250 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
8251 #[serde(rename = "disposition_id")]
8252 #[serde(skip_serializing_if = "Option::is_none")]
8253 pub disposition_id: Option<i64>,
8254 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
8255 #[serde(rename = "dst_endpoint")]
8256 #[serde(skip_serializing_if = "Option::is_none")]
8257 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
8258 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
8259 #[serde(rename = "duration")]
8260 #[serde(skip_serializing_if = "Option::is_none")]
8261 pub duration: Option<i64>,
8262 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8263 #[serde(rename = "end_time")]
8264 #[serde(skip_serializing_if = "Option::is_none")]
8265 pub end_time: Option<i64>,
8266 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8267 #[serde(rename = "end_time_dt")]
8268 #[serde(skip_serializing_if = "Option::is_none")]
8269 pub end_time_dt: Option<String>,
8270 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
8271 #[serde(rename = "enrichments")]
8272 #[serde(skip_serializing_if = "Option::is_none")]
8273 pub enrichments: Option<Vec<Enrichment>>,
8274 #[doc = "File\n\nThe file that is the target of the FTP activity.\n\noptional"]
8275 #[serde(rename = "file")]
8276 #[serde(skip_serializing_if = "Option::is_none")]
8277 pub file: Option<Box<File>>,
8278 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
8279 #[serde(rename = "firewall_rule")]
8280 #[serde(skip_serializing_if = "Option::is_none")]
8281 pub firewall_rule: Option<Box<FirewallRule>>,
8282 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
8283 #[serde(rename = "is_alert")]
8284 #[serde(skip_serializing_if = "Option::is_none")]
8285 pub is_alert: Option<bool>,
8286 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
8287 #[serde(rename = "ja4_fingerprint_list")]
8288 #[serde(skip_serializing_if = "Option::is_none")]
8289 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
8290 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
8291 #[serde(rename = "load_balancer")]
8292 #[serde(skip_serializing_if = "Option::is_none")]
8293 pub load_balancer: Option<Box<LoadBalancer>>,
8294 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
8295 #[serde(rename = "malware")]
8296 #[serde(skip_serializing_if = "Option::is_none")]
8297 pub malware: Option<Vec<Malware>>,
8298 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
8299 #[serde(rename = "malware_scan_info")]
8300 #[serde(skip_serializing_if = "Option::is_none")]
8301 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
8302 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
8303 #[serde(rename = "message")]
8304 #[serde(skip_serializing_if = "Option::is_none")]
8305 pub message: Option<String>,
8306 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
8307 #[serde(rename = "metadata")]
8308 #[serde(skip_serializing_if = "Option::is_none")]
8309 pub metadata: Option<Box<Metadata>>,
8310 #[doc = "Name\n\nThe name of the data affiliated with the command.\n\nrecommended"]
8311 #[serde(rename = "name")]
8312 #[serde(skip_serializing_if = "Option::is_none")]
8313 pub name: Option<String>,
8314 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
8315 #[serde(rename = "observables")]
8316 #[serde(skip_serializing_if = "Option::is_none")]
8317 pub observables: Option<Vec<Observable>>,
8318 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
8319 #[serde(rename = "observation_point")]
8320 #[serde(skip_serializing_if = "Option::is_none")]
8321 pub observation_point: Option<String>,
8322 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
8323 #[serde(rename = "observation_point_id")]
8324 #[serde(skip_serializing_if = "Option::is_none")]
8325 pub observation_point_id: Option<i64>,
8326 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
8327 #[serde(rename = "osint")]
8328 #[serde(skip_serializing_if = "Option::is_none")]
8329 pub osint: Option<Vec<Osint>>,
8330 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
8331 #[serde(rename = "policy")]
8332 #[serde(skip_serializing_if = "Option::is_none")]
8333 pub policy: Option<Box<Policy>>,
8334 #[doc = "Port\n\nThe dynamic port established for impending data transfers.\n\nrecommended"]
8335 #[serde(rename = "port")]
8336 #[serde(skip_serializing_if = "Option::is_none")]
8337 pub port: Option<i64>,
8338 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
8339 #[serde(rename = "proxy")]
8340 #[serde(skip_serializing_if = "Option::is_none")]
8341 pub proxy: Option<Box<NetworkProxy>>,
8342 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
8343 #[serde(rename = "proxy_connection_info")]
8344 #[serde(skip_serializing_if = "Option::is_none")]
8345 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
8346 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
8347 #[serde(rename = "proxy_endpoint")]
8348 #[serde(skip_serializing_if = "Option::is_none")]
8349 pub proxy_endpoint: Option<Box<NetworkProxy>>,
8350 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
8351 #[serde(rename = "proxy_http_request")]
8352 #[serde(skip_serializing_if = "Option::is_none")]
8353 pub proxy_http_request: Option<Box<HttpRequest>>,
8354 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
8355 #[serde(rename = "proxy_http_response")]
8356 #[serde(skip_serializing_if = "Option::is_none")]
8357 pub proxy_http_response: Option<Box<HttpResponse>>,
8358 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
8359 #[serde(rename = "proxy_tls")]
8360 #[serde(skip_serializing_if = "Option::is_none")]
8361 pub proxy_tls: Option<Box<Tls>>,
8362 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
8363 #[serde(rename = "proxy_traffic")]
8364 #[serde(skip_serializing_if = "Option::is_none")]
8365 pub proxy_traffic: Option<Box<NetworkTraffic>>,
8366 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
8367 #[serde(rename = "raw_data")]
8368 #[serde(skip_serializing_if = "Option::is_none")]
8369 pub raw_data: Option<String>,
8370 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
8371 #[serde(rename = "raw_data_hash")]
8372 #[serde(skip_serializing_if = "Option::is_none")]
8373 pub raw_data_hash: Option<Box<Fingerprint>>,
8374 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
8375 #[serde(rename = "raw_data_size")]
8376 #[serde(skip_serializing_if = "Option::is_none")]
8377 pub raw_data_size: Option<i64>,
8378 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
8379 #[serde(rename = "risk_details")]
8380 #[serde(skip_serializing_if = "Option::is_none")]
8381 pub risk_details: Option<String>,
8382 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
8383 #[serde(rename = "risk_level")]
8384 #[serde(skip_serializing_if = "Option::is_none")]
8385 pub risk_level: Option<String>,
8386 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
8387 #[serde(rename = "risk_level_id")]
8388 #[serde(skip_serializing_if = "Option::is_none")]
8389 pub risk_level_id: Option<i64>,
8390 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
8391 #[serde(rename = "risk_score")]
8392 #[serde(skip_serializing_if = "Option::is_none")]
8393 pub risk_score: Option<i64>,
8394 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
8395 #[serde(rename = "severity")]
8396 #[serde(skip_serializing_if = "Option::is_none")]
8397 pub severity: Option<String>,
8398 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
8399 #[serde(rename = "severity_id")]
8400 #[serde(skip_serializing_if = "Option::is_none")]
8401 pub severity_id: Option<i64>,
8402 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
8403 #[serde(rename = "src_endpoint")]
8404 #[serde(skip_serializing_if = "Option::is_none")]
8405 pub src_endpoint: Option<Box<NetworkEndpoint>>,
8406 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8407 #[serde(rename = "start_time")]
8408 #[serde(skip_serializing_if = "Option::is_none")]
8409 pub start_time: Option<i64>,
8410 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8411 #[serde(rename = "start_time_dt")]
8412 #[serde(skip_serializing_if = "Option::is_none")]
8413 pub start_time_dt: Option<String>,
8414 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
8415 #[serde(rename = "status")]
8416 #[serde(skip_serializing_if = "Option::is_none")]
8417 pub status: Option<String>,
8418 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
8419 #[serde(rename = "status_code")]
8420 #[serde(skip_serializing_if = "Option::is_none")]
8421 pub status_code: Option<String>,
8422 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
8423 #[serde(rename = "status_detail")]
8424 #[serde(skip_serializing_if = "Option::is_none")]
8425 pub status_detail: Option<String>,
8426 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
8427 #[serde(rename = "status_id")]
8428 #[serde(skip_serializing_if = "Option::is_none")]
8429 pub status_id: Option<i64>,
8430 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
8431 #[serde(rename = "time")]
8432 #[serde(skip_serializing_if = "Option::is_none")]
8433 pub time: Option<i64>,
8434 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
8435 #[serde(rename = "time_dt")]
8436 #[serde(skip_serializing_if = "Option::is_none")]
8437 pub time_dt: Option<String>,
8438 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
8439 #[serde(rename = "timezone_offset")]
8440 #[serde(skip_serializing_if = "Option::is_none")]
8441 pub timezone_offset: Option<i64>,
8442 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
8443 #[serde(rename = "tls")]
8444 #[serde(skip_serializing_if = "Option::is_none")]
8445 pub tls: Option<Box<Tls>>,
8446 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
8447 #[serde(rename = "traffic")]
8448 #[serde(skip_serializing_if = "Option::is_none")]
8449 pub traffic: Option<Box<NetworkTraffic>>,
8450 #[doc = "Type\n\nThe type of FTP network connection (e.g. active, passive).\n\nrecommended"]
8451 #[serde(rename = "type")]
8452 #[serde(skip_serializing_if = "Option::is_none")]
8453 pub r#type: Option<String>,
8454 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
8455 #[serde(rename = "type_name")]
8456 #[serde(skip_serializing_if = "Option::is_none")]
8457 pub type_name: Option<String>,
8458 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
8459 #[serde(rename = "type_uid")]
8460 #[serde(skip_serializing_if = "Option::is_none")]
8461 pub type_uid: Option<i64>,
8462 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
8463 #[serde(rename = "unmapped")]
8464 #[serde(skip_serializing_if = "Option::is_none")]
8465 pub unmapped: Option<serde_json::Value>,
8466}
8467#[doc = "Group Management\n\nGroup Management events report management updates to a group, including updates to membership and permissions.\n\n[UID:3006] Category: iam | Name: group_management"]
8468#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
8469#[serde(default)]
8470#[non_exhaustive]
8471pub struct GroupManagement {
8472 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
8473 #[serde(rename = "action")]
8474 #[serde(skip_serializing_if = "Option::is_none")]
8475 pub action: Option<String>,
8476 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
8477 #[serde(rename = "action_id")]
8478 #[serde(skip_serializing_if = "Option::is_none")]
8479 pub action_id: Option<i64>,
8480 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
8481 #[serde(rename = "activity_id")]
8482 #[serde(skip_serializing_if = "Option::is_none")]
8483 pub activity_id: Option<i64>,
8484 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
8485 #[serde(rename = "activity_name")]
8486 #[serde(skip_serializing_if = "Option::is_none")]
8487 pub activity_name: Option<String>,
8488 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
8489 #[serde(rename = "actor")]
8490 #[serde(skip_serializing_if = "Option::is_none")]
8491 pub actor: Option<Box<Actor>>,
8492 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
8493 #[serde(rename = "api")]
8494 #[serde(skip_serializing_if = "Option::is_none")]
8495 pub api: Option<Box<Api>>,
8496 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
8497 #[serde(rename = "attacks")]
8498 #[serde(skip_serializing_if = "Option::is_none")]
8499 pub attacks: Option<Vec<Attack>>,
8500 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
8501 #[serde(rename = "authorizations")]
8502 #[serde(skip_serializing_if = "Option::is_none")]
8503 pub authorizations: Option<Vec<Authorization>>,
8504 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
8505 #[serde(rename = "category_name")]
8506 #[serde(skip_serializing_if = "Option::is_none")]
8507 pub category_name: Option<String>,
8508 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
8509 #[serde(rename = "category_uid")]
8510 #[serde(skip_serializing_if = "Option::is_none")]
8511 pub category_uid: Option<i64>,
8512 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Group Management</code>.\n\noptional"]
8513 #[serde(rename = "class_name")]
8514 #[serde(skip_serializing_if = "Option::is_none")]
8515 pub class_name: Option<String>,
8516 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
8517 #[serde(rename = "class_uid")]
8518 #[serde(skip_serializing_if = "Option::is_none")]
8519 pub class_uid: Option<i64>,
8520 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
8521 #[serde(rename = "cloud")]
8522 #[serde(skip_serializing_if = "Option::is_none")]
8523 pub cloud: Option<Box<Cloud>>,
8524 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8525 #[serde(rename = "confidence")]
8526 #[serde(skip_serializing_if = "Option::is_none")]
8527 pub confidence: Option<String>,
8528 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
8529 #[serde(rename = "confidence_id")]
8530 #[serde(skip_serializing_if = "Option::is_none")]
8531 pub confidence_id: Option<i64>,
8532 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
8533 #[serde(rename = "confidence_score")]
8534 #[serde(skip_serializing_if = "Option::is_none")]
8535 pub confidence_score: Option<i64>,
8536 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
8537 #[serde(rename = "count")]
8538 #[serde(skip_serializing_if = "Option::is_none")]
8539 pub count: Option<i64>,
8540 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
8541 #[serde(rename = "device")]
8542 #[serde(skip_serializing_if = "Option::is_none")]
8543 pub device: Option<Box<Device>>,
8544 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8545 #[serde(rename = "disposition")]
8546 #[serde(skip_serializing_if = "Option::is_none")]
8547 pub disposition: Option<String>,
8548 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
8549 #[serde(rename = "disposition_id")]
8550 #[serde(skip_serializing_if = "Option::is_none")]
8551 pub disposition_id: Option<i64>,
8552 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
8553 #[serde(rename = "duration")]
8554 #[serde(skip_serializing_if = "Option::is_none")]
8555 pub duration: Option<i64>,
8556 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8557 #[serde(rename = "end_time")]
8558 #[serde(skip_serializing_if = "Option::is_none")]
8559 pub end_time: Option<i64>,
8560 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8561 #[serde(rename = "end_time_dt")]
8562 #[serde(skip_serializing_if = "Option::is_none")]
8563 pub end_time_dt: Option<String>,
8564 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
8565 #[serde(rename = "enrichments")]
8566 #[serde(skip_serializing_if = "Option::is_none")]
8567 pub enrichments: Option<Vec<Enrichment>>,
8568 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
8569 #[serde(rename = "firewall_rule")]
8570 #[serde(skip_serializing_if = "Option::is_none")]
8571 pub firewall_rule: Option<Box<FirewallRule>>,
8572 #[doc = "Group\n\nGroup that was the target of the event.\n\nrequired"]
8573 #[serde(rename = "group")]
8574 #[serde(skip_serializing_if = "Option::is_none")]
8575 pub group: Option<Box<Group>>,
8576 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
8577 #[serde(rename = "http_request")]
8578 #[serde(skip_serializing_if = "Option::is_none")]
8579 pub http_request: Option<Box<HttpRequest>>,
8580 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
8581 #[serde(rename = "http_response")]
8582 #[serde(skip_serializing_if = "Option::is_none")]
8583 pub http_response: Option<Box<HttpResponse>>,
8584 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
8585 #[serde(rename = "is_alert")]
8586 #[serde(skip_serializing_if = "Option::is_none")]
8587 pub is_alert: Option<bool>,
8588 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
8589 #[serde(rename = "malware")]
8590 #[serde(skip_serializing_if = "Option::is_none")]
8591 pub malware: Option<Vec<Malware>>,
8592 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
8593 #[serde(rename = "malware_scan_info")]
8594 #[serde(skip_serializing_if = "Option::is_none")]
8595 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
8596 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
8597 #[serde(rename = "message")]
8598 #[serde(skip_serializing_if = "Option::is_none")]
8599 pub message: Option<String>,
8600 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
8601 #[serde(rename = "metadata")]
8602 #[serde(skip_serializing_if = "Option::is_none")]
8603 pub metadata: Option<Box<Metadata>>,
8604 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
8605 #[serde(rename = "observables")]
8606 #[serde(skip_serializing_if = "Option::is_none")]
8607 pub observables: Option<Vec<Observable>>,
8608 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
8609 #[serde(rename = "osint")]
8610 #[serde(skip_serializing_if = "Option::is_none")]
8611 pub osint: Option<Vec<Osint>>,
8612 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
8613 #[serde(rename = "policy")]
8614 #[serde(skip_serializing_if = "Option::is_none")]
8615 pub policy: Option<Box<Policy>>,
8616 #[doc = "Privileges\n\nA list of privileges assigned to the group.\n\nrecommended"]
8617 #[serde(rename = "privileges")]
8618 #[serde(skip_serializing_if = "Option::is_none")]
8619 pub privileges: Option<Vec<String>>,
8620 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
8621 #[serde(rename = "raw_data")]
8622 #[serde(skip_serializing_if = "Option::is_none")]
8623 pub raw_data: Option<String>,
8624 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
8625 #[serde(rename = "raw_data_hash")]
8626 #[serde(skip_serializing_if = "Option::is_none")]
8627 pub raw_data_hash: Option<Box<Fingerprint>>,
8628 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
8629 #[serde(rename = "raw_data_size")]
8630 #[serde(skip_serializing_if = "Option::is_none")]
8631 pub raw_data_size: Option<i64>,
8632 #[doc = "Resource\n\nResource that the privileges give access to.\n\nrecommended"]
8633 #[serde(rename = "resource")]
8634 #[serde(skip_serializing_if = "Option::is_none")]
8635 pub resource: Option<Box<ResourceDetails>>,
8636 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
8637 #[serde(rename = "risk_details")]
8638 #[serde(skip_serializing_if = "Option::is_none")]
8639 pub risk_details: Option<String>,
8640 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
8641 #[serde(rename = "risk_level")]
8642 #[serde(skip_serializing_if = "Option::is_none")]
8643 pub risk_level: Option<String>,
8644 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
8645 #[serde(rename = "risk_level_id")]
8646 #[serde(skip_serializing_if = "Option::is_none")]
8647 pub risk_level_id: Option<i64>,
8648 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
8649 #[serde(rename = "risk_score")]
8650 #[serde(skip_serializing_if = "Option::is_none")]
8651 pub risk_score: Option<i64>,
8652 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
8653 #[serde(rename = "severity")]
8654 #[serde(skip_serializing_if = "Option::is_none")]
8655 pub severity: Option<String>,
8656 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
8657 #[serde(rename = "severity_id")]
8658 #[serde(skip_serializing_if = "Option::is_none")]
8659 pub severity_id: Option<i64>,
8660 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
8661 #[serde(rename = "src_endpoint")]
8662 #[serde(skip_serializing_if = "Option::is_none")]
8663 pub src_endpoint: Option<Box<NetworkEndpoint>>,
8664 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8665 #[serde(rename = "start_time")]
8666 #[serde(skip_serializing_if = "Option::is_none")]
8667 pub start_time: Option<i64>,
8668 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8669 #[serde(rename = "start_time_dt")]
8670 #[serde(skip_serializing_if = "Option::is_none")]
8671 pub start_time_dt: Option<String>,
8672 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
8673 #[serde(rename = "status")]
8674 #[serde(skip_serializing_if = "Option::is_none")]
8675 pub status: Option<String>,
8676 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
8677 #[serde(rename = "status_code")]
8678 #[serde(skip_serializing_if = "Option::is_none")]
8679 pub status_code: Option<String>,
8680 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
8681 #[serde(rename = "status_detail")]
8682 #[serde(skip_serializing_if = "Option::is_none")]
8683 pub status_detail: Option<String>,
8684 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
8685 #[serde(rename = "status_id")]
8686 #[serde(skip_serializing_if = "Option::is_none")]
8687 pub status_id: Option<i64>,
8688 #[doc = "Subgroup\n\nA subgroup that was added to or removed from the group.\n\nrecommended"]
8689 #[serde(rename = "subgroup")]
8690 #[serde(skip_serializing_if = "Option::is_none")]
8691 pub subgroup: Option<Box<Group>>,
8692 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
8693 #[serde(rename = "time")]
8694 #[serde(skip_serializing_if = "Option::is_none")]
8695 pub time: Option<i64>,
8696 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
8697 #[serde(rename = "time_dt")]
8698 #[serde(skip_serializing_if = "Option::is_none")]
8699 pub time_dt: Option<String>,
8700 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
8701 #[serde(rename = "timezone_offset")]
8702 #[serde(skip_serializing_if = "Option::is_none")]
8703 pub timezone_offset: Option<i64>,
8704 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
8705 #[serde(rename = "type_name")]
8706 #[serde(skip_serializing_if = "Option::is_none")]
8707 pub type_name: Option<String>,
8708 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
8709 #[serde(rename = "type_uid")]
8710 #[serde(skip_serializing_if = "Option::is_none")]
8711 pub type_uid: Option<i64>,
8712 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
8713 #[serde(rename = "unmapped")]
8714 #[serde(skip_serializing_if = "Option::is_none")]
8715 pub unmapped: Option<serde_json::Value>,
8716 #[doc = "User\n\nA user that was added to or removed from the group.\n\nrecommended"]
8717 #[serde(rename = "user")]
8718 #[serde(skip_serializing_if = "Option::is_none")]
8719 pub user: Option<Box<User>>,
8720}
8721#[doc = "HTTP Activity\n\nHTTP Activity events report HTTP connection and traffic information.\n\n[UID:4002] Category: network | Name: http_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
8722#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
8723#[serde(default)]
8724#[non_exhaustive]
8725pub struct HttpActivity {
8726 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
8727 #[serde(rename = "action")]
8728 #[serde(skip_serializing_if = "Option::is_none")]
8729 pub action: Option<String>,
8730 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
8731 #[serde(rename = "action_id")]
8732 #[serde(skip_serializing_if = "Option::is_none")]
8733 pub action_id: Option<i64>,
8734 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
8735 #[serde(rename = "activity_id")]
8736 #[serde(skip_serializing_if = "Option::is_none")]
8737 pub activity_id: Option<i64>,
8738 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
8739 #[serde(rename = "activity_name")]
8740 #[serde(skip_serializing_if = "Option::is_none")]
8741 pub activity_name: Option<String>,
8742 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
8743 #[serde(rename = "actor")]
8744 #[serde(skip_serializing_if = "Option::is_none")]
8745 pub actor: Option<Box<Actor>>,
8746 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
8747 #[serde(rename = "api")]
8748 #[serde(skip_serializing_if = "Option::is_none")]
8749 pub api: Option<Box<Api>>,
8750 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
8751 #[serde(rename = "app_name")]
8752 #[serde(skip_serializing_if = "Option::is_none")]
8753 pub app_name: Option<String>,
8754 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
8755 #[serde(rename = "attacks")]
8756 #[serde(skip_serializing_if = "Option::is_none")]
8757 pub attacks: Option<Vec<Attack>>,
8758 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
8759 #[serde(rename = "authorizations")]
8760 #[serde(skip_serializing_if = "Option::is_none")]
8761 pub authorizations: Option<Vec<Authorization>>,
8762 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
8763 #[serde(rename = "category_name")]
8764 #[serde(skip_serializing_if = "Option::is_none")]
8765 pub category_name: Option<String>,
8766 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
8767 #[serde(rename = "category_uid")]
8768 #[serde(skip_serializing_if = "Option::is_none")]
8769 pub category_uid: Option<i64>,
8770 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>HTTP Activity</code>.\n\noptional"]
8771 #[serde(rename = "class_name")]
8772 #[serde(skip_serializing_if = "Option::is_none")]
8773 pub class_name: Option<String>,
8774 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
8775 #[serde(rename = "class_uid")]
8776 #[serde(skip_serializing_if = "Option::is_none")]
8777 pub class_uid: Option<i64>,
8778 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
8779 #[serde(rename = "cloud")]
8780 #[serde(skip_serializing_if = "Option::is_none")]
8781 pub cloud: Option<Box<Cloud>>,
8782 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8783 #[serde(rename = "confidence")]
8784 #[serde(skip_serializing_if = "Option::is_none")]
8785 pub confidence: Option<String>,
8786 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
8787 #[serde(rename = "confidence_id")]
8788 #[serde(skip_serializing_if = "Option::is_none")]
8789 pub confidence_id: Option<i64>,
8790 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
8791 #[serde(rename = "confidence_score")]
8792 #[serde(skip_serializing_if = "Option::is_none")]
8793 pub confidence_score: Option<i64>,
8794 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
8795 #[serde(rename = "connection_info")]
8796 #[serde(skip_serializing_if = "Option::is_none")]
8797 pub connection_info: Option<Box<NetworkConnectionInfo>>,
8798 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
8799 #[serde(rename = "count")]
8800 #[serde(skip_serializing_if = "Option::is_none")]
8801 pub count: Option<i64>,
8802 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
8803 #[serde(rename = "cumulative_traffic")]
8804 #[serde(skip_serializing_if = "Option::is_none")]
8805 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
8806 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
8807 #[serde(rename = "device")]
8808 #[serde(skip_serializing_if = "Option::is_none")]
8809 pub device: Option<Box<Device>>,
8810 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
8811 #[serde(rename = "disposition")]
8812 #[serde(skip_serializing_if = "Option::is_none")]
8813 pub disposition: Option<String>,
8814 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
8815 #[serde(rename = "disposition_id")]
8816 #[serde(skip_serializing_if = "Option::is_none")]
8817 pub disposition_id: Option<i64>,
8818 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
8819 #[serde(rename = "dst_endpoint")]
8820 #[serde(skip_serializing_if = "Option::is_none")]
8821 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
8822 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
8823 #[serde(rename = "duration")]
8824 #[serde(skip_serializing_if = "Option::is_none")]
8825 pub duration: Option<i64>,
8826 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8827 #[serde(rename = "end_time")]
8828 #[serde(skip_serializing_if = "Option::is_none")]
8829 pub end_time: Option<i64>,
8830 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
8831 #[serde(rename = "end_time_dt")]
8832 #[serde(skip_serializing_if = "Option::is_none")]
8833 pub end_time_dt: Option<String>,
8834 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
8835 #[serde(rename = "enrichments")]
8836 #[serde(skip_serializing_if = "Option::is_none")]
8837 pub enrichments: Option<Vec<Enrichment>>,
8838 #[doc = "File\n\nThe file that is the target of the HTTP activity.\n\noptional"]
8839 #[serde(rename = "file")]
8840 #[serde(skip_serializing_if = "Option::is_none")]
8841 pub file: Option<Box<File>>,
8842 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
8843 #[serde(rename = "firewall_rule")]
8844 #[serde(skip_serializing_if = "Option::is_none")]
8845 pub firewall_rule: Option<Box<FirewallRule>>,
8846 #[doc = "HTTP Cookies\n\nThe cookies object describes details about HTTP cookies\n\nrecommended"]
8847 #[serde(rename = "http_cookies")]
8848 #[serde(skip_serializing_if = "Option::is_none")]
8849 pub http_cookies: Option<Vec<HttpCookie>>,
8850 #[doc = "HTTP Request\n\nThe HTTP Request Object documents attributes of a request made to a web server.\n\nrecommended"]
8851 #[serde(rename = "http_request")]
8852 #[serde(skip_serializing_if = "Option::is_none")]
8853 pub http_request: Option<Box<HttpRequest>>,
8854 #[doc = "HTTP Response\n\nThe HTTP Response from a web server to a requester.\n\nrecommended"]
8855 #[serde(rename = "http_response")]
8856 #[serde(skip_serializing_if = "Option::is_none")]
8857 pub http_response: Option<Box<HttpResponse>>,
8858 #[doc = "HTTP Status\n\nThe Hypertext Transfer Protocol (HTTP) <a target='_blank' href='https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml'>status code</a> returned to the client.\n\nrecommended"]
8859 #[serde(rename = "http_status")]
8860 #[serde(skip_serializing_if = "Option::is_none")]
8861 pub http_status: Option<i64>,
8862 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
8863 #[serde(rename = "is_alert")]
8864 #[serde(skip_serializing_if = "Option::is_none")]
8865 pub is_alert: Option<bool>,
8866 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
8867 #[serde(rename = "ja4_fingerprint_list")]
8868 #[serde(skip_serializing_if = "Option::is_none")]
8869 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
8870 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
8871 #[serde(rename = "load_balancer")]
8872 #[serde(skip_serializing_if = "Option::is_none")]
8873 pub load_balancer: Option<Box<LoadBalancer>>,
8874 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
8875 #[serde(rename = "malware")]
8876 #[serde(skip_serializing_if = "Option::is_none")]
8877 pub malware: Option<Vec<Malware>>,
8878 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
8879 #[serde(rename = "malware_scan_info")]
8880 #[serde(skip_serializing_if = "Option::is_none")]
8881 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
8882 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
8883 #[serde(rename = "message")]
8884 #[serde(skip_serializing_if = "Option::is_none")]
8885 pub message: Option<String>,
8886 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
8887 #[serde(rename = "metadata")]
8888 #[serde(skip_serializing_if = "Option::is_none")]
8889 pub metadata: Option<Box<Metadata>>,
8890 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
8891 #[serde(rename = "observables")]
8892 #[serde(skip_serializing_if = "Option::is_none")]
8893 pub observables: Option<Vec<Observable>>,
8894 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
8895 #[serde(rename = "observation_point")]
8896 #[serde(skip_serializing_if = "Option::is_none")]
8897 pub observation_point: Option<String>,
8898 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
8899 #[serde(rename = "observation_point_id")]
8900 #[serde(skip_serializing_if = "Option::is_none")]
8901 pub observation_point_id: Option<i64>,
8902 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
8903 #[serde(rename = "osint")]
8904 #[serde(skip_serializing_if = "Option::is_none")]
8905 pub osint: Option<Vec<Osint>>,
8906 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
8907 #[serde(rename = "policy")]
8908 #[serde(skip_serializing_if = "Option::is_none")]
8909 pub policy: Option<Box<Policy>>,
8910 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
8911 #[serde(rename = "proxy")]
8912 #[serde(skip_serializing_if = "Option::is_none")]
8913 pub proxy: Option<Box<NetworkProxy>>,
8914 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
8915 #[serde(rename = "proxy_connection_info")]
8916 #[serde(skip_serializing_if = "Option::is_none")]
8917 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
8918 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
8919 #[serde(rename = "proxy_endpoint")]
8920 #[serde(skip_serializing_if = "Option::is_none")]
8921 pub proxy_endpoint: Option<Box<NetworkProxy>>,
8922 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
8923 #[serde(rename = "proxy_http_request")]
8924 #[serde(skip_serializing_if = "Option::is_none")]
8925 pub proxy_http_request: Option<Box<HttpRequest>>,
8926 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
8927 #[serde(rename = "proxy_http_response")]
8928 #[serde(skip_serializing_if = "Option::is_none")]
8929 pub proxy_http_response: Option<Box<HttpResponse>>,
8930 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
8931 #[serde(rename = "proxy_tls")]
8932 #[serde(skip_serializing_if = "Option::is_none")]
8933 pub proxy_tls: Option<Box<Tls>>,
8934 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
8935 #[serde(rename = "proxy_traffic")]
8936 #[serde(skip_serializing_if = "Option::is_none")]
8937 pub proxy_traffic: Option<Box<NetworkTraffic>>,
8938 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
8939 #[serde(rename = "raw_data")]
8940 #[serde(skip_serializing_if = "Option::is_none")]
8941 pub raw_data: Option<String>,
8942 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
8943 #[serde(rename = "raw_data_hash")]
8944 #[serde(skip_serializing_if = "Option::is_none")]
8945 pub raw_data_hash: Option<Box<Fingerprint>>,
8946 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
8947 #[serde(rename = "raw_data_size")]
8948 #[serde(skip_serializing_if = "Option::is_none")]
8949 pub raw_data_size: Option<i64>,
8950 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
8951 #[serde(rename = "risk_details")]
8952 #[serde(skip_serializing_if = "Option::is_none")]
8953 pub risk_details: Option<String>,
8954 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
8955 #[serde(rename = "risk_level")]
8956 #[serde(skip_serializing_if = "Option::is_none")]
8957 pub risk_level: Option<String>,
8958 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
8959 #[serde(rename = "risk_level_id")]
8960 #[serde(skip_serializing_if = "Option::is_none")]
8961 pub risk_level_id: Option<i64>,
8962 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
8963 #[serde(rename = "risk_score")]
8964 #[serde(skip_serializing_if = "Option::is_none")]
8965 pub risk_score: Option<i64>,
8966 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
8967 #[serde(rename = "severity")]
8968 #[serde(skip_serializing_if = "Option::is_none")]
8969 pub severity: Option<String>,
8970 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
8971 #[serde(rename = "severity_id")]
8972 #[serde(skip_serializing_if = "Option::is_none")]
8973 pub severity_id: Option<i64>,
8974 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
8975 #[serde(rename = "src_endpoint")]
8976 #[serde(skip_serializing_if = "Option::is_none")]
8977 pub src_endpoint: Option<Box<NetworkEndpoint>>,
8978 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8979 #[serde(rename = "start_time")]
8980 #[serde(skip_serializing_if = "Option::is_none")]
8981 pub start_time: Option<i64>,
8982 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
8983 #[serde(rename = "start_time_dt")]
8984 #[serde(skip_serializing_if = "Option::is_none")]
8985 pub start_time_dt: Option<String>,
8986 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
8987 #[serde(rename = "status")]
8988 #[serde(skip_serializing_if = "Option::is_none")]
8989 pub status: Option<String>,
8990 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
8991 #[serde(rename = "status_code")]
8992 #[serde(skip_serializing_if = "Option::is_none")]
8993 pub status_code: Option<String>,
8994 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
8995 #[serde(rename = "status_detail")]
8996 #[serde(skip_serializing_if = "Option::is_none")]
8997 pub status_detail: Option<String>,
8998 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
8999 #[serde(rename = "status_id")]
9000 #[serde(skip_serializing_if = "Option::is_none")]
9001 pub status_id: Option<i64>,
9002 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
9003 #[serde(rename = "time")]
9004 #[serde(skip_serializing_if = "Option::is_none")]
9005 pub time: Option<i64>,
9006 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
9007 #[serde(rename = "time_dt")]
9008 #[serde(skip_serializing_if = "Option::is_none")]
9009 pub time_dt: Option<String>,
9010 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
9011 #[serde(rename = "timezone_offset")]
9012 #[serde(skip_serializing_if = "Option::is_none")]
9013 pub timezone_offset: Option<i64>,
9014 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
9015 #[serde(rename = "tls")]
9016 #[serde(skip_serializing_if = "Option::is_none")]
9017 pub tls: Option<Box<Tls>>,
9018 #[doc = "Trace\n\nThe trace object contains information about distributed traces which are critical to observability and describe how requests move through a system, capturing each step's timing and status.\n\nrecommended"]
9019 #[serde(rename = "trace")]
9020 #[serde(skip_serializing_if = "Option::is_none")]
9021 pub trace: Option<Box<Trace>>,
9022 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
9023 #[serde(rename = "traffic")]
9024 #[serde(skip_serializing_if = "Option::is_none")]
9025 pub traffic: Option<Box<NetworkTraffic>>,
9026 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
9027 #[serde(rename = "type_name")]
9028 #[serde(skip_serializing_if = "Option::is_none")]
9029 pub type_name: Option<String>,
9030 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
9031 #[serde(rename = "type_uid")]
9032 #[serde(skip_serializing_if = "Option::is_none")]
9033 pub type_uid: Option<i64>,
9034 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
9035 #[serde(rename = "unmapped")]
9036 #[serde(skip_serializing_if = "Option::is_none")]
9037 pub unmapped: Option<serde_json::Value>,
9038}
9039#[doc = "IAM Analysis Finding\n\nThis finding represents an IAM analysis result, which evaluates IAM policies, access patterns, and IAM configurations for potential security risks. The analysis can focus on either an identity (user, role, service account) or a resource to assess permissions, access patterns, and security posture within the IAM domain. <br><strong>Note:</strong> Use <code>permission_analysis_results</code> for identity-centric analysis (evaluating what an identity can do) and <code>access_analysis_result</code> for resource-centric analysis (evaluating who can access a resource). These complement each other for comprehensive IAM security assessment.<br><strong>Note:</strong> If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2008] Category: findings | Name: iam_analysis_finding\n\n**Constraints:**\n* at_least_one: `[access_analysis_result`,`applications`,`identity_activity_metrics`,`permission_analysis_results]`\n"]
9040#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
9041#[serde(default)]
9042#[non_exhaustive]
9043pub struct IamAnalysisFinding {
9044 #[doc = "Access Analysis Result\n\nDescribes access relationships and pathways between identities, resources, focusing on who can access what and through which mechanisms. This evaluates access levels (read/write/admin), access types (direct, cross-account, public, federated), and the conditions under which access is granted. Use this for resource-centric security assessments such as external access discovery, public exposure analysis, etc.\n\noptional"]
9045 #[serde(rename = "access_analysis_result")]
9046 #[serde(skip_serializing_if = "Option::is_none")]
9047 pub access_analysis_result: Option<Box<AccessAnalysisResult>>,
9048 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
9049 #[serde(rename = "action")]
9050 #[serde(skip_serializing_if = "Option::is_none")]
9051 pub action: Option<String>,
9052 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
9053 #[serde(rename = "action_id")]
9054 #[serde(skip_serializing_if = "Option::is_none")]
9055 pub action_id: Option<i64>,
9056 #[doc = "Activity ID\n\nThe normalized identifier of the finding activity.\n\nrequired"]
9057 #[serde(rename = "activity_id")]
9058 #[serde(skip_serializing_if = "Option::is_none")]
9059 pub activity_id: Option<i64>,
9060 #[doc = "Activity\n\nThe finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
9061 #[serde(rename = "activity_name")]
9062 #[serde(skip_serializing_if = "Option::is_none")]
9063 pub activity_name: Option<String>,
9064 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
9065 #[serde(rename = "actor")]
9066 #[serde(skip_serializing_if = "Option::is_none")]
9067 pub actor: Option<Box<Actor>>,
9068 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
9069 #[serde(rename = "api")]
9070 #[serde(skip_serializing_if = "Option::is_none")]
9071 pub api: Option<Box<Api>>,
9072 #[doc = "Applications\n\nDetails about applications, services, or systems that are accessible based on the IAM analysis. For identity-centric analysis, this represents applications the identity can access. For resource-centric analysis, this represents applications that can access the resource.\n\nrecommended"]
9073 #[serde(rename = "applications")]
9074 #[serde(skip_serializing_if = "Option::is_none")]
9075 pub applications: Option<Vec<Application>>,
9076 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
9077 #[serde(rename = "assignee")]
9078 #[serde(skip_serializing_if = "Option::is_none")]
9079 pub assignee: Option<Box<User>>,
9080 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
9081 #[serde(rename = "assignee_group")]
9082 #[serde(skip_serializing_if = "Option::is_none")]
9083 pub assignee_group: Option<Box<Group>>,
9084 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
9085 #[serde(rename = "attacks")]
9086 #[serde(skip_serializing_if = "Option::is_none")]
9087 pub attacks: Option<Vec<Attack>>,
9088 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
9089 #[serde(rename = "authorizations")]
9090 #[serde(skip_serializing_if = "Option::is_none")]
9091 pub authorizations: Option<Vec<Authorization>>,
9092 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
9093 #[serde(rename = "category_name")]
9094 #[serde(skip_serializing_if = "Option::is_none")]
9095 pub category_name: Option<String>,
9096 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
9097 #[serde(rename = "category_uid")]
9098 #[serde(skip_serializing_if = "Option::is_none")]
9099 pub category_uid: Option<i64>,
9100 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>IAM Analysis Finding</code>.\n\noptional"]
9101 #[serde(rename = "class_name")]
9102 #[serde(skip_serializing_if = "Option::is_none")]
9103 pub class_name: Option<String>,
9104 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
9105 #[serde(rename = "class_uid")]
9106 #[serde(skip_serializing_if = "Option::is_none")]
9107 pub class_uid: Option<i64>,
9108 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
9109 #[serde(rename = "cloud")]
9110 #[serde(skip_serializing_if = "Option::is_none")]
9111 pub cloud: Option<Box<Cloud>>,
9112 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
9113 #[serde(rename = "comment")]
9114 #[serde(skip_serializing_if = "Option::is_none")]
9115 pub comment: Option<String>,
9116 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9117 #[serde(rename = "confidence")]
9118 #[serde(skip_serializing_if = "Option::is_none")]
9119 pub confidence: Option<String>,
9120 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
9121 #[serde(rename = "confidence_id")]
9122 #[serde(skip_serializing_if = "Option::is_none")]
9123 pub confidence_id: Option<i64>,
9124 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
9125 #[serde(rename = "confidence_score")]
9126 #[serde(skip_serializing_if = "Option::is_none")]
9127 pub confidence_score: Option<i64>,
9128 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
9129 #[serde(rename = "count")]
9130 #[serde(skip_serializing_if = "Option::is_none")]
9131 pub count: Option<i64>,
9132 #[doc = "Device\n\nDescribes the affected device/host. If applicable, it can be used in conjunction with <code>Resource(s)</code>. <p> e.g. Specific details about an AWS EC2 instance, that is affected by the Finding.</p>\n\noptional"]
9133 #[serde(rename = "device")]
9134 #[serde(skip_serializing_if = "Option::is_none")]
9135 pub device: Option<Box<Device>>,
9136 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9137 #[serde(rename = "disposition")]
9138 #[serde(skip_serializing_if = "Option::is_none")]
9139 pub disposition: Option<String>,
9140 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
9141 #[serde(rename = "disposition_id")]
9142 #[serde(skip_serializing_if = "Option::is_none")]
9143 pub disposition_id: Option<i64>,
9144 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
9145 #[serde(rename = "duration")]
9146 #[serde(skip_serializing_if = "Option::is_none")]
9147 pub duration: Option<i64>,
9148 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
9149 #[serde(rename = "end_time")]
9150 #[serde(skip_serializing_if = "Option::is_none")]
9151 pub end_time: Option<i64>,
9152 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
9153 #[serde(rename = "end_time_dt")]
9154 #[serde(skip_serializing_if = "Option::is_none")]
9155 pub end_time_dt: Option<String>,
9156 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
9157 #[serde(rename = "enrichments")]
9158 #[serde(skip_serializing_if = "Option::is_none")]
9159 pub enrichments: Option<Vec<Enrichment>>,
9160 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
9161 #[serde(rename = "finding_info")]
9162 #[serde(skip_serializing_if = "Option::is_none")]
9163 pub finding_info: Option<Box<FindingInfo>>,
9164 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
9165 #[serde(rename = "firewall_rule")]
9166 #[serde(skip_serializing_if = "Option::is_none")]
9167 pub firewall_rule: Option<Box<FirewallRule>>,
9168 #[doc = "Identity Activity Metrics\n\nDescribes usage activity and other metrics of an Identity i.e. AWS IAM User, GCP IAM Principal, etc.\n\nrecommended"]
9169 #[serde(rename = "identity_activity_metrics")]
9170 #[serde(skip_serializing_if = "Option::is_none")]
9171 pub identity_activity_metrics: Option<Box<IdentityActivityMetrics>>,
9172 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
9173 #[serde(rename = "impact")]
9174 #[serde(skip_serializing_if = "Option::is_none")]
9175 pub impact: Option<String>,
9176 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
9177 #[serde(rename = "impact_id")]
9178 #[serde(skip_serializing_if = "Option::is_none")]
9179 pub impact_id: Option<i64>,
9180 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
9181 #[serde(rename = "impact_score")]
9182 #[serde(skip_serializing_if = "Option::is_none")]
9183 pub impact_score: Option<i64>,
9184 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
9185 #[serde(rename = "is_alert")]
9186 #[serde(skip_serializing_if = "Option::is_none")]
9187 pub is_alert: Option<bool>,
9188 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
9189 #[serde(rename = "is_suspected_breach")]
9190 #[serde(skip_serializing_if = "Option::is_none")]
9191 pub is_suspected_breach: Option<bool>,
9192 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
9193 #[serde(rename = "malware")]
9194 #[serde(skip_serializing_if = "Option::is_none")]
9195 pub malware: Option<Vec<Malware>>,
9196 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
9197 #[serde(rename = "malware_scan_info")]
9198 #[serde(skip_serializing_if = "Option::is_none")]
9199 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
9200 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
9201 #[serde(rename = "message")]
9202 #[serde(skip_serializing_if = "Option::is_none")]
9203 pub message: Option<String>,
9204 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
9205 #[serde(rename = "metadata")]
9206 #[serde(skip_serializing_if = "Option::is_none")]
9207 pub metadata: Option<Box<Metadata>>,
9208 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
9209 #[serde(rename = "observables")]
9210 #[serde(skip_serializing_if = "Option::is_none")]
9211 pub observables: Option<Vec<Observable>>,
9212 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
9213 #[serde(rename = "osint")]
9214 #[serde(skip_serializing_if = "Option::is_none")]
9215 pub osint: Option<Vec<Osint>>,
9216 #[doc = "Permission Analysis Results\n\nDescribes analysis results of permissions, policies directly associated with an identity (user, role, or service account). This evaluates what permissions an identity has been granted through attached policies, which privileges are actively used versus unused, and identifies potential over-privileged access. Use this for identity-centric security assessments such as privilege audits, dormant permission discovery, and least-privilege compliance analysis.\n\nrecommended"]
9217 #[serde(rename = "permission_analysis_results")]
9218 #[serde(skip_serializing_if = "Option::is_none")]
9219 pub permission_analysis_results: Option<Vec<PermissionAnalysisResult>>,
9220 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
9221 #[serde(rename = "policy")]
9222 #[serde(skip_serializing_if = "Option::is_none")]
9223 pub policy: Option<Box<Policy>>,
9224 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9225 #[serde(rename = "priority")]
9226 #[serde(skip_serializing_if = "Option::is_none")]
9227 pub priority: Option<String>,
9228 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
9229 #[serde(rename = "priority_id")]
9230 #[serde(skip_serializing_if = "Option::is_none")]
9231 pub priority_id: Option<i64>,
9232 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
9233 #[serde(rename = "raw_data")]
9234 #[serde(skip_serializing_if = "Option::is_none")]
9235 pub raw_data: Option<String>,
9236 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
9237 #[serde(rename = "raw_data_hash")]
9238 #[serde(skip_serializing_if = "Option::is_none")]
9239 pub raw_data_hash: Option<Box<Fingerprint>>,
9240 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
9241 #[serde(rename = "raw_data_size")]
9242 #[serde(skip_serializing_if = "Option::is_none")]
9243 pub raw_data_size: Option<i64>,
9244 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
9245 #[serde(rename = "remediation")]
9246 #[serde(skip_serializing_if = "Option::is_none")]
9247 pub remediation: Option<Box<Remediation>>,
9248 #[doc = "Resources Array\n\nDetails about resources involved in the IAM analysis. For identity-centric analysis, this represents resources the identity can access. For resource-centric analysis, this represents the resource being analyzed and related resources in the access chain.\n\nrecommended"]
9249 #[serde(rename = "resources")]
9250 #[serde(skip_serializing_if = "Option::is_none")]
9251 pub resources: Option<Vec<ResourceDetails>>,
9252 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
9253 #[serde(rename = "risk_details")]
9254 #[serde(skip_serializing_if = "Option::is_none")]
9255 pub risk_details: Option<String>,
9256 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
9257 #[serde(rename = "risk_level")]
9258 #[serde(skip_serializing_if = "Option::is_none")]
9259 pub risk_level: Option<String>,
9260 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
9261 #[serde(rename = "risk_level_id")]
9262 #[serde(skip_serializing_if = "Option::is_none")]
9263 pub risk_level_id: Option<i64>,
9264 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
9265 #[serde(rename = "risk_score")]
9266 #[serde(skip_serializing_if = "Option::is_none")]
9267 pub risk_score: Option<i64>,
9268 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
9269 #[serde(rename = "severity")]
9270 #[serde(skip_serializing_if = "Option::is_none")]
9271 pub severity: Option<String>,
9272 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
9273 #[serde(rename = "severity_id")]
9274 #[serde(skip_serializing_if = "Option::is_none")]
9275 pub severity_id: Option<i64>,
9276 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
9277 #[serde(rename = "src_url")]
9278 #[serde(skip_serializing_if = "Option::is_none")]
9279 pub src_url: Option<String>,
9280 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
9281 #[serde(rename = "start_time")]
9282 #[serde(skip_serializing_if = "Option::is_none")]
9283 pub start_time: Option<i64>,
9284 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
9285 #[serde(rename = "start_time_dt")]
9286 #[serde(skip_serializing_if = "Option::is_none")]
9287 pub start_time_dt: Option<String>,
9288 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
9289 #[serde(rename = "status")]
9290 #[serde(skip_serializing_if = "Option::is_none")]
9291 pub status: Option<String>,
9292 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
9293 #[serde(rename = "status_code")]
9294 #[serde(skip_serializing_if = "Option::is_none")]
9295 pub status_code: Option<String>,
9296 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
9297 #[serde(rename = "status_detail")]
9298 #[serde(skip_serializing_if = "Option::is_none")]
9299 pub status_detail: Option<String>,
9300 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
9301 #[serde(rename = "status_id")]
9302 #[serde(skip_serializing_if = "Option::is_none")]
9303 pub status_id: Option<i64>,
9304 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
9305 #[serde(rename = "ticket")]
9306 #[serde(skip_serializing_if = "Option::is_none")]
9307 pub ticket: Option<Box<Ticket>>,
9308 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
9309 #[serde(rename = "tickets")]
9310 #[serde(skip_serializing_if = "Option::is_none")]
9311 pub tickets: Option<Vec<Ticket>>,
9312 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
9313 #[serde(rename = "time")]
9314 #[serde(skip_serializing_if = "Option::is_none")]
9315 pub time: Option<i64>,
9316 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
9317 #[serde(rename = "time_dt")]
9318 #[serde(skip_serializing_if = "Option::is_none")]
9319 pub time_dt: Option<String>,
9320 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
9321 #[serde(rename = "timezone_offset")]
9322 #[serde(skip_serializing_if = "Option::is_none")]
9323 pub timezone_offset: Option<i64>,
9324 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
9325 #[serde(rename = "type_name")]
9326 #[serde(skip_serializing_if = "Option::is_none")]
9327 pub type_name: Option<String>,
9328 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
9329 #[serde(rename = "type_uid")]
9330 #[serde(skip_serializing_if = "Option::is_none")]
9331 pub type_uid: Option<i64>,
9332 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
9333 #[serde(rename = "unmapped")]
9334 #[serde(skip_serializing_if = "Option::is_none")]
9335 pub unmapped: Option<serde_json::Value>,
9336 #[doc = "User\n\nDetails about the identity (user, role, service account, or other principal) that is the subject of the IAM analysis. This provides context about the identity being evaluated for security risks and access patterns.\n\nrecommended"]
9337 #[serde(rename = "user")]
9338 #[serde(skip_serializing_if = "Option::is_none")]
9339 pub user: Option<Box<User>>,
9340 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
9341 #[serde(rename = "vendor_attributes")]
9342 #[serde(skip_serializing_if = "Option::is_none")]
9343 pub vendor_attributes: Option<Box<VendorAttributes>>,
9344 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
9345 #[serde(rename = "verdict")]
9346 #[serde(skip_serializing_if = "Option::is_none")]
9347 pub verdict: Option<String>,
9348 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
9349 #[serde(rename = "verdict_id")]
9350 #[serde(skip_serializing_if = "Option::is_none")]
9351 pub verdict_id: Option<i64>,
9352}
9353#[doc = "Incident Finding\n\nAn Incident Finding reports the creation, update, or closure of security incidents as a result of detections and/or analytics. <br><strong>Note: </strong><code>Incident Finding</code> implicitly includes the <code>incident</code> profile and it should be added to the <code>metadata.profiles[]</code> array.\n\n[UID:2005] Category: findings | Name: incident_finding\n\n**Constraints:**\n* at_least_one: `[assignee`,`assignee_group]`\n"]
9354#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
9355#[serde(default)]
9356#[non_exhaustive]
9357pub struct IncidentFinding {
9358 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
9359 #[serde(rename = "action")]
9360 #[serde(skip_serializing_if = "Option::is_none")]
9361 pub action: Option<String>,
9362 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
9363 #[serde(rename = "action_id")]
9364 #[serde(skip_serializing_if = "Option::is_none")]
9365 pub action_id: Option<i64>,
9366 #[doc = "Activity ID\n\nThe normalized identifier of the Incident activity.\n\nrequired"]
9367 #[serde(rename = "activity_id")]
9368 #[serde(skip_serializing_if = "Option::is_none")]
9369 pub activity_id: Option<i64>,
9370 #[doc = "Activity\n\nThe Incident activity name, as defined by the <code>activity_id</code>.\n\noptional"]
9371 #[serde(rename = "activity_name")]
9372 #[serde(skip_serializing_if = "Option::is_none")]
9373 pub activity_name: Option<String>,
9374 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
9375 #[serde(rename = "actor")]
9376 #[serde(skip_serializing_if = "Option::is_none")]
9377 pub actor: Option<Box<Actor>>,
9378 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
9379 #[serde(rename = "api")]
9380 #[serde(skip_serializing_if = "Option::is_none")]
9381 pub api: Option<Box<Api>>,
9382 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
9383 #[serde(rename = "assignee")]
9384 #[serde(skip_serializing_if = "Option::is_none")]
9385 pub assignee: Option<Box<User>>,
9386 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
9387 #[serde(rename = "assignee_group")]
9388 #[serde(skip_serializing_if = "Option::is_none")]
9389 pub assignee_group: Option<Box<Group>>,
9390 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of <a target='_blank' href='https://attack.mitre.org'>MITRE ATT&CK®</a> objects describing the tactics, techniques & sub-techniques associated to the Incident.\n\noptional"]
9391 #[serde(rename = "attacks")]
9392 #[serde(skip_serializing_if = "Option::is_none")]
9393 pub attacks: Option<Vec<Attack>>,
9394 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
9395 #[serde(rename = "authorizations")]
9396 #[serde(skip_serializing_if = "Option::is_none")]
9397 pub authorizations: Option<Vec<Authorization>>,
9398 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
9399 #[serde(rename = "category_name")]
9400 #[serde(skip_serializing_if = "Option::is_none")]
9401 pub category_name: Option<String>,
9402 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
9403 #[serde(rename = "category_uid")]
9404 #[serde(skip_serializing_if = "Option::is_none")]
9405 pub category_uid: Option<i64>,
9406 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Incident Finding</code>.\n\noptional"]
9407 #[serde(rename = "class_name")]
9408 #[serde(skip_serializing_if = "Option::is_none")]
9409 pub class_name: Option<String>,
9410 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
9411 #[serde(rename = "class_uid")]
9412 #[serde(skip_serializing_if = "Option::is_none")]
9413 pub class_uid: Option<i64>,
9414 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
9415 #[serde(rename = "cloud")]
9416 #[serde(skip_serializing_if = "Option::is_none")]
9417 pub cloud: Option<Box<Cloud>>,
9418 #[doc = "Comment\n\nAdditional user supplied details for updating or closing the incident.\n\noptional"]
9419 #[serde(rename = "comment")]
9420 #[serde(skip_serializing_if = "Option::is_none")]
9421 pub comment: Option<String>,
9422 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9423 #[serde(rename = "confidence")]
9424 #[serde(skip_serializing_if = "Option::is_none")]
9425 pub confidence: Option<String>,
9426 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
9427 #[serde(rename = "confidence_id")]
9428 #[serde(skip_serializing_if = "Option::is_none")]
9429 pub confidence_id: Option<i64>,
9430 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
9431 #[serde(rename = "confidence_score")]
9432 #[serde(skip_serializing_if = "Option::is_none")]
9433 pub confidence_score: Option<i64>,
9434 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
9435 #[serde(rename = "count")]
9436 #[serde(skip_serializing_if = "Option::is_none")]
9437 pub count: Option<i64>,
9438 #[doc = "Description\n\nThe short description of the Incident.\n\nrecommended"]
9439 #[serde(rename = "desc")]
9440 #[serde(skip_serializing_if = "Option::is_none")]
9441 pub desc: Option<String>,
9442 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
9443 #[serde(rename = "device")]
9444 #[serde(skip_serializing_if = "Option::is_none")]
9445 pub device: Option<Box<Device>>,
9446 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9447 #[serde(rename = "disposition")]
9448 #[serde(skip_serializing_if = "Option::is_none")]
9449 pub disposition: Option<String>,
9450 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
9451 #[serde(rename = "disposition_id")]
9452 #[serde(skip_serializing_if = "Option::is_none")]
9453 pub disposition_id: Option<i64>,
9454 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
9455 #[serde(rename = "duration")]
9456 #[serde(skip_serializing_if = "Option::is_none")]
9457 pub duration: Option<i64>,
9458 #[doc = "End Time\n\nThe time of the most recent event included in the incident.\n\noptional"]
9459 #[serde(rename = "end_time")]
9460 #[serde(skip_serializing_if = "Option::is_none")]
9461 pub end_time: Option<i64>,
9462 #[doc = "End Time\n\nThe time of the most recent event included in the incident.\n\noptional"]
9463 #[serde(rename = "end_time_dt")]
9464 #[serde(skip_serializing_if = "Option::is_none")]
9465 pub end_time_dt: Option<String>,
9466 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
9467 #[serde(rename = "enrichments")]
9468 #[serde(skip_serializing_if = "Option::is_none")]
9469 pub enrichments: Option<Vec<Enrichment>>,
9470 #[doc = "Finding Information List\n\nA list of <code>finding_info</code> objects associated to an incident.\n\nrequired"]
9471 #[serde(rename = "finding_info_list")]
9472 #[serde(skip_serializing_if = "Option::is_none")]
9473 pub finding_info_list: Option<Vec<FindingInfo>>,
9474 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
9475 #[serde(rename = "firewall_rule")]
9476 #[serde(skip_serializing_if = "Option::is_none")]
9477 pub firewall_rule: Option<Box<FirewallRule>>,
9478 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
9479 #[serde(rename = "impact")]
9480 #[serde(skip_serializing_if = "Option::is_none")]
9481 pub impact: Option<String>,
9482 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
9483 #[serde(rename = "impact_id")]
9484 #[serde(skip_serializing_if = "Option::is_none")]
9485 pub impact_id: Option<i64>,
9486 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
9487 #[serde(rename = "impact_score")]
9488 #[serde(skip_serializing_if = "Option::is_none")]
9489 pub impact_score: Option<i64>,
9490 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
9491 #[serde(rename = "is_alert")]
9492 #[serde(skip_serializing_if = "Option::is_none")]
9493 pub is_alert: Option<bool>,
9494 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
9495 #[serde(rename = "is_suspected_breach")]
9496 #[serde(skip_serializing_if = "Option::is_none")]
9497 pub is_suspected_breach: Option<bool>,
9498 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
9499 #[serde(rename = "malware")]
9500 #[serde(skip_serializing_if = "Option::is_none")]
9501 pub malware: Option<Vec<Malware>>,
9502 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
9503 #[serde(rename = "malware_scan_info")]
9504 #[serde(skip_serializing_if = "Option::is_none")]
9505 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
9506 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
9507 #[serde(rename = "message")]
9508 #[serde(skip_serializing_if = "Option::is_none")]
9509 pub message: Option<String>,
9510 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
9511 #[serde(rename = "metadata")]
9512 #[serde(skip_serializing_if = "Option::is_none")]
9513 pub metadata: Option<Box<Metadata>>,
9514 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
9515 #[serde(rename = "observables")]
9516 #[serde(skip_serializing_if = "Option::is_none")]
9517 pub observables: Option<Vec<Observable>>,
9518 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
9519 #[serde(rename = "osint")]
9520 #[serde(skip_serializing_if = "Option::is_none")]
9521 pub osint: Option<Vec<Osint>>,
9522 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
9523 #[serde(rename = "policy")]
9524 #[serde(skip_serializing_if = "Option::is_none")]
9525 pub policy: Option<Box<Policy>>,
9526 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9527 #[serde(rename = "priority")]
9528 #[serde(skip_serializing_if = "Option::is_none")]
9529 pub priority: Option<String>,
9530 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
9531 #[serde(rename = "priority_id")]
9532 #[serde(skip_serializing_if = "Option::is_none")]
9533 pub priority_id: Option<i64>,
9534 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
9535 #[serde(rename = "raw_data")]
9536 #[serde(skip_serializing_if = "Option::is_none")]
9537 pub raw_data: Option<String>,
9538 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
9539 #[serde(rename = "raw_data_hash")]
9540 #[serde(skip_serializing_if = "Option::is_none")]
9541 pub raw_data_hash: Option<Box<Fingerprint>>,
9542 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
9543 #[serde(rename = "raw_data_size")]
9544 #[serde(skip_serializing_if = "Option::is_none")]
9545 pub raw_data_size: Option<i64>,
9546 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
9547 #[serde(rename = "risk_details")]
9548 #[serde(skip_serializing_if = "Option::is_none")]
9549 pub risk_details: Option<String>,
9550 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
9551 #[serde(rename = "risk_level")]
9552 #[serde(skip_serializing_if = "Option::is_none")]
9553 pub risk_level: Option<String>,
9554 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
9555 #[serde(rename = "risk_level_id")]
9556 #[serde(skip_serializing_if = "Option::is_none")]
9557 pub risk_level_id: Option<i64>,
9558 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
9559 #[serde(rename = "risk_score")]
9560 #[serde(skip_serializing_if = "Option::is_none")]
9561 pub risk_score: Option<i64>,
9562 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
9563 #[serde(rename = "severity")]
9564 #[serde(skip_serializing_if = "Option::is_none")]
9565 pub severity: Option<String>,
9566 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
9567 #[serde(rename = "severity_id")]
9568 #[serde(skip_serializing_if = "Option::is_none")]
9569 pub severity_id: Option<i64>,
9570 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
9571 #[serde(rename = "src_url")]
9572 #[serde(skip_serializing_if = "Option::is_none")]
9573 pub src_url: Option<String>,
9574 #[doc = "Start Time\n\nThe time of the least recent event included in the incident.\n\noptional"]
9575 #[serde(rename = "start_time")]
9576 #[serde(skip_serializing_if = "Option::is_none")]
9577 pub start_time: Option<i64>,
9578 #[doc = "Start Time\n\nThe time of the least recent event included in the incident.\n\noptional"]
9579 #[serde(rename = "start_time_dt")]
9580 #[serde(skip_serializing_if = "Option::is_none")]
9581 pub start_time_dt: Option<String>,
9582 #[doc = "Status\n\nThe normalized status of the Incident normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\nrecommended"]
9583 #[serde(rename = "status")]
9584 #[serde(skip_serializing_if = "Option::is_none")]
9585 pub status: Option<String>,
9586 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
9587 #[serde(rename = "status_code")]
9588 #[serde(skip_serializing_if = "Option::is_none")]
9589 pub status_code: Option<String>,
9590 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
9591 #[serde(rename = "status_detail")]
9592 #[serde(skip_serializing_if = "Option::is_none")]
9593 pub status_detail: Option<String>,
9594 #[doc = "Status ID\n\nThe normalized status identifier of the Incident.\n\nrequired"]
9595 #[serde(rename = "status_id")]
9596 #[serde(skip_serializing_if = "Option::is_none")]
9597 pub status_id: Option<i64>,
9598 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
9599 #[serde(rename = "ticket")]
9600 #[serde(skip_serializing_if = "Option::is_none")]
9601 pub ticket: Option<Box<Ticket>>,
9602 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
9603 #[serde(rename = "tickets")]
9604 #[serde(skip_serializing_if = "Option::is_none")]
9605 pub tickets: Option<Vec<Ticket>>,
9606 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
9607 #[serde(rename = "time")]
9608 #[serde(skip_serializing_if = "Option::is_none")]
9609 pub time: Option<i64>,
9610 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
9611 #[serde(rename = "time_dt")]
9612 #[serde(skip_serializing_if = "Option::is_none")]
9613 pub time_dt: Option<String>,
9614 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
9615 #[serde(rename = "timezone_offset")]
9616 #[serde(skip_serializing_if = "Option::is_none")]
9617 pub timezone_offset: Option<i64>,
9618 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
9619 #[serde(rename = "type_name")]
9620 #[serde(skip_serializing_if = "Option::is_none")]
9621 pub type_name: Option<String>,
9622 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
9623 #[serde(rename = "type_uid")]
9624 #[serde(skip_serializing_if = "Option::is_none")]
9625 pub type_uid: Option<i64>,
9626 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
9627 #[serde(rename = "unmapped")]
9628 #[serde(skip_serializing_if = "Option::is_none")]
9629 pub unmapped: Option<serde_json::Value>,
9630 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
9631 #[serde(rename = "vendor_attributes")]
9632 #[serde(skip_serializing_if = "Option::is_none")]
9633 pub vendor_attributes: Option<Box<VendorAttributes>>,
9634 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
9635 #[serde(rename = "verdict")]
9636 #[serde(skip_serializing_if = "Option::is_none")]
9637 pub verdict: Option<String>,
9638 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
9639 #[serde(rename = "verdict_id")]
9640 #[serde(skip_serializing_if = "Option::is_none")]
9641 pub verdict_id: Option<i64>,
9642}
9643#[doc = "Device Inventory Info\n\nDevice Inventory Info events report device inventory data that is either logged or proactively collected. For example, when collecting device information from a CMDB or running a network sweep of connected devices.\n\n[UID:5001] Category: discovery | Name: inventory_info"]
9644#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
9645#[serde(default)]
9646#[non_exhaustive]
9647pub struct InventoryInfo {
9648 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
9649 #[serde(rename = "action")]
9650 #[serde(skip_serializing_if = "Option::is_none")]
9651 pub action: Option<String>,
9652 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
9653 #[serde(rename = "action_id")]
9654 #[serde(skip_serializing_if = "Option::is_none")]
9655 pub action_id: Option<i64>,
9656 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
9657 #[serde(rename = "activity_id")]
9658 #[serde(skip_serializing_if = "Option::is_none")]
9659 pub activity_id: Option<i64>,
9660 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
9661 #[serde(rename = "activity_name")]
9662 #[serde(skip_serializing_if = "Option::is_none")]
9663 pub activity_name: Option<String>,
9664 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
9665 #[serde(rename = "actor")]
9666 #[serde(skip_serializing_if = "Option::is_none")]
9667 pub actor: Option<Box<Actor>>,
9668 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
9669 #[serde(rename = "api")]
9670 #[serde(skip_serializing_if = "Option::is_none")]
9671 pub api: Option<Box<Api>>,
9672 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
9673 #[serde(rename = "attacks")]
9674 #[serde(skip_serializing_if = "Option::is_none")]
9675 pub attacks: Option<Vec<Attack>>,
9676 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
9677 #[serde(rename = "authorizations")]
9678 #[serde(skip_serializing_if = "Option::is_none")]
9679 pub authorizations: Option<Vec<Authorization>>,
9680 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
9681 #[serde(rename = "category_name")]
9682 #[serde(skip_serializing_if = "Option::is_none")]
9683 pub category_name: Option<String>,
9684 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
9685 #[serde(rename = "category_uid")]
9686 #[serde(skip_serializing_if = "Option::is_none")]
9687 pub category_uid: Option<i64>,
9688 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Device Inventory Info</code>.\n\noptional"]
9689 #[serde(rename = "class_name")]
9690 #[serde(skip_serializing_if = "Option::is_none")]
9691 pub class_name: Option<String>,
9692 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
9693 #[serde(rename = "class_uid")]
9694 #[serde(skip_serializing_if = "Option::is_none")]
9695 pub class_uid: Option<i64>,
9696 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
9697 #[serde(rename = "cloud")]
9698 #[serde(skip_serializing_if = "Option::is_none")]
9699 pub cloud: Option<Box<Cloud>>,
9700 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9701 #[serde(rename = "confidence")]
9702 #[serde(skip_serializing_if = "Option::is_none")]
9703 pub confidence: Option<String>,
9704 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
9705 #[serde(rename = "confidence_id")]
9706 #[serde(skip_serializing_if = "Option::is_none")]
9707 pub confidence_id: Option<i64>,
9708 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
9709 #[serde(rename = "confidence_score")]
9710 #[serde(skip_serializing_if = "Option::is_none")]
9711 pub confidence_score: Option<i64>,
9712 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
9713 #[serde(rename = "count")]
9714 #[serde(skip_serializing_if = "Option::is_none")]
9715 pub count: Option<i64>,
9716 #[doc = "Device\n\nThe device that is being discovered by an inventory process.\n\nrequired"]
9717 #[serde(rename = "device")]
9718 #[serde(skip_serializing_if = "Option::is_none")]
9719 pub device: Option<Box<Device>>,
9720 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9721 #[serde(rename = "disposition")]
9722 #[serde(skip_serializing_if = "Option::is_none")]
9723 pub disposition: Option<String>,
9724 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
9725 #[serde(rename = "disposition_id")]
9726 #[serde(skip_serializing_if = "Option::is_none")]
9727 pub disposition_id: Option<i64>,
9728 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
9729 #[serde(rename = "duration")]
9730 #[serde(skip_serializing_if = "Option::is_none")]
9731 pub duration: Option<i64>,
9732 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
9733 #[serde(rename = "end_time")]
9734 #[serde(skip_serializing_if = "Option::is_none")]
9735 pub end_time: Option<i64>,
9736 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
9737 #[serde(rename = "end_time_dt")]
9738 #[serde(skip_serializing_if = "Option::is_none")]
9739 pub end_time_dt: Option<String>,
9740 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
9741 #[serde(rename = "enrichments")]
9742 #[serde(skip_serializing_if = "Option::is_none")]
9743 pub enrichments: Option<Vec<Enrichment>>,
9744 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
9745 #[serde(rename = "firewall_rule")]
9746 #[serde(skip_serializing_if = "Option::is_none")]
9747 pub firewall_rule: Option<Box<FirewallRule>>,
9748 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
9749 #[serde(rename = "is_alert")]
9750 #[serde(skip_serializing_if = "Option::is_none")]
9751 pub is_alert: Option<bool>,
9752 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
9753 #[serde(rename = "malware")]
9754 #[serde(skip_serializing_if = "Option::is_none")]
9755 pub malware: Option<Vec<Malware>>,
9756 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
9757 #[serde(rename = "malware_scan_info")]
9758 #[serde(skip_serializing_if = "Option::is_none")]
9759 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
9760 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
9761 #[serde(rename = "message")]
9762 #[serde(skip_serializing_if = "Option::is_none")]
9763 pub message: Option<String>,
9764 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
9765 #[serde(rename = "metadata")]
9766 #[serde(skip_serializing_if = "Option::is_none")]
9767 pub metadata: Option<Box<Metadata>>,
9768 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
9769 #[serde(rename = "observables")]
9770 #[serde(skip_serializing_if = "Option::is_none")]
9771 pub observables: Option<Vec<Observable>>,
9772 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
9773 #[serde(rename = "osint")]
9774 #[serde(skip_serializing_if = "Option::is_none")]
9775 pub osint: Option<Vec<Osint>>,
9776 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
9777 #[serde(rename = "policy")]
9778 #[serde(skip_serializing_if = "Option::is_none")]
9779 pub policy: Option<Box<Policy>>,
9780 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
9781 #[serde(rename = "raw_data")]
9782 #[serde(skip_serializing_if = "Option::is_none")]
9783 pub raw_data: Option<String>,
9784 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
9785 #[serde(rename = "raw_data_hash")]
9786 #[serde(skip_serializing_if = "Option::is_none")]
9787 pub raw_data_hash: Option<Box<Fingerprint>>,
9788 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
9789 #[serde(rename = "raw_data_size")]
9790 #[serde(skip_serializing_if = "Option::is_none")]
9791 pub raw_data_size: Option<i64>,
9792 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
9793 #[serde(rename = "risk_details")]
9794 #[serde(skip_serializing_if = "Option::is_none")]
9795 pub risk_details: Option<String>,
9796 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
9797 #[serde(rename = "risk_level")]
9798 #[serde(skip_serializing_if = "Option::is_none")]
9799 pub risk_level: Option<String>,
9800 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
9801 #[serde(rename = "risk_level_id")]
9802 #[serde(skip_serializing_if = "Option::is_none")]
9803 pub risk_level_id: Option<i64>,
9804 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
9805 #[serde(rename = "risk_score")]
9806 #[serde(skip_serializing_if = "Option::is_none")]
9807 pub risk_score: Option<i64>,
9808 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
9809 #[serde(rename = "severity")]
9810 #[serde(skip_serializing_if = "Option::is_none")]
9811 pub severity: Option<String>,
9812 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
9813 #[serde(rename = "severity_id")]
9814 #[serde(skip_serializing_if = "Option::is_none")]
9815 pub severity_id: Option<i64>,
9816 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
9817 #[serde(rename = "start_time")]
9818 #[serde(skip_serializing_if = "Option::is_none")]
9819 pub start_time: Option<i64>,
9820 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
9821 #[serde(rename = "start_time_dt")]
9822 #[serde(skip_serializing_if = "Option::is_none")]
9823 pub start_time_dt: Option<String>,
9824 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
9825 #[serde(rename = "status")]
9826 #[serde(skip_serializing_if = "Option::is_none")]
9827 pub status: Option<String>,
9828 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
9829 #[serde(rename = "status_code")]
9830 #[serde(skip_serializing_if = "Option::is_none")]
9831 pub status_code: Option<String>,
9832 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
9833 #[serde(rename = "status_detail")]
9834 #[serde(skip_serializing_if = "Option::is_none")]
9835 pub status_detail: Option<String>,
9836 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
9837 #[serde(rename = "status_id")]
9838 #[serde(skip_serializing_if = "Option::is_none")]
9839 pub status_id: Option<i64>,
9840 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
9841 #[serde(rename = "time")]
9842 #[serde(skip_serializing_if = "Option::is_none")]
9843 pub time: Option<i64>,
9844 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
9845 #[serde(rename = "time_dt")]
9846 #[serde(skip_serializing_if = "Option::is_none")]
9847 pub time_dt: Option<String>,
9848 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
9849 #[serde(rename = "timezone_offset")]
9850 #[serde(skip_serializing_if = "Option::is_none")]
9851 pub timezone_offset: Option<i64>,
9852 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
9853 #[serde(rename = "type_name")]
9854 #[serde(skip_serializing_if = "Option::is_none")]
9855 pub type_name: Option<String>,
9856 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
9857 #[serde(rename = "type_uid")]
9858 #[serde(skip_serializing_if = "Option::is_none")]
9859 pub type_uid: Option<i64>,
9860 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
9861 #[serde(rename = "unmapped")]
9862 #[serde(skip_serializing_if = "Option::is_none")]
9863 pub unmapped: Option<serde_json::Value>,
9864}
9865#[doc = "Job Query\n\nJob Query events report information about scheduled jobs.\n\n[UID:5010] Category: discovery | Name: job_query"]
9866#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
9867#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
9868#[serde(default)]
9869#[non_exhaustive]
9870pub struct JobQuery {
9871 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
9872 #[serde(rename = "action")]
9873 #[serde(skip_serializing_if = "Option::is_none")]
9874 pub action: Option<String>,
9875 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
9876 #[serde(rename = "action_id")]
9877 #[serde(skip_serializing_if = "Option::is_none")]
9878 pub action_id: Option<i64>,
9879 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
9880 #[serde(rename = "activity_id")]
9881 #[serde(skip_serializing_if = "Option::is_none")]
9882 pub activity_id: Option<i64>,
9883 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
9884 #[serde(rename = "activity_name")]
9885 #[serde(skip_serializing_if = "Option::is_none")]
9886 pub activity_name: Option<String>,
9887 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
9888 #[serde(rename = "actor")]
9889 #[serde(skip_serializing_if = "Option::is_none")]
9890 pub actor: Option<Box<Actor>>,
9891 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
9892 #[serde(rename = "api")]
9893 #[serde(skip_serializing_if = "Option::is_none")]
9894 pub api: Option<Box<Api>>,
9895 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
9896 #[serde(rename = "attacks")]
9897 #[serde(skip_serializing_if = "Option::is_none")]
9898 pub attacks: Option<Vec<Attack>>,
9899 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
9900 #[serde(rename = "authorizations")]
9901 #[serde(skip_serializing_if = "Option::is_none")]
9902 pub authorizations: Option<Vec<Authorization>>,
9903 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
9904 #[serde(rename = "category_name")]
9905 #[serde(skip_serializing_if = "Option::is_none")]
9906 pub category_name: Option<String>,
9907 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
9908 #[serde(rename = "category_uid")]
9909 #[serde(skip_serializing_if = "Option::is_none")]
9910 pub category_uid: Option<i64>,
9911 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Job Query</code>.\n\noptional"]
9912 #[serde(rename = "class_name")]
9913 #[serde(skip_serializing_if = "Option::is_none")]
9914 pub class_name: Option<String>,
9915 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
9916 #[serde(rename = "class_uid")]
9917 #[serde(skip_serializing_if = "Option::is_none")]
9918 pub class_uid: Option<i64>,
9919 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
9920 #[serde(rename = "cloud")]
9921 #[serde(skip_serializing_if = "Option::is_none")]
9922 pub cloud: Option<Box<Cloud>>,
9923 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9924 #[serde(rename = "confidence")]
9925 #[serde(skip_serializing_if = "Option::is_none")]
9926 pub confidence: Option<String>,
9927 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
9928 #[serde(rename = "confidence_id")]
9929 #[serde(skip_serializing_if = "Option::is_none")]
9930 pub confidence_id: Option<i64>,
9931 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
9932 #[serde(rename = "confidence_score")]
9933 #[serde(skip_serializing_if = "Option::is_none")]
9934 pub confidence_score: Option<i64>,
9935 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
9936 #[serde(rename = "count")]
9937 #[serde(skip_serializing_if = "Option::is_none")]
9938 pub count: Option<i64>,
9939 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
9940 #[serde(rename = "device")]
9941 #[serde(skip_serializing_if = "Option::is_none")]
9942 pub device: Option<Box<Device>>,
9943 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
9944 #[serde(rename = "disposition")]
9945 #[serde(skip_serializing_if = "Option::is_none")]
9946 pub disposition: Option<String>,
9947 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
9948 #[serde(rename = "disposition_id")]
9949 #[serde(skip_serializing_if = "Option::is_none")]
9950 pub disposition_id: Option<i64>,
9951 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
9952 #[serde(rename = "duration")]
9953 #[serde(skip_serializing_if = "Option::is_none")]
9954 pub duration: Option<i64>,
9955 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
9956 #[serde(rename = "end_time")]
9957 #[serde(skip_serializing_if = "Option::is_none")]
9958 pub end_time: Option<i64>,
9959 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
9960 #[serde(rename = "end_time_dt")]
9961 #[serde(skip_serializing_if = "Option::is_none")]
9962 pub end_time_dt: Option<String>,
9963 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
9964 #[serde(rename = "enrichments")]
9965 #[serde(skip_serializing_if = "Option::is_none")]
9966 pub enrichments: Option<Vec<Enrichment>>,
9967 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
9968 #[serde(rename = "firewall_rule")]
9969 #[serde(skip_serializing_if = "Option::is_none")]
9970 pub firewall_rule: Option<Box<FirewallRule>>,
9971 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
9972 #[serde(rename = "is_alert")]
9973 #[serde(skip_serializing_if = "Option::is_none")]
9974 pub is_alert: Option<bool>,
9975 #[doc = "Job\n\nThe job object that pertains to the event.\n\nrequired"]
9976 #[serde(rename = "job")]
9977 #[serde(skip_serializing_if = "Option::is_none")]
9978 pub job: Option<Box<Job>>,
9979 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
9980 #[serde(rename = "malware")]
9981 #[serde(skip_serializing_if = "Option::is_none")]
9982 pub malware: Option<Vec<Malware>>,
9983 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
9984 #[serde(rename = "malware_scan_info")]
9985 #[serde(skip_serializing_if = "Option::is_none")]
9986 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
9987 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
9988 #[serde(rename = "message")]
9989 #[serde(skip_serializing_if = "Option::is_none")]
9990 pub message: Option<String>,
9991 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
9992 #[serde(rename = "metadata")]
9993 #[serde(skip_serializing_if = "Option::is_none")]
9994 pub metadata: Option<Box<Metadata>>,
9995 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
9996 #[serde(rename = "observables")]
9997 #[serde(skip_serializing_if = "Option::is_none")]
9998 pub observables: Option<Vec<Observable>>,
9999 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
10000 #[serde(rename = "osint")]
10001 #[serde(skip_serializing_if = "Option::is_none")]
10002 pub osint: Option<Vec<Osint>>,
10003 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
10004 #[serde(rename = "policy")]
10005 #[serde(skip_serializing_if = "Option::is_none")]
10006 pub policy: Option<Box<Policy>>,
10007 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
10008 #[serde(rename = "query_info")]
10009 #[serde(skip_serializing_if = "Option::is_none")]
10010 pub query_info: Option<Box<QueryInfo>>,
10011 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
10012 #[serde(rename = "query_result")]
10013 #[serde(skip_serializing_if = "Option::is_none")]
10014 pub query_result: Option<String>,
10015 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
10016 #[serde(rename = "query_result_id")]
10017 #[serde(skip_serializing_if = "Option::is_none")]
10018 pub query_result_id: Option<i64>,
10019 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
10020 #[serde(rename = "raw_data")]
10021 #[serde(skip_serializing_if = "Option::is_none")]
10022 pub raw_data: Option<String>,
10023 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
10024 #[serde(rename = "raw_data_hash")]
10025 #[serde(skip_serializing_if = "Option::is_none")]
10026 pub raw_data_hash: Option<Box<Fingerprint>>,
10027 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
10028 #[serde(rename = "raw_data_size")]
10029 #[serde(skip_serializing_if = "Option::is_none")]
10030 pub raw_data_size: Option<i64>,
10031 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
10032 #[serde(rename = "risk_details")]
10033 #[serde(skip_serializing_if = "Option::is_none")]
10034 pub risk_details: Option<String>,
10035 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
10036 #[serde(rename = "risk_level")]
10037 #[serde(skip_serializing_if = "Option::is_none")]
10038 pub risk_level: Option<String>,
10039 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
10040 #[serde(rename = "risk_level_id")]
10041 #[serde(skip_serializing_if = "Option::is_none")]
10042 pub risk_level_id: Option<i64>,
10043 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
10044 #[serde(rename = "risk_score")]
10045 #[serde(skip_serializing_if = "Option::is_none")]
10046 pub risk_score: Option<i64>,
10047 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
10048 #[serde(rename = "severity")]
10049 #[serde(skip_serializing_if = "Option::is_none")]
10050 pub severity: Option<String>,
10051 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
10052 #[serde(rename = "severity_id")]
10053 #[serde(skip_serializing_if = "Option::is_none")]
10054 pub severity_id: Option<i64>,
10055 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10056 #[serde(rename = "start_time")]
10057 #[serde(skip_serializing_if = "Option::is_none")]
10058 pub start_time: Option<i64>,
10059 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10060 #[serde(rename = "start_time_dt")]
10061 #[serde(skip_serializing_if = "Option::is_none")]
10062 pub start_time_dt: Option<String>,
10063 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
10064 #[serde(rename = "status")]
10065 #[serde(skip_serializing_if = "Option::is_none")]
10066 pub status: Option<String>,
10067 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
10068 #[serde(rename = "status_code")]
10069 #[serde(skip_serializing_if = "Option::is_none")]
10070 pub status_code: Option<String>,
10071 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
10072 #[serde(rename = "status_detail")]
10073 #[serde(skip_serializing_if = "Option::is_none")]
10074 pub status_detail: Option<String>,
10075 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
10076 #[serde(rename = "status_id")]
10077 #[serde(skip_serializing_if = "Option::is_none")]
10078 pub status_id: Option<i64>,
10079 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
10080 #[serde(rename = "time")]
10081 #[serde(skip_serializing_if = "Option::is_none")]
10082 pub time: Option<i64>,
10083 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
10084 #[serde(rename = "time_dt")]
10085 #[serde(skip_serializing_if = "Option::is_none")]
10086 pub time_dt: Option<String>,
10087 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
10088 #[serde(rename = "timezone_offset")]
10089 #[serde(skip_serializing_if = "Option::is_none")]
10090 pub timezone_offset: Option<i64>,
10091 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
10092 #[serde(rename = "type_name")]
10093 #[serde(skip_serializing_if = "Option::is_none")]
10094 pub type_name: Option<String>,
10095 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
10096 #[serde(rename = "type_uid")]
10097 #[serde(skip_serializing_if = "Option::is_none")]
10098 pub type_uid: Option<i64>,
10099 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
10100 #[serde(rename = "unmapped")]
10101 #[serde(skip_serializing_if = "Option::is_none")]
10102 pub unmapped: Option<serde_json::Value>,
10103}
10104#[doc = "Kernel Activity\n\nKernel Activity events report when an process creates, reads, or deletes a kernel resource.\n\n[UID:1003] Category: system | Name: kernel_activity"]
10105#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10106#[serde(default)]
10107#[non_exhaustive]
10108pub struct KernelActivity {
10109 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
10110 #[serde(rename = "action")]
10111 #[serde(skip_serializing_if = "Option::is_none")]
10112 pub action: Option<String>,
10113 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
10114 #[serde(rename = "action_id")]
10115 #[serde(skip_serializing_if = "Option::is_none")]
10116 pub action_id: Option<i64>,
10117 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
10118 #[serde(rename = "activity_id")]
10119 #[serde(skip_serializing_if = "Option::is_none")]
10120 pub activity_id: Option<i64>,
10121 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
10122 #[serde(rename = "activity_name")]
10123 #[serde(skip_serializing_if = "Option::is_none")]
10124 pub activity_name: Option<String>,
10125 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
10126 #[serde(rename = "actor")]
10127 #[serde(skip_serializing_if = "Option::is_none")]
10128 pub actor: Option<Box<Actor>>,
10129 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
10130 #[serde(rename = "api")]
10131 #[serde(skip_serializing_if = "Option::is_none")]
10132 pub api: Option<Box<Api>>,
10133 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
10134 #[serde(rename = "attacks")]
10135 #[serde(skip_serializing_if = "Option::is_none")]
10136 pub attacks: Option<Vec<Attack>>,
10137 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
10138 #[serde(rename = "authorizations")]
10139 #[serde(skip_serializing_if = "Option::is_none")]
10140 pub authorizations: Option<Vec<Authorization>>,
10141 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
10142 #[serde(rename = "category_name")]
10143 #[serde(skip_serializing_if = "Option::is_none")]
10144 pub category_name: Option<String>,
10145 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
10146 #[serde(rename = "category_uid")]
10147 #[serde(skip_serializing_if = "Option::is_none")]
10148 pub category_uid: Option<i64>,
10149 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Kernel Activity</code>.\n\noptional"]
10150 #[serde(rename = "class_name")]
10151 #[serde(skip_serializing_if = "Option::is_none")]
10152 pub class_name: Option<String>,
10153 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
10154 #[serde(rename = "class_uid")]
10155 #[serde(skip_serializing_if = "Option::is_none")]
10156 pub class_uid: Option<i64>,
10157 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
10158 #[serde(rename = "cloud")]
10159 #[serde(skip_serializing_if = "Option::is_none")]
10160 pub cloud: Option<Box<Cloud>>,
10161 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10162 #[serde(rename = "confidence")]
10163 #[serde(skip_serializing_if = "Option::is_none")]
10164 pub confidence: Option<String>,
10165 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
10166 #[serde(rename = "confidence_id")]
10167 #[serde(skip_serializing_if = "Option::is_none")]
10168 pub confidence_id: Option<i64>,
10169 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
10170 #[serde(rename = "confidence_score")]
10171 #[serde(skip_serializing_if = "Option::is_none")]
10172 pub confidence_score: Option<i64>,
10173 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
10174 #[serde(rename = "count")]
10175 #[serde(skip_serializing_if = "Option::is_none")]
10176 pub count: Option<i64>,
10177 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
10178 #[serde(rename = "device")]
10179 #[serde(skip_serializing_if = "Option::is_none")]
10180 pub device: Option<Box<Device>>,
10181 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10182 #[serde(rename = "disposition")]
10183 #[serde(skip_serializing_if = "Option::is_none")]
10184 pub disposition: Option<String>,
10185 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
10186 #[serde(rename = "disposition_id")]
10187 #[serde(skip_serializing_if = "Option::is_none")]
10188 pub disposition_id: Option<i64>,
10189 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
10190 #[serde(rename = "duration")]
10191 #[serde(skip_serializing_if = "Option::is_none")]
10192 pub duration: Option<i64>,
10193 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10194 #[serde(rename = "end_time")]
10195 #[serde(skip_serializing_if = "Option::is_none")]
10196 pub end_time: Option<i64>,
10197 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10198 #[serde(rename = "end_time_dt")]
10199 #[serde(skip_serializing_if = "Option::is_none")]
10200 pub end_time_dt: Option<String>,
10201 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
10202 #[serde(rename = "enrichments")]
10203 #[serde(skip_serializing_if = "Option::is_none")]
10204 pub enrichments: Option<Vec<Enrichment>>,
10205 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
10206 #[serde(rename = "firewall_rule")]
10207 #[serde(skip_serializing_if = "Option::is_none")]
10208 pub firewall_rule: Option<Box<FirewallRule>>,
10209 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
10210 #[serde(rename = "is_alert")]
10211 #[serde(skip_serializing_if = "Option::is_none")]
10212 pub is_alert: Option<bool>,
10213 #[doc = "Kernel\n\nThe target kernel resource.\n\nrequired"]
10214 #[serde(rename = "kernel")]
10215 #[serde(skip_serializing_if = "Option::is_none")]
10216 pub kernel: Option<Box<Kernel>>,
10217 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
10218 #[serde(rename = "malware")]
10219 #[serde(skip_serializing_if = "Option::is_none")]
10220 pub malware: Option<Vec<Malware>>,
10221 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
10222 #[serde(rename = "malware_scan_info")]
10223 #[serde(skip_serializing_if = "Option::is_none")]
10224 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
10225 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
10226 #[serde(rename = "message")]
10227 #[serde(skip_serializing_if = "Option::is_none")]
10228 pub message: Option<String>,
10229 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
10230 #[serde(rename = "metadata")]
10231 #[serde(skip_serializing_if = "Option::is_none")]
10232 pub metadata: Option<Box<Metadata>>,
10233 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
10234 #[serde(rename = "observables")]
10235 #[serde(skip_serializing_if = "Option::is_none")]
10236 pub observables: Option<Vec<Observable>>,
10237 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
10238 #[serde(rename = "osint")]
10239 #[serde(skip_serializing_if = "Option::is_none")]
10240 pub osint: Option<Vec<Osint>>,
10241 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
10242 #[serde(rename = "policy")]
10243 #[serde(skip_serializing_if = "Option::is_none")]
10244 pub policy: Option<Box<Policy>>,
10245 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
10246 #[serde(rename = "raw_data")]
10247 #[serde(skip_serializing_if = "Option::is_none")]
10248 pub raw_data: Option<String>,
10249 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
10250 #[serde(rename = "raw_data_hash")]
10251 #[serde(skip_serializing_if = "Option::is_none")]
10252 pub raw_data_hash: Option<Box<Fingerprint>>,
10253 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
10254 #[serde(rename = "raw_data_size")]
10255 #[serde(skip_serializing_if = "Option::is_none")]
10256 pub raw_data_size: Option<i64>,
10257 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
10258 #[serde(rename = "risk_details")]
10259 #[serde(skip_serializing_if = "Option::is_none")]
10260 pub risk_details: Option<String>,
10261 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
10262 #[serde(rename = "risk_level")]
10263 #[serde(skip_serializing_if = "Option::is_none")]
10264 pub risk_level: Option<String>,
10265 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
10266 #[serde(rename = "risk_level_id")]
10267 #[serde(skip_serializing_if = "Option::is_none")]
10268 pub risk_level_id: Option<i64>,
10269 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
10270 #[serde(rename = "risk_score")]
10271 #[serde(skip_serializing_if = "Option::is_none")]
10272 pub risk_score: Option<i64>,
10273 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
10274 #[serde(rename = "severity")]
10275 #[serde(skip_serializing_if = "Option::is_none")]
10276 pub severity: Option<String>,
10277 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
10278 #[serde(rename = "severity_id")]
10279 #[serde(skip_serializing_if = "Option::is_none")]
10280 pub severity_id: Option<i64>,
10281 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10282 #[serde(rename = "start_time")]
10283 #[serde(skip_serializing_if = "Option::is_none")]
10284 pub start_time: Option<i64>,
10285 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10286 #[serde(rename = "start_time_dt")]
10287 #[serde(skip_serializing_if = "Option::is_none")]
10288 pub start_time_dt: Option<String>,
10289 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
10290 #[serde(rename = "status")]
10291 #[serde(skip_serializing_if = "Option::is_none")]
10292 pub status: Option<String>,
10293 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
10294 #[serde(rename = "status_code")]
10295 #[serde(skip_serializing_if = "Option::is_none")]
10296 pub status_code: Option<String>,
10297 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
10298 #[serde(rename = "status_detail")]
10299 #[serde(skip_serializing_if = "Option::is_none")]
10300 pub status_detail: Option<String>,
10301 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
10302 #[serde(rename = "status_id")]
10303 #[serde(skip_serializing_if = "Option::is_none")]
10304 pub status_id: Option<i64>,
10305 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
10306 #[serde(rename = "time")]
10307 #[serde(skip_serializing_if = "Option::is_none")]
10308 pub time: Option<i64>,
10309 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
10310 #[serde(rename = "time_dt")]
10311 #[serde(skip_serializing_if = "Option::is_none")]
10312 pub time_dt: Option<String>,
10313 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
10314 #[serde(rename = "timezone_offset")]
10315 #[serde(skip_serializing_if = "Option::is_none")]
10316 pub timezone_offset: Option<i64>,
10317 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
10318 #[serde(rename = "type_name")]
10319 #[serde(skip_serializing_if = "Option::is_none")]
10320 pub type_name: Option<String>,
10321 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
10322 #[serde(rename = "type_uid")]
10323 #[serde(skip_serializing_if = "Option::is_none")]
10324 pub type_uid: Option<i64>,
10325 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
10326 #[serde(rename = "unmapped")]
10327 #[serde(skip_serializing_if = "Option::is_none")]
10328 pub unmapped: Option<serde_json::Value>,
10329}
10330#[doc = "Kernel Extension Activity\n\nKernel Extension events report when a driver/extension is loaded or unloaded into the kernel\n\n[UID:1002] Category: system | Name: kernel_extension_activity"]
10331#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10332#[serde(default)]
10333#[non_exhaustive]
10334pub struct KernelExtensionActivity {
10335 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
10336 #[serde(rename = "action")]
10337 #[serde(skip_serializing_if = "Option::is_none")]
10338 pub action: Option<String>,
10339 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
10340 #[serde(rename = "action_id")]
10341 #[serde(skip_serializing_if = "Option::is_none")]
10342 pub action_id: Option<i64>,
10343 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
10344 #[serde(rename = "activity_id")]
10345 #[serde(skip_serializing_if = "Option::is_none")]
10346 pub activity_id: Option<i64>,
10347 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
10348 #[serde(rename = "activity_name")]
10349 #[serde(skip_serializing_if = "Option::is_none")]
10350 pub activity_name: Option<String>,
10351 #[doc = "Actor\n\nThe actor process that loaded or unloaded the driver/extension.\n\nrequired"]
10352 #[serde(rename = "actor")]
10353 #[serde(skip_serializing_if = "Option::is_none")]
10354 pub actor: Option<Box<Actor>>,
10355 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
10356 #[serde(rename = "api")]
10357 #[serde(skip_serializing_if = "Option::is_none")]
10358 pub api: Option<Box<Api>>,
10359 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
10360 #[serde(rename = "attacks")]
10361 #[serde(skip_serializing_if = "Option::is_none")]
10362 pub attacks: Option<Vec<Attack>>,
10363 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
10364 #[serde(rename = "authorizations")]
10365 #[serde(skip_serializing_if = "Option::is_none")]
10366 pub authorizations: Option<Vec<Authorization>>,
10367 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
10368 #[serde(rename = "category_name")]
10369 #[serde(skip_serializing_if = "Option::is_none")]
10370 pub category_name: Option<String>,
10371 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
10372 #[serde(rename = "category_uid")]
10373 #[serde(skip_serializing_if = "Option::is_none")]
10374 pub category_uid: Option<i64>,
10375 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Kernel Extension Activity</code>.\n\noptional"]
10376 #[serde(rename = "class_name")]
10377 #[serde(skip_serializing_if = "Option::is_none")]
10378 pub class_name: Option<String>,
10379 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
10380 #[serde(rename = "class_uid")]
10381 #[serde(skip_serializing_if = "Option::is_none")]
10382 pub class_uid: Option<i64>,
10383 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
10384 #[serde(rename = "cloud")]
10385 #[serde(skip_serializing_if = "Option::is_none")]
10386 pub cloud: Option<Box<Cloud>>,
10387 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10388 #[serde(rename = "confidence")]
10389 #[serde(skip_serializing_if = "Option::is_none")]
10390 pub confidence: Option<String>,
10391 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
10392 #[serde(rename = "confidence_id")]
10393 #[serde(skip_serializing_if = "Option::is_none")]
10394 pub confidence_id: Option<i64>,
10395 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
10396 #[serde(rename = "confidence_score")]
10397 #[serde(skip_serializing_if = "Option::is_none")]
10398 pub confidence_score: Option<i64>,
10399 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
10400 #[serde(rename = "count")]
10401 #[serde(skip_serializing_if = "Option::is_none")]
10402 pub count: Option<i64>,
10403 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
10404 #[serde(rename = "device")]
10405 #[serde(skip_serializing_if = "Option::is_none")]
10406 pub device: Option<Box<Device>>,
10407 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10408 #[serde(rename = "disposition")]
10409 #[serde(skip_serializing_if = "Option::is_none")]
10410 pub disposition: Option<String>,
10411 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
10412 #[serde(rename = "disposition_id")]
10413 #[serde(skip_serializing_if = "Option::is_none")]
10414 pub disposition_id: Option<i64>,
10415 #[doc = "Kernel Driver\n\nThe driver that was loaded/unloaded into the kernel\n\nrequired"]
10416 #[serde(rename = "driver")]
10417 #[serde(skip_serializing_if = "Option::is_none")]
10418 pub driver: Option<Box<KernelDriver>>,
10419 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
10420 #[serde(rename = "duration")]
10421 #[serde(skip_serializing_if = "Option::is_none")]
10422 pub duration: Option<i64>,
10423 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10424 #[serde(rename = "end_time")]
10425 #[serde(skip_serializing_if = "Option::is_none")]
10426 pub end_time: Option<i64>,
10427 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10428 #[serde(rename = "end_time_dt")]
10429 #[serde(skip_serializing_if = "Option::is_none")]
10430 pub end_time_dt: Option<String>,
10431 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
10432 #[serde(rename = "enrichments")]
10433 #[serde(skip_serializing_if = "Option::is_none")]
10434 pub enrichments: Option<Vec<Enrichment>>,
10435 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
10436 #[serde(rename = "firewall_rule")]
10437 #[serde(skip_serializing_if = "Option::is_none")]
10438 pub firewall_rule: Option<Box<FirewallRule>>,
10439 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
10440 #[serde(rename = "is_alert")]
10441 #[serde(skip_serializing_if = "Option::is_none")]
10442 pub is_alert: Option<bool>,
10443 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
10444 #[serde(rename = "malware")]
10445 #[serde(skip_serializing_if = "Option::is_none")]
10446 pub malware: Option<Vec<Malware>>,
10447 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
10448 #[serde(rename = "malware_scan_info")]
10449 #[serde(skip_serializing_if = "Option::is_none")]
10450 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
10451 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
10452 #[serde(rename = "message")]
10453 #[serde(skip_serializing_if = "Option::is_none")]
10454 pub message: Option<String>,
10455 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
10456 #[serde(rename = "metadata")]
10457 #[serde(skip_serializing_if = "Option::is_none")]
10458 pub metadata: Option<Box<Metadata>>,
10459 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
10460 #[serde(rename = "observables")]
10461 #[serde(skip_serializing_if = "Option::is_none")]
10462 pub observables: Option<Vec<Observable>>,
10463 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
10464 #[serde(rename = "osint")]
10465 #[serde(skip_serializing_if = "Option::is_none")]
10466 pub osint: Option<Vec<Osint>>,
10467 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
10468 #[serde(rename = "policy")]
10469 #[serde(skip_serializing_if = "Option::is_none")]
10470 pub policy: Option<Box<Policy>>,
10471 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
10472 #[serde(rename = "raw_data")]
10473 #[serde(skip_serializing_if = "Option::is_none")]
10474 pub raw_data: Option<String>,
10475 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
10476 #[serde(rename = "raw_data_hash")]
10477 #[serde(skip_serializing_if = "Option::is_none")]
10478 pub raw_data_hash: Option<Box<Fingerprint>>,
10479 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
10480 #[serde(rename = "raw_data_size")]
10481 #[serde(skip_serializing_if = "Option::is_none")]
10482 pub raw_data_size: Option<i64>,
10483 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
10484 #[serde(rename = "risk_details")]
10485 #[serde(skip_serializing_if = "Option::is_none")]
10486 pub risk_details: Option<String>,
10487 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
10488 #[serde(rename = "risk_level")]
10489 #[serde(skip_serializing_if = "Option::is_none")]
10490 pub risk_level: Option<String>,
10491 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
10492 #[serde(rename = "risk_level_id")]
10493 #[serde(skip_serializing_if = "Option::is_none")]
10494 pub risk_level_id: Option<i64>,
10495 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
10496 #[serde(rename = "risk_score")]
10497 #[serde(skip_serializing_if = "Option::is_none")]
10498 pub risk_score: Option<i64>,
10499 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
10500 #[serde(rename = "severity")]
10501 #[serde(skip_serializing_if = "Option::is_none")]
10502 pub severity: Option<String>,
10503 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
10504 #[serde(rename = "severity_id")]
10505 #[serde(skip_serializing_if = "Option::is_none")]
10506 pub severity_id: Option<i64>,
10507 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10508 #[serde(rename = "start_time")]
10509 #[serde(skip_serializing_if = "Option::is_none")]
10510 pub start_time: Option<i64>,
10511 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10512 #[serde(rename = "start_time_dt")]
10513 #[serde(skip_serializing_if = "Option::is_none")]
10514 pub start_time_dt: Option<String>,
10515 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
10516 #[serde(rename = "status")]
10517 #[serde(skip_serializing_if = "Option::is_none")]
10518 pub status: Option<String>,
10519 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
10520 #[serde(rename = "status_code")]
10521 #[serde(skip_serializing_if = "Option::is_none")]
10522 pub status_code: Option<String>,
10523 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
10524 #[serde(rename = "status_detail")]
10525 #[serde(skip_serializing_if = "Option::is_none")]
10526 pub status_detail: Option<String>,
10527 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
10528 #[serde(rename = "status_id")]
10529 #[serde(skip_serializing_if = "Option::is_none")]
10530 pub status_id: Option<i64>,
10531 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
10532 #[serde(rename = "time")]
10533 #[serde(skip_serializing_if = "Option::is_none")]
10534 pub time: Option<i64>,
10535 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
10536 #[serde(rename = "time_dt")]
10537 #[serde(skip_serializing_if = "Option::is_none")]
10538 pub time_dt: Option<String>,
10539 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
10540 #[serde(rename = "timezone_offset")]
10541 #[serde(skip_serializing_if = "Option::is_none")]
10542 pub timezone_offset: Option<i64>,
10543 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
10544 #[serde(rename = "type_name")]
10545 #[serde(skip_serializing_if = "Option::is_none")]
10546 pub type_name: Option<String>,
10547 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
10548 #[serde(rename = "type_uid")]
10549 #[serde(skip_serializing_if = "Option::is_none")]
10550 pub type_uid: Option<i64>,
10551 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
10552 #[serde(rename = "unmapped")]
10553 #[serde(skip_serializing_if = "Option::is_none")]
10554 pub unmapped: Option<serde_json::Value>,
10555}
10556#[doc = "Kernel Object Query\n\nKernel Object Query events report information about discovered kernel resources.\n\n[UID:5006] Category: discovery | Name: kernel_object_query"]
10557#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
10558#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10559#[serde(default)]
10560#[non_exhaustive]
10561pub struct KernelObjectQuery {
10562 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
10563 #[serde(rename = "action")]
10564 #[serde(skip_serializing_if = "Option::is_none")]
10565 pub action: Option<String>,
10566 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
10567 #[serde(rename = "action_id")]
10568 #[serde(skip_serializing_if = "Option::is_none")]
10569 pub action_id: Option<i64>,
10570 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
10571 #[serde(rename = "activity_id")]
10572 #[serde(skip_serializing_if = "Option::is_none")]
10573 pub activity_id: Option<i64>,
10574 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
10575 #[serde(rename = "activity_name")]
10576 #[serde(skip_serializing_if = "Option::is_none")]
10577 pub activity_name: Option<String>,
10578 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
10579 #[serde(rename = "actor")]
10580 #[serde(skip_serializing_if = "Option::is_none")]
10581 pub actor: Option<Box<Actor>>,
10582 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
10583 #[serde(rename = "api")]
10584 #[serde(skip_serializing_if = "Option::is_none")]
10585 pub api: Option<Box<Api>>,
10586 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
10587 #[serde(rename = "attacks")]
10588 #[serde(skip_serializing_if = "Option::is_none")]
10589 pub attacks: Option<Vec<Attack>>,
10590 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
10591 #[serde(rename = "authorizations")]
10592 #[serde(skip_serializing_if = "Option::is_none")]
10593 pub authorizations: Option<Vec<Authorization>>,
10594 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
10595 #[serde(rename = "category_name")]
10596 #[serde(skip_serializing_if = "Option::is_none")]
10597 pub category_name: Option<String>,
10598 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
10599 #[serde(rename = "category_uid")]
10600 #[serde(skip_serializing_if = "Option::is_none")]
10601 pub category_uid: Option<i64>,
10602 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Kernel Object Query</code>.\n\noptional"]
10603 #[serde(rename = "class_name")]
10604 #[serde(skip_serializing_if = "Option::is_none")]
10605 pub class_name: Option<String>,
10606 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
10607 #[serde(rename = "class_uid")]
10608 #[serde(skip_serializing_if = "Option::is_none")]
10609 pub class_uid: Option<i64>,
10610 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
10611 #[serde(rename = "cloud")]
10612 #[serde(skip_serializing_if = "Option::is_none")]
10613 pub cloud: Option<Box<Cloud>>,
10614 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10615 #[serde(rename = "confidence")]
10616 #[serde(skip_serializing_if = "Option::is_none")]
10617 pub confidence: Option<String>,
10618 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
10619 #[serde(rename = "confidence_id")]
10620 #[serde(skip_serializing_if = "Option::is_none")]
10621 pub confidence_id: Option<i64>,
10622 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
10623 #[serde(rename = "confidence_score")]
10624 #[serde(skip_serializing_if = "Option::is_none")]
10625 pub confidence_score: Option<i64>,
10626 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
10627 #[serde(rename = "count")]
10628 #[serde(skip_serializing_if = "Option::is_none")]
10629 pub count: Option<i64>,
10630 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
10631 #[serde(rename = "device")]
10632 #[serde(skip_serializing_if = "Option::is_none")]
10633 pub device: Option<Box<Device>>,
10634 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10635 #[serde(rename = "disposition")]
10636 #[serde(skip_serializing_if = "Option::is_none")]
10637 pub disposition: Option<String>,
10638 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
10639 #[serde(rename = "disposition_id")]
10640 #[serde(skip_serializing_if = "Option::is_none")]
10641 pub disposition_id: Option<i64>,
10642 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
10643 #[serde(rename = "duration")]
10644 #[serde(skip_serializing_if = "Option::is_none")]
10645 pub duration: Option<i64>,
10646 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10647 #[serde(rename = "end_time")]
10648 #[serde(skip_serializing_if = "Option::is_none")]
10649 pub end_time: Option<i64>,
10650 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10651 #[serde(rename = "end_time_dt")]
10652 #[serde(skip_serializing_if = "Option::is_none")]
10653 pub end_time_dt: Option<String>,
10654 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
10655 #[serde(rename = "enrichments")]
10656 #[serde(skip_serializing_if = "Option::is_none")]
10657 pub enrichments: Option<Vec<Enrichment>>,
10658 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
10659 #[serde(rename = "firewall_rule")]
10660 #[serde(skip_serializing_if = "Option::is_none")]
10661 pub firewall_rule: Option<Box<FirewallRule>>,
10662 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
10663 #[serde(rename = "is_alert")]
10664 #[serde(skip_serializing_if = "Option::is_none")]
10665 pub is_alert: Option<bool>,
10666 #[doc = "Kernel\n\nThe kernel object that pertains to the event.\n\nrequired"]
10667 #[serde(rename = "kernel")]
10668 #[serde(skip_serializing_if = "Option::is_none")]
10669 pub kernel: Option<Box<Kernel>>,
10670 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
10671 #[serde(rename = "malware")]
10672 #[serde(skip_serializing_if = "Option::is_none")]
10673 pub malware: Option<Vec<Malware>>,
10674 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
10675 #[serde(rename = "malware_scan_info")]
10676 #[serde(skip_serializing_if = "Option::is_none")]
10677 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
10678 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
10679 #[serde(rename = "message")]
10680 #[serde(skip_serializing_if = "Option::is_none")]
10681 pub message: Option<String>,
10682 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
10683 #[serde(rename = "metadata")]
10684 #[serde(skip_serializing_if = "Option::is_none")]
10685 pub metadata: Option<Box<Metadata>>,
10686 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
10687 #[serde(rename = "observables")]
10688 #[serde(skip_serializing_if = "Option::is_none")]
10689 pub observables: Option<Vec<Observable>>,
10690 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
10691 #[serde(rename = "osint")]
10692 #[serde(skip_serializing_if = "Option::is_none")]
10693 pub osint: Option<Vec<Osint>>,
10694 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
10695 #[serde(rename = "policy")]
10696 #[serde(skip_serializing_if = "Option::is_none")]
10697 pub policy: Option<Box<Policy>>,
10698 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
10699 #[serde(rename = "query_info")]
10700 #[serde(skip_serializing_if = "Option::is_none")]
10701 pub query_info: Option<Box<QueryInfo>>,
10702 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
10703 #[serde(rename = "query_result")]
10704 #[serde(skip_serializing_if = "Option::is_none")]
10705 pub query_result: Option<String>,
10706 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
10707 #[serde(rename = "query_result_id")]
10708 #[serde(skip_serializing_if = "Option::is_none")]
10709 pub query_result_id: Option<i64>,
10710 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
10711 #[serde(rename = "raw_data")]
10712 #[serde(skip_serializing_if = "Option::is_none")]
10713 pub raw_data: Option<String>,
10714 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
10715 #[serde(rename = "raw_data_hash")]
10716 #[serde(skip_serializing_if = "Option::is_none")]
10717 pub raw_data_hash: Option<Box<Fingerprint>>,
10718 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
10719 #[serde(rename = "raw_data_size")]
10720 #[serde(skip_serializing_if = "Option::is_none")]
10721 pub raw_data_size: Option<i64>,
10722 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
10723 #[serde(rename = "risk_details")]
10724 #[serde(skip_serializing_if = "Option::is_none")]
10725 pub risk_details: Option<String>,
10726 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
10727 #[serde(rename = "risk_level")]
10728 #[serde(skip_serializing_if = "Option::is_none")]
10729 pub risk_level: Option<String>,
10730 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
10731 #[serde(rename = "risk_level_id")]
10732 #[serde(skip_serializing_if = "Option::is_none")]
10733 pub risk_level_id: Option<i64>,
10734 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
10735 #[serde(rename = "risk_score")]
10736 #[serde(skip_serializing_if = "Option::is_none")]
10737 pub risk_score: Option<i64>,
10738 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
10739 #[serde(rename = "severity")]
10740 #[serde(skip_serializing_if = "Option::is_none")]
10741 pub severity: Option<String>,
10742 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
10743 #[serde(rename = "severity_id")]
10744 #[serde(skip_serializing_if = "Option::is_none")]
10745 pub severity_id: Option<i64>,
10746 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10747 #[serde(rename = "start_time")]
10748 #[serde(skip_serializing_if = "Option::is_none")]
10749 pub start_time: Option<i64>,
10750 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10751 #[serde(rename = "start_time_dt")]
10752 #[serde(skip_serializing_if = "Option::is_none")]
10753 pub start_time_dt: Option<String>,
10754 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
10755 #[serde(rename = "status")]
10756 #[serde(skip_serializing_if = "Option::is_none")]
10757 pub status: Option<String>,
10758 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
10759 #[serde(rename = "status_code")]
10760 #[serde(skip_serializing_if = "Option::is_none")]
10761 pub status_code: Option<String>,
10762 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
10763 #[serde(rename = "status_detail")]
10764 #[serde(skip_serializing_if = "Option::is_none")]
10765 pub status_detail: Option<String>,
10766 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
10767 #[serde(rename = "status_id")]
10768 #[serde(skip_serializing_if = "Option::is_none")]
10769 pub status_id: Option<i64>,
10770 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
10771 #[serde(rename = "time")]
10772 #[serde(skip_serializing_if = "Option::is_none")]
10773 pub time: Option<i64>,
10774 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
10775 #[serde(rename = "time_dt")]
10776 #[serde(skip_serializing_if = "Option::is_none")]
10777 pub time_dt: Option<String>,
10778 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
10779 #[serde(rename = "timezone_offset")]
10780 #[serde(skip_serializing_if = "Option::is_none")]
10781 pub timezone_offset: Option<i64>,
10782 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
10783 #[serde(rename = "type_name")]
10784 #[serde(skip_serializing_if = "Option::is_none")]
10785 pub type_name: Option<String>,
10786 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
10787 #[serde(rename = "type_uid")]
10788 #[serde(skip_serializing_if = "Option::is_none")]
10789 pub type_uid: Option<i64>,
10790 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
10791 #[serde(rename = "unmapped")]
10792 #[serde(skip_serializing_if = "Option::is_none")]
10793 pub unmapped: Option<serde_json::Value>,
10794}
10795#[doc = "Memory Activity\n\nMemory Activity events report when a process has memory allocated, read/modified, or other manipulation activities - such as a buffer overflow or turning off data execution protection (DEP).\n\n[UID:1004] Category: system | Name: memory_activity"]
10796#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
10797#[serde(default)]
10798#[non_exhaustive]
10799pub struct MemoryActivity {
10800 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
10801 #[serde(rename = "action")]
10802 #[serde(skip_serializing_if = "Option::is_none")]
10803 pub action: Option<String>,
10804 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
10805 #[serde(rename = "action_id")]
10806 #[serde(skip_serializing_if = "Option::is_none")]
10807 pub action_id: Option<i64>,
10808 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
10809 #[serde(rename = "activity_id")]
10810 #[serde(skip_serializing_if = "Option::is_none")]
10811 pub activity_id: Option<i64>,
10812 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
10813 #[serde(rename = "activity_name")]
10814 #[serde(skip_serializing_if = "Option::is_none")]
10815 pub activity_name: Option<String>,
10816 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
10817 #[serde(rename = "actor")]
10818 #[serde(skip_serializing_if = "Option::is_none")]
10819 pub actor: Option<Box<Actor>>,
10820 #[doc = "Actual Permissions\n\nThe permissions that were granted to access memory.\n\nrecommended"]
10821 #[serde(rename = "actual_permissions")]
10822 #[serde(skip_serializing_if = "Option::is_none")]
10823 pub actual_permissions: Option<i64>,
10824 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
10825 #[serde(rename = "api")]
10826 #[serde(skip_serializing_if = "Option::is_none")]
10827 pub api: Option<Box<Api>>,
10828 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
10829 #[serde(rename = "attacks")]
10830 #[serde(skip_serializing_if = "Option::is_none")]
10831 pub attacks: Option<Vec<Attack>>,
10832 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
10833 #[serde(rename = "authorizations")]
10834 #[serde(skip_serializing_if = "Option::is_none")]
10835 pub authorizations: Option<Vec<Authorization>>,
10836 #[doc = "Base Address\n\nThe memory address that was access or requested.\n\nrecommended"]
10837 #[serde(rename = "base_address")]
10838 #[serde(skip_serializing_if = "Option::is_none")]
10839 pub base_address: Option<String>,
10840 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
10841 #[serde(rename = "category_name")]
10842 #[serde(skip_serializing_if = "Option::is_none")]
10843 pub category_name: Option<String>,
10844 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
10845 #[serde(rename = "category_uid")]
10846 #[serde(skip_serializing_if = "Option::is_none")]
10847 pub category_uid: Option<i64>,
10848 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Memory Activity</code>.\n\noptional"]
10849 #[serde(rename = "class_name")]
10850 #[serde(skip_serializing_if = "Option::is_none")]
10851 pub class_name: Option<String>,
10852 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
10853 #[serde(rename = "class_uid")]
10854 #[serde(skip_serializing_if = "Option::is_none")]
10855 pub class_uid: Option<i64>,
10856 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
10857 #[serde(rename = "cloud")]
10858 #[serde(skip_serializing_if = "Option::is_none")]
10859 pub cloud: Option<Box<Cloud>>,
10860 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10861 #[serde(rename = "confidence")]
10862 #[serde(skip_serializing_if = "Option::is_none")]
10863 pub confidence: Option<String>,
10864 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
10865 #[serde(rename = "confidence_id")]
10866 #[serde(skip_serializing_if = "Option::is_none")]
10867 pub confidence_id: Option<i64>,
10868 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
10869 #[serde(rename = "confidence_score")]
10870 #[serde(skip_serializing_if = "Option::is_none")]
10871 pub confidence_score: Option<i64>,
10872 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
10873 #[serde(rename = "count")]
10874 #[serde(skip_serializing_if = "Option::is_none")]
10875 pub count: Option<i64>,
10876 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
10877 #[serde(rename = "device")]
10878 #[serde(skip_serializing_if = "Option::is_none")]
10879 pub device: Option<Box<Device>>,
10880 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
10881 #[serde(rename = "disposition")]
10882 #[serde(skip_serializing_if = "Option::is_none")]
10883 pub disposition: Option<String>,
10884 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
10885 #[serde(rename = "disposition_id")]
10886 #[serde(skip_serializing_if = "Option::is_none")]
10887 pub disposition_id: Option<i64>,
10888 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
10889 #[serde(rename = "duration")]
10890 #[serde(skip_serializing_if = "Option::is_none")]
10891 pub duration: Option<i64>,
10892 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10893 #[serde(rename = "end_time")]
10894 #[serde(skip_serializing_if = "Option::is_none")]
10895 pub end_time: Option<i64>,
10896 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
10897 #[serde(rename = "end_time_dt")]
10898 #[serde(skip_serializing_if = "Option::is_none")]
10899 pub end_time_dt: Option<String>,
10900 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
10901 #[serde(rename = "enrichments")]
10902 #[serde(skip_serializing_if = "Option::is_none")]
10903 pub enrichments: Option<Vec<Enrichment>>,
10904 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
10905 #[serde(rename = "firewall_rule")]
10906 #[serde(skip_serializing_if = "Option::is_none")]
10907 pub firewall_rule: Option<Box<FirewallRule>>,
10908 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
10909 #[serde(rename = "is_alert")]
10910 #[serde(skip_serializing_if = "Option::is_none")]
10911 pub is_alert: Option<bool>,
10912 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
10913 #[serde(rename = "malware")]
10914 #[serde(skip_serializing_if = "Option::is_none")]
10915 pub malware: Option<Vec<Malware>>,
10916 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
10917 #[serde(rename = "malware_scan_info")]
10918 #[serde(skip_serializing_if = "Option::is_none")]
10919 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
10920 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
10921 #[serde(rename = "message")]
10922 #[serde(skip_serializing_if = "Option::is_none")]
10923 pub message: Option<String>,
10924 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
10925 #[serde(rename = "metadata")]
10926 #[serde(skip_serializing_if = "Option::is_none")]
10927 pub metadata: Option<Box<Metadata>>,
10928 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
10929 #[serde(rename = "observables")]
10930 #[serde(skip_serializing_if = "Option::is_none")]
10931 pub observables: Option<Vec<Observable>>,
10932 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
10933 #[serde(rename = "osint")]
10934 #[serde(skip_serializing_if = "Option::is_none")]
10935 pub osint: Option<Vec<Osint>>,
10936 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
10937 #[serde(rename = "policy")]
10938 #[serde(skip_serializing_if = "Option::is_none")]
10939 pub policy: Option<Box<Policy>>,
10940 #[doc = "Process\n\nThe process that had memory allocated, read/written, or had other manipulation activities performed on it.\n\nrequired"]
10941 #[serde(rename = "process")]
10942 #[serde(skip_serializing_if = "Option::is_none")]
10943 pub process: Option<Box<Process>>,
10944 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
10945 #[serde(rename = "raw_data")]
10946 #[serde(skip_serializing_if = "Option::is_none")]
10947 pub raw_data: Option<String>,
10948 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
10949 #[serde(rename = "raw_data_hash")]
10950 #[serde(skip_serializing_if = "Option::is_none")]
10951 pub raw_data_hash: Option<Box<Fingerprint>>,
10952 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
10953 #[serde(rename = "raw_data_size")]
10954 #[serde(skip_serializing_if = "Option::is_none")]
10955 pub raw_data_size: Option<i64>,
10956 #[doc = "Requested Permissions\n\nThe permissions mask that was requested to access memory.\n\nrecommended"]
10957 #[serde(rename = "requested_permissions")]
10958 #[serde(skip_serializing_if = "Option::is_none")]
10959 pub requested_permissions: Option<i64>,
10960 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
10961 #[serde(rename = "risk_details")]
10962 #[serde(skip_serializing_if = "Option::is_none")]
10963 pub risk_details: Option<String>,
10964 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
10965 #[serde(rename = "risk_level")]
10966 #[serde(skip_serializing_if = "Option::is_none")]
10967 pub risk_level: Option<String>,
10968 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
10969 #[serde(rename = "risk_level_id")]
10970 #[serde(skip_serializing_if = "Option::is_none")]
10971 pub risk_level_id: Option<i64>,
10972 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
10973 #[serde(rename = "risk_score")]
10974 #[serde(skip_serializing_if = "Option::is_none")]
10975 pub risk_score: Option<i64>,
10976 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
10977 #[serde(rename = "severity")]
10978 #[serde(skip_serializing_if = "Option::is_none")]
10979 pub severity: Option<String>,
10980 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
10981 #[serde(rename = "severity_id")]
10982 #[serde(skip_serializing_if = "Option::is_none")]
10983 pub severity_id: Option<i64>,
10984 #[doc = "Size\n\nThe memory size that was access or requested.\n\nrecommended"]
10985 #[serde(rename = "size")]
10986 #[serde(skip_serializing_if = "Option::is_none")]
10987 pub size: Option<i64>,
10988 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10989 #[serde(rename = "start_time")]
10990 #[serde(skip_serializing_if = "Option::is_none")]
10991 pub start_time: Option<i64>,
10992 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
10993 #[serde(rename = "start_time_dt")]
10994 #[serde(skip_serializing_if = "Option::is_none")]
10995 pub start_time_dt: Option<String>,
10996 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
10997 #[serde(rename = "status")]
10998 #[serde(skip_serializing_if = "Option::is_none")]
10999 pub status: Option<String>,
11000 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
11001 #[serde(rename = "status_code")]
11002 #[serde(skip_serializing_if = "Option::is_none")]
11003 pub status_code: Option<String>,
11004 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
11005 #[serde(rename = "status_detail")]
11006 #[serde(skip_serializing_if = "Option::is_none")]
11007 pub status_detail: Option<String>,
11008 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
11009 #[serde(rename = "status_id")]
11010 #[serde(skip_serializing_if = "Option::is_none")]
11011 pub status_id: Option<i64>,
11012 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
11013 #[serde(rename = "time")]
11014 #[serde(skip_serializing_if = "Option::is_none")]
11015 pub time: Option<i64>,
11016 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
11017 #[serde(rename = "time_dt")]
11018 #[serde(skip_serializing_if = "Option::is_none")]
11019 pub time_dt: Option<String>,
11020 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
11021 #[serde(rename = "timezone_offset")]
11022 #[serde(skip_serializing_if = "Option::is_none")]
11023 pub timezone_offset: Option<i64>,
11024 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
11025 #[serde(rename = "type_name")]
11026 #[serde(skip_serializing_if = "Option::is_none")]
11027 pub type_name: Option<String>,
11028 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
11029 #[serde(rename = "type_uid")]
11030 #[serde(skip_serializing_if = "Option::is_none")]
11031 pub type_uid: Option<i64>,
11032 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
11033 #[serde(rename = "unmapped")]
11034 #[serde(skip_serializing_if = "Option::is_none")]
11035 pub unmapped: Option<serde_json::Value>,
11036}
11037#[doc = "Module Activity\n\nModule Activity events report when an endpoint process acts on a <code>module</code>.\n\n[UID:1005] Category: system | Name: module_activity"]
11038#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11039#[serde(default)]
11040#[non_exhaustive]
11041pub struct ModuleActivity {
11042 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
11043 #[serde(rename = "action")]
11044 #[serde(skip_serializing_if = "Option::is_none")]
11045 pub action: Option<String>,
11046 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
11047 #[serde(rename = "action_id")]
11048 #[serde(skip_serializing_if = "Option::is_none")]
11049 pub action_id: Option<i64>,
11050 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
11051 #[serde(rename = "activity_id")]
11052 #[serde(skip_serializing_if = "Option::is_none")]
11053 pub activity_id: Option<i64>,
11054 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
11055 #[serde(rename = "activity_name")]
11056 #[serde(skip_serializing_if = "Option::is_none")]
11057 pub activity_name: Option<String>,
11058 #[doc = "Actor\n\nThe actor that performed the activity on the target <code>module</code>. For example, the process that loaded a module into memory.\n\nrequired"]
11059 #[serde(rename = "actor")]
11060 #[serde(skip_serializing_if = "Option::is_none")]
11061 pub actor: Option<Box<Actor>>,
11062 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
11063 #[serde(rename = "api")]
11064 #[serde(skip_serializing_if = "Option::is_none")]
11065 pub api: Option<Box<Api>>,
11066 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
11067 #[serde(rename = "attacks")]
11068 #[serde(skip_serializing_if = "Option::is_none")]
11069 pub attacks: Option<Vec<Attack>>,
11070 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
11071 #[serde(rename = "authorizations")]
11072 #[serde(skip_serializing_if = "Option::is_none")]
11073 pub authorizations: Option<Vec<Authorization>>,
11074 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
11075 #[serde(rename = "category_name")]
11076 #[serde(skip_serializing_if = "Option::is_none")]
11077 pub category_name: Option<String>,
11078 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
11079 #[serde(rename = "category_uid")]
11080 #[serde(skip_serializing_if = "Option::is_none")]
11081 pub category_uid: Option<i64>,
11082 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Module Activity</code>.\n\noptional"]
11083 #[serde(rename = "class_name")]
11084 #[serde(skip_serializing_if = "Option::is_none")]
11085 pub class_name: Option<String>,
11086 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
11087 #[serde(rename = "class_uid")]
11088 #[serde(skip_serializing_if = "Option::is_none")]
11089 pub class_uid: Option<i64>,
11090 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
11091 #[serde(rename = "cloud")]
11092 #[serde(skip_serializing_if = "Option::is_none")]
11093 pub cloud: Option<Box<Cloud>>,
11094 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11095 #[serde(rename = "confidence")]
11096 #[serde(skip_serializing_if = "Option::is_none")]
11097 pub confidence: Option<String>,
11098 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
11099 #[serde(rename = "confidence_id")]
11100 #[serde(skip_serializing_if = "Option::is_none")]
11101 pub confidence_id: Option<i64>,
11102 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
11103 #[serde(rename = "confidence_score")]
11104 #[serde(skip_serializing_if = "Option::is_none")]
11105 pub confidence_score: Option<i64>,
11106 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
11107 #[serde(rename = "count")]
11108 #[serde(skip_serializing_if = "Option::is_none")]
11109 pub count: Option<i64>,
11110 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
11111 #[serde(rename = "device")]
11112 #[serde(skip_serializing_if = "Option::is_none")]
11113 pub device: Option<Box<Device>>,
11114 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11115 #[serde(rename = "disposition")]
11116 #[serde(skip_serializing_if = "Option::is_none")]
11117 pub disposition: Option<String>,
11118 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
11119 #[serde(rename = "disposition_id")]
11120 #[serde(skip_serializing_if = "Option::is_none")]
11121 pub disposition_id: Option<i64>,
11122 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
11123 #[serde(rename = "duration")]
11124 #[serde(skip_serializing_if = "Option::is_none")]
11125 pub duration: Option<i64>,
11126 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11127 #[serde(rename = "end_time")]
11128 #[serde(skip_serializing_if = "Option::is_none")]
11129 pub end_time: Option<i64>,
11130 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11131 #[serde(rename = "end_time_dt")]
11132 #[serde(skip_serializing_if = "Option::is_none")]
11133 pub end_time_dt: Option<String>,
11134 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
11135 #[serde(rename = "enrichments")]
11136 #[serde(skip_serializing_if = "Option::is_none")]
11137 pub enrichments: Option<Vec<Enrichment>>,
11138 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
11139 #[serde(rename = "firewall_rule")]
11140 #[serde(skip_serializing_if = "Option::is_none")]
11141 pub firewall_rule: Option<Box<FirewallRule>>,
11142 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
11143 #[serde(rename = "is_alert")]
11144 #[serde(skip_serializing_if = "Option::is_none")]
11145 pub is_alert: Option<bool>,
11146 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
11147 #[serde(rename = "malware")]
11148 #[serde(skip_serializing_if = "Option::is_none")]
11149 pub malware: Option<Vec<Malware>>,
11150 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
11151 #[serde(rename = "malware_scan_info")]
11152 #[serde(skip_serializing_if = "Option::is_none")]
11153 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
11154 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
11155 #[serde(rename = "message")]
11156 #[serde(skip_serializing_if = "Option::is_none")]
11157 pub message: Option<String>,
11158 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
11159 #[serde(rename = "metadata")]
11160 #[serde(skip_serializing_if = "Option::is_none")]
11161 pub metadata: Option<Box<Metadata>>,
11162 #[doc = "Module\n\nThe module that was loaded, unloaded, or invoked.\n\nrequired"]
11163 #[serde(rename = "module")]
11164 #[serde(skip_serializing_if = "Option::is_none")]
11165 pub module: Option<Box<Module>>,
11166 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
11167 #[serde(rename = "observables")]
11168 #[serde(skip_serializing_if = "Option::is_none")]
11169 pub observables: Option<Vec<Observable>>,
11170 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
11171 #[serde(rename = "osint")]
11172 #[serde(skip_serializing_if = "Option::is_none")]
11173 pub osint: Option<Vec<Osint>>,
11174 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
11175 #[serde(rename = "policy")]
11176 #[serde(skip_serializing_if = "Option::is_none")]
11177 pub policy: Option<Box<Policy>>,
11178 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
11179 #[serde(rename = "raw_data")]
11180 #[serde(skip_serializing_if = "Option::is_none")]
11181 pub raw_data: Option<String>,
11182 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
11183 #[serde(rename = "raw_data_hash")]
11184 #[serde(skip_serializing_if = "Option::is_none")]
11185 pub raw_data_hash: Option<Box<Fingerprint>>,
11186 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
11187 #[serde(rename = "raw_data_size")]
11188 #[serde(skip_serializing_if = "Option::is_none")]
11189 pub raw_data_size: Option<i64>,
11190 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
11191 #[serde(rename = "risk_details")]
11192 #[serde(skip_serializing_if = "Option::is_none")]
11193 pub risk_details: Option<String>,
11194 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
11195 #[serde(rename = "risk_level")]
11196 #[serde(skip_serializing_if = "Option::is_none")]
11197 pub risk_level: Option<String>,
11198 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
11199 #[serde(rename = "risk_level_id")]
11200 #[serde(skip_serializing_if = "Option::is_none")]
11201 pub risk_level_id: Option<i64>,
11202 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
11203 #[serde(rename = "risk_score")]
11204 #[serde(skip_serializing_if = "Option::is_none")]
11205 pub risk_score: Option<i64>,
11206 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
11207 #[serde(rename = "severity")]
11208 #[serde(skip_serializing_if = "Option::is_none")]
11209 pub severity: Option<String>,
11210 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
11211 #[serde(rename = "severity_id")]
11212 #[serde(skip_serializing_if = "Option::is_none")]
11213 pub severity_id: Option<i64>,
11214 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11215 #[serde(rename = "start_time")]
11216 #[serde(skip_serializing_if = "Option::is_none")]
11217 pub start_time: Option<i64>,
11218 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11219 #[serde(rename = "start_time_dt")]
11220 #[serde(skip_serializing_if = "Option::is_none")]
11221 pub start_time_dt: Option<String>,
11222 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
11223 #[serde(rename = "status")]
11224 #[serde(skip_serializing_if = "Option::is_none")]
11225 pub status: Option<String>,
11226 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
11227 #[serde(rename = "status_code")]
11228 #[serde(skip_serializing_if = "Option::is_none")]
11229 pub status_code: Option<String>,
11230 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
11231 #[serde(rename = "status_detail")]
11232 #[serde(skip_serializing_if = "Option::is_none")]
11233 pub status_detail: Option<String>,
11234 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
11235 #[serde(rename = "status_id")]
11236 #[serde(skip_serializing_if = "Option::is_none")]
11237 pub status_id: Option<i64>,
11238 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
11239 #[serde(rename = "time")]
11240 #[serde(skip_serializing_if = "Option::is_none")]
11241 pub time: Option<i64>,
11242 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
11243 #[serde(rename = "time_dt")]
11244 #[serde(skip_serializing_if = "Option::is_none")]
11245 pub time_dt: Option<String>,
11246 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
11247 #[serde(rename = "timezone_offset")]
11248 #[serde(skip_serializing_if = "Option::is_none")]
11249 pub timezone_offset: Option<i64>,
11250 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
11251 #[serde(rename = "type_name")]
11252 #[serde(skip_serializing_if = "Option::is_none")]
11253 pub type_name: Option<String>,
11254 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
11255 #[serde(rename = "type_uid")]
11256 #[serde(skip_serializing_if = "Option::is_none")]
11257 pub type_uid: Option<i64>,
11258 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
11259 #[serde(rename = "unmapped")]
11260 #[serde(skip_serializing_if = "Option::is_none")]
11261 pub unmapped: Option<serde_json::Value>,
11262}
11263#[doc = "Module Query\n\nModule Query events report information about loaded modules.\n\n[UID:5011] Category: discovery | Name: module_query"]
11264#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
11265#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11266#[serde(default)]
11267#[non_exhaustive]
11268pub struct ModuleQuery {
11269 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
11270 #[serde(rename = "action")]
11271 #[serde(skip_serializing_if = "Option::is_none")]
11272 pub action: Option<String>,
11273 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
11274 #[serde(rename = "action_id")]
11275 #[serde(skip_serializing_if = "Option::is_none")]
11276 pub action_id: Option<i64>,
11277 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
11278 #[serde(rename = "activity_id")]
11279 #[serde(skip_serializing_if = "Option::is_none")]
11280 pub activity_id: Option<i64>,
11281 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
11282 #[serde(rename = "activity_name")]
11283 #[serde(skip_serializing_if = "Option::is_none")]
11284 pub activity_name: Option<String>,
11285 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
11286 #[serde(rename = "actor")]
11287 #[serde(skip_serializing_if = "Option::is_none")]
11288 pub actor: Option<Box<Actor>>,
11289 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
11290 #[serde(rename = "api")]
11291 #[serde(skip_serializing_if = "Option::is_none")]
11292 pub api: Option<Box<Api>>,
11293 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
11294 #[serde(rename = "attacks")]
11295 #[serde(skip_serializing_if = "Option::is_none")]
11296 pub attacks: Option<Vec<Attack>>,
11297 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
11298 #[serde(rename = "authorizations")]
11299 #[serde(skip_serializing_if = "Option::is_none")]
11300 pub authorizations: Option<Vec<Authorization>>,
11301 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
11302 #[serde(rename = "category_name")]
11303 #[serde(skip_serializing_if = "Option::is_none")]
11304 pub category_name: Option<String>,
11305 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
11306 #[serde(rename = "category_uid")]
11307 #[serde(skip_serializing_if = "Option::is_none")]
11308 pub category_uid: Option<i64>,
11309 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Module Query</code>.\n\noptional"]
11310 #[serde(rename = "class_name")]
11311 #[serde(skip_serializing_if = "Option::is_none")]
11312 pub class_name: Option<String>,
11313 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
11314 #[serde(rename = "class_uid")]
11315 #[serde(skip_serializing_if = "Option::is_none")]
11316 pub class_uid: Option<i64>,
11317 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
11318 #[serde(rename = "cloud")]
11319 #[serde(skip_serializing_if = "Option::is_none")]
11320 pub cloud: Option<Box<Cloud>>,
11321 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11322 #[serde(rename = "confidence")]
11323 #[serde(skip_serializing_if = "Option::is_none")]
11324 pub confidence: Option<String>,
11325 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
11326 #[serde(rename = "confidence_id")]
11327 #[serde(skip_serializing_if = "Option::is_none")]
11328 pub confidence_id: Option<i64>,
11329 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
11330 #[serde(rename = "confidence_score")]
11331 #[serde(skip_serializing_if = "Option::is_none")]
11332 pub confidence_score: Option<i64>,
11333 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
11334 #[serde(rename = "count")]
11335 #[serde(skip_serializing_if = "Option::is_none")]
11336 pub count: Option<i64>,
11337 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
11338 #[serde(rename = "device")]
11339 #[serde(skip_serializing_if = "Option::is_none")]
11340 pub device: Option<Box<Device>>,
11341 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11342 #[serde(rename = "disposition")]
11343 #[serde(skip_serializing_if = "Option::is_none")]
11344 pub disposition: Option<String>,
11345 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
11346 #[serde(rename = "disposition_id")]
11347 #[serde(skip_serializing_if = "Option::is_none")]
11348 pub disposition_id: Option<i64>,
11349 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
11350 #[serde(rename = "duration")]
11351 #[serde(skip_serializing_if = "Option::is_none")]
11352 pub duration: Option<i64>,
11353 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11354 #[serde(rename = "end_time")]
11355 #[serde(skip_serializing_if = "Option::is_none")]
11356 pub end_time: Option<i64>,
11357 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11358 #[serde(rename = "end_time_dt")]
11359 #[serde(skip_serializing_if = "Option::is_none")]
11360 pub end_time_dt: Option<String>,
11361 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
11362 #[serde(rename = "enrichments")]
11363 #[serde(skip_serializing_if = "Option::is_none")]
11364 pub enrichments: Option<Vec<Enrichment>>,
11365 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
11366 #[serde(rename = "firewall_rule")]
11367 #[serde(skip_serializing_if = "Option::is_none")]
11368 pub firewall_rule: Option<Box<FirewallRule>>,
11369 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
11370 #[serde(rename = "is_alert")]
11371 #[serde(skip_serializing_if = "Option::is_none")]
11372 pub is_alert: Option<bool>,
11373 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
11374 #[serde(rename = "malware")]
11375 #[serde(skip_serializing_if = "Option::is_none")]
11376 pub malware: Option<Vec<Malware>>,
11377 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
11378 #[serde(rename = "malware_scan_info")]
11379 #[serde(skip_serializing_if = "Option::is_none")]
11380 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
11381 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
11382 #[serde(rename = "message")]
11383 #[serde(skip_serializing_if = "Option::is_none")]
11384 pub message: Option<String>,
11385 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
11386 #[serde(rename = "metadata")]
11387 #[serde(skip_serializing_if = "Option::is_none")]
11388 pub metadata: Option<Box<Metadata>>,
11389 #[doc = "Module\n\nThe module that pertains to the event.\n\nrequired"]
11390 #[serde(rename = "module")]
11391 #[serde(skip_serializing_if = "Option::is_none")]
11392 pub module: Option<Box<Module>>,
11393 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
11394 #[serde(rename = "observables")]
11395 #[serde(skip_serializing_if = "Option::is_none")]
11396 pub observables: Option<Vec<Observable>>,
11397 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
11398 #[serde(rename = "osint")]
11399 #[serde(skip_serializing_if = "Option::is_none")]
11400 pub osint: Option<Vec<Osint>>,
11401 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
11402 #[serde(rename = "policy")]
11403 #[serde(skip_serializing_if = "Option::is_none")]
11404 pub policy: Option<Box<Policy>>,
11405 #[doc = "Process\n\nThe process that loaded the module.\n\nrequired"]
11406 #[serde(rename = "process")]
11407 #[serde(skip_serializing_if = "Option::is_none")]
11408 pub process: Option<Box<Process>>,
11409 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
11410 #[serde(rename = "query_info")]
11411 #[serde(skip_serializing_if = "Option::is_none")]
11412 pub query_info: Option<Box<QueryInfo>>,
11413 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
11414 #[serde(rename = "query_result")]
11415 #[serde(skip_serializing_if = "Option::is_none")]
11416 pub query_result: Option<String>,
11417 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
11418 #[serde(rename = "query_result_id")]
11419 #[serde(skip_serializing_if = "Option::is_none")]
11420 pub query_result_id: Option<i64>,
11421 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
11422 #[serde(rename = "raw_data")]
11423 #[serde(skip_serializing_if = "Option::is_none")]
11424 pub raw_data: Option<String>,
11425 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
11426 #[serde(rename = "raw_data_hash")]
11427 #[serde(skip_serializing_if = "Option::is_none")]
11428 pub raw_data_hash: Option<Box<Fingerprint>>,
11429 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
11430 #[serde(rename = "raw_data_size")]
11431 #[serde(skip_serializing_if = "Option::is_none")]
11432 pub raw_data_size: Option<i64>,
11433 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
11434 #[serde(rename = "risk_details")]
11435 #[serde(skip_serializing_if = "Option::is_none")]
11436 pub risk_details: Option<String>,
11437 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
11438 #[serde(rename = "risk_level")]
11439 #[serde(skip_serializing_if = "Option::is_none")]
11440 pub risk_level: Option<String>,
11441 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
11442 #[serde(rename = "risk_level_id")]
11443 #[serde(skip_serializing_if = "Option::is_none")]
11444 pub risk_level_id: Option<i64>,
11445 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
11446 #[serde(rename = "risk_score")]
11447 #[serde(skip_serializing_if = "Option::is_none")]
11448 pub risk_score: Option<i64>,
11449 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
11450 #[serde(rename = "severity")]
11451 #[serde(skip_serializing_if = "Option::is_none")]
11452 pub severity: Option<String>,
11453 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
11454 #[serde(rename = "severity_id")]
11455 #[serde(skip_serializing_if = "Option::is_none")]
11456 pub severity_id: Option<i64>,
11457 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11458 #[serde(rename = "start_time")]
11459 #[serde(skip_serializing_if = "Option::is_none")]
11460 pub start_time: Option<i64>,
11461 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11462 #[serde(rename = "start_time_dt")]
11463 #[serde(skip_serializing_if = "Option::is_none")]
11464 pub start_time_dt: Option<String>,
11465 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
11466 #[serde(rename = "status")]
11467 #[serde(skip_serializing_if = "Option::is_none")]
11468 pub status: Option<String>,
11469 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
11470 #[serde(rename = "status_code")]
11471 #[serde(skip_serializing_if = "Option::is_none")]
11472 pub status_code: Option<String>,
11473 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
11474 #[serde(rename = "status_detail")]
11475 #[serde(skip_serializing_if = "Option::is_none")]
11476 pub status_detail: Option<String>,
11477 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
11478 #[serde(rename = "status_id")]
11479 #[serde(skip_serializing_if = "Option::is_none")]
11480 pub status_id: Option<i64>,
11481 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
11482 #[serde(rename = "time")]
11483 #[serde(skip_serializing_if = "Option::is_none")]
11484 pub time: Option<i64>,
11485 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
11486 #[serde(rename = "time_dt")]
11487 #[serde(skip_serializing_if = "Option::is_none")]
11488 pub time_dt: Option<String>,
11489 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
11490 #[serde(rename = "timezone_offset")]
11491 #[serde(skip_serializing_if = "Option::is_none")]
11492 pub timezone_offset: Option<i64>,
11493 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
11494 #[serde(rename = "type_name")]
11495 #[serde(skip_serializing_if = "Option::is_none")]
11496 pub type_name: Option<String>,
11497 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
11498 #[serde(rename = "type_uid")]
11499 #[serde(skip_serializing_if = "Option::is_none")]
11500 pub type_uid: Option<i64>,
11501 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
11502 #[serde(rename = "unmapped")]
11503 #[serde(skip_serializing_if = "Option::is_none")]
11504 pub unmapped: Option<serde_json::Value>,
11505}
11506#[doc = "Network Activity\n\nNetwork Activity events report network connection and traffic activity.\n\n[UID:4001] Category: network | Name: network_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
11507#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11508#[serde(default)]
11509#[non_exhaustive]
11510pub struct NetworkActivity {
11511 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
11512 #[serde(rename = "action")]
11513 #[serde(skip_serializing_if = "Option::is_none")]
11514 pub action: Option<String>,
11515 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
11516 #[serde(rename = "action_id")]
11517 #[serde(skip_serializing_if = "Option::is_none")]
11518 pub action_id: Option<i64>,
11519 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
11520 #[serde(rename = "activity_id")]
11521 #[serde(skip_serializing_if = "Option::is_none")]
11522 pub activity_id: Option<i64>,
11523 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
11524 #[serde(rename = "activity_name")]
11525 #[serde(skip_serializing_if = "Option::is_none")]
11526 pub activity_name: Option<String>,
11527 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
11528 #[serde(rename = "actor")]
11529 #[serde(skip_serializing_if = "Option::is_none")]
11530 pub actor: Option<Box<Actor>>,
11531 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
11532 #[serde(rename = "api")]
11533 #[serde(skip_serializing_if = "Option::is_none")]
11534 pub api: Option<Box<Api>>,
11535 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
11536 #[serde(rename = "app_name")]
11537 #[serde(skip_serializing_if = "Option::is_none")]
11538 pub app_name: Option<String>,
11539 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
11540 #[serde(rename = "attacks")]
11541 #[serde(skip_serializing_if = "Option::is_none")]
11542 pub attacks: Option<Vec<Attack>>,
11543 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
11544 #[serde(rename = "authorizations")]
11545 #[serde(skip_serializing_if = "Option::is_none")]
11546 pub authorizations: Option<Vec<Authorization>>,
11547 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
11548 #[serde(rename = "category_name")]
11549 #[serde(skip_serializing_if = "Option::is_none")]
11550 pub category_name: Option<String>,
11551 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
11552 #[serde(rename = "category_uid")]
11553 #[serde(skip_serializing_if = "Option::is_none")]
11554 pub category_uid: Option<i64>,
11555 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Network Activity</code>.\n\noptional"]
11556 #[serde(rename = "class_name")]
11557 #[serde(skip_serializing_if = "Option::is_none")]
11558 pub class_name: Option<String>,
11559 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
11560 #[serde(rename = "class_uid")]
11561 #[serde(skip_serializing_if = "Option::is_none")]
11562 pub class_uid: Option<i64>,
11563 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
11564 #[serde(rename = "cloud")]
11565 #[serde(skip_serializing_if = "Option::is_none")]
11566 pub cloud: Option<Box<Cloud>>,
11567 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11568 #[serde(rename = "confidence")]
11569 #[serde(skip_serializing_if = "Option::is_none")]
11570 pub confidence: Option<String>,
11571 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
11572 #[serde(rename = "confidence_id")]
11573 #[serde(skip_serializing_if = "Option::is_none")]
11574 pub confidence_id: Option<i64>,
11575 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
11576 #[serde(rename = "confidence_score")]
11577 #[serde(skip_serializing_if = "Option::is_none")]
11578 pub confidence_score: Option<i64>,
11579 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
11580 #[serde(rename = "connection_info")]
11581 #[serde(skip_serializing_if = "Option::is_none")]
11582 pub connection_info: Option<Box<NetworkConnectionInfo>>,
11583 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
11584 #[serde(rename = "count")]
11585 #[serde(skip_serializing_if = "Option::is_none")]
11586 pub count: Option<i64>,
11587 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
11588 #[serde(rename = "cumulative_traffic")]
11589 #[serde(skip_serializing_if = "Option::is_none")]
11590 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
11591 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
11592 #[serde(rename = "device")]
11593 #[serde(skip_serializing_if = "Option::is_none")]
11594 pub device: Option<Box<Device>>,
11595 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11596 #[serde(rename = "disposition")]
11597 #[serde(skip_serializing_if = "Option::is_none")]
11598 pub disposition: Option<String>,
11599 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
11600 #[serde(rename = "disposition_id")]
11601 #[serde(skip_serializing_if = "Option::is_none")]
11602 pub disposition_id: Option<i64>,
11603 #[doc = "Destination Endpoint\n\nThe responder of the network connection. In some contexts an event source cannot correctly identify the responder. Refer to <code>is_src_dst_assignment_known</code> for certainty.\n\nrecommended"]
11604 #[serde(rename = "dst_endpoint")]
11605 #[serde(skip_serializing_if = "Option::is_none")]
11606 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
11607 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
11608 #[serde(rename = "duration")]
11609 #[serde(skip_serializing_if = "Option::is_none")]
11610 pub duration: Option<i64>,
11611 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11612 #[serde(rename = "end_time")]
11613 #[serde(skip_serializing_if = "Option::is_none")]
11614 pub end_time: Option<i64>,
11615 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11616 #[serde(rename = "end_time_dt")]
11617 #[serde(skip_serializing_if = "Option::is_none")]
11618 pub end_time_dt: Option<String>,
11619 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
11620 #[serde(rename = "enrichments")]
11621 #[serde(skip_serializing_if = "Option::is_none")]
11622 pub enrichments: Option<Vec<Enrichment>>,
11623 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
11624 #[serde(rename = "firewall_rule")]
11625 #[serde(skip_serializing_if = "Option::is_none")]
11626 pub firewall_rule: Option<Box<FirewallRule>>,
11627 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
11628 #[serde(rename = "is_alert")]
11629 #[serde(skip_serializing_if = "Option::is_none")]
11630 pub is_alert: Option<bool>,
11631 #[doc = "Source/Destination Assignment Known\n\n<code>true</code> denotes that <code>src_endpoint</code> and <code>dst_endpoint</code> correctly identify the initiator and responder respectively. <code>false</code> denotes that the event source has arbitrarily assigned one peer to <code>src_endpoint</code> and the other to <code>dst_endpoint</code>, in other words that initiator and responder are not being asserted. This can occur, for example, when the event source is a network appliance that has not observed the initiation of a given connection. In the absence of this attribute, interpretation of the initiator and responder is implementation-specific.\n\nrecommended"]
11632 #[serde(rename = "is_src_dst_assignment_known")]
11633 #[serde(skip_serializing_if = "Option::is_none")]
11634 pub is_src_dst_assignment_known: Option<bool>,
11635 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
11636 #[serde(rename = "ja4_fingerprint_list")]
11637 #[serde(skip_serializing_if = "Option::is_none")]
11638 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
11639 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
11640 #[serde(rename = "load_balancer")]
11641 #[serde(skip_serializing_if = "Option::is_none")]
11642 pub load_balancer: Option<Box<LoadBalancer>>,
11643 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
11644 #[serde(rename = "malware")]
11645 #[serde(skip_serializing_if = "Option::is_none")]
11646 pub malware: Option<Vec<Malware>>,
11647 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
11648 #[serde(rename = "malware_scan_info")]
11649 #[serde(skip_serializing_if = "Option::is_none")]
11650 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
11651 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
11652 #[serde(rename = "message")]
11653 #[serde(skip_serializing_if = "Option::is_none")]
11654 pub message: Option<String>,
11655 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
11656 #[serde(rename = "metadata")]
11657 #[serde(skip_serializing_if = "Option::is_none")]
11658 pub metadata: Option<Box<Metadata>>,
11659 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
11660 #[serde(rename = "observables")]
11661 #[serde(skip_serializing_if = "Option::is_none")]
11662 pub observables: Option<Vec<Observable>>,
11663 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
11664 #[serde(rename = "observation_point")]
11665 #[serde(skip_serializing_if = "Option::is_none")]
11666 pub observation_point: Option<String>,
11667 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
11668 #[serde(rename = "observation_point_id")]
11669 #[serde(skip_serializing_if = "Option::is_none")]
11670 pub observation_point_id: Option<i64>,
11671 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
11672 #[serde(rename = "osint")]
11673 #[serde(skip_serializing_if = "Option::is_none")]
11674 pub osint: Option<Vec<Osint>>,
11675 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
11676 #[serde(rename = "policy")]
11677 #[serde(skip_serializing_if = "Option::is_none")]
11678 pub policy: Option<Box<Policy>>,
11679 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
11680 #[serde(rename = "proxy")]
11681 #[serde(skip_serializing_if = "Option::is_none")]
11682 pub proxy: Option<Box<NetworkProxy>>,
11683 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
11684 #[serde(rename = "proxy_connection_info")]
11685 #[serde(skip_serializing_if = "Option::is_none")]
11686 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
11687 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
11688 #[serde(rename = "proxy_endpoint")]
11689 #[serde(skip_serializing_if = "Option::is_none")]
11690 pub proxy_endpoint: Option<Box<NetworkProxy>>,
11691 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
11692 #[serde(rename = "proxy_http_request")]
11693 #[serde(skip_serializing_if = "Option::is_none")]
11694 pub proxy_http_request: Option<Box<HttpRequest>>,
11695 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
11696 #[serde(rename = "proxy_http_response")]
11697 #[serde(skip_serializing_if = "Option::is_none")]
11698 pub proxy_http_response: Option<Box<HttpResponse>>,
11699 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
11700 #[serde(rename = "proxy_tls")]
11701 #[serde(skip_serializing_if = "Option::is_none")]
11702 pub proxy_tls: Option<Box<Tls>>,
11703 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
11704 #[serde(rename = "proxy_traffic")]
11705 #[serde(skip_serializing_if = "Option::is_none")]
11706 pub proxy_traffic: Option<Box<NetworkTraffic>>,
11707 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
11708 #[serde(rename = "raw_data")]
11709 #[serde(skip_serializing_if = "Option::is_none")]
11710 pub raw_data: Option<String>,
11711 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
11712 #[serde(rename = "raw_data_hash")]
11713 #[serde(skip_serializing_if = "Option::is_none")]
11714 pub raw_data_hash: Option<Box<Fingerprint>>,
11715 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
11716 #[serde(rename = "raw_data_size")]
11717 #[serde(skip_serializing_if = "Option::is_none")]
11718 pub raw_data_size: Option<i64>,
11719 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
11720 #[serde(rename = "risk_details")]
11721 #[serde(skip_serializing_if = "Option::is_none")]
11722 pub risk_details: Option<String>,
11723 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
11724 #[serde(rename = "risk_level")]
11725 #[serde(skip_serializing_if = "Option::is_none")]
11726 pub risk_level: Option<String>,
11727 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
11728 #[serde(rename = "risk_level_id")]
11729 #[serde(skip_serializing_if = "Option::is_none")]
11730 pub risk_level_id: Option<i64>,
11731 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
11732 #[serde(rename = "risk_score")]
11733 #[serde(skip_serializing_if = "Option::is_none")]
11734 pub risk_score: Option<i64>,
11735 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
11736 #[serde(rename = "severity")]
11737 #[serde(skip_serializing_if = "Option::is_none")]
11738 pub severity: Option<String>,
11739 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
11740 #[serde(rename = "severity_id")]
11741 #[serde(skip_serializing_if = "Option::is_none")]
11742 pub severity_id: Option<i64>,
11743 #[doc = "Source Endpoint\n\n The initiator of the network connection. In some contexts an event source cannot correctly identify the initiator. Refer to <code>is_src_dst_assignment_known</code> for certainty.\n\nrecommended"]
11744 #[serde(rename = "src_endpoint")]
11745 #[serde(skip_serializing_if = "Option::is_none")]
11746 pub src_endpoint: Option<Box<NetworkEndpoint>>,
11747 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11748 #[serde(rename = "start_time")]
11749 #[serde(skip_serializing_if = "Option::is_none")]
11750 pub start_time: Option<i64>,
11751 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
11752 #[serde(rename = "start_time_dt")]
11753 #[serde(skip_serializing_if = "Option::is_none")]
11754 pub start_time_dt: Option<String>,
11755 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
11756 #[serde(rename = "status")]
11757 #[serde(skip_serializing_if = "Option::is_none")]
11758 pub status: Option<String>,
11759 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
11760 #[serde(rename = "status_code")]
11761 #[serde(skip_serializing_if = "Option::is_none")]
11762 pub status_code: Option<String>,
11763 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
11764 #[serde(rename = "status_detail")]
11765 #[serde(skip_serializing_if = "Option::is_none")]
11766 pub status_detail: Option<String>,
11767 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
11768 #[serde(rename = "status_id")]
11769 #[serde(skip_serializing_if = "Option::is_none")]
11770 pub status_id: Option<i64>,
11771 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
11772 #[serde(rename = "time")]
11773 #[serde(skip_serializing_if = "Option::is_none")]
11774 pub time: Option<i64>,
11775 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
11776 #[serde(rename = "time_dt")]
11777 #[serde(skip_serializing_if = "Option::is_none")]
11778 pub time_dt: Option<String>,
11779 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
11780 #[serde(rename = "timezone_offset")]
11781 #[serde(skip_serializing_if = "Option::is_none")]
11782 pub timezone_offset: Option<i64>,
11783 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
11784 #[serde(rename = "tls")]
11785 #[serde(skip_serializing_if = "Option::is_none")]
11786 pub tls: Option<Box<Tls>>,
11787 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
11788 #[serde(rename = "traffic")]
11789 #[serde(skip_serializing_if = "Option::is_none")]
11790 pub traffic: Option<Box<NetworkTraffic>>,
11791 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
11792 #[serde(rename = "type_name")]
11793 #[serde(skip_serializing_if = "Option::is_none")]
11794 pub type_name: Option<String>,
11795 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
11796 #[serde(rename = "type_uid")]
11797 #[serde(skip_serializing_if = "Option::is_none")]
11798 pub type_uid: Option<i64>,
11799 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
11800 #[serde(rename = "unmapped")]
11801 #[serde(skip_serializing_if = "Option::is_none")]
11802 pub unmapped: Option<serde_json::Value>,
11803 #[doc = "URL\n\nThe URL details relevant to the network traffic.\n\nrecommended"]
11804 #[serde(rename = "url")]
11805 #[serde(skip_serializing_if = "Option::is_none")]
11806 pub url: Option<Box<Url>>,
11807}
11808#[doc = "Network Connection Query\n\nNetwork Connection Query events report information about active network connections.\n\n[UID:5012] Category: discovery | Name: network_connection_query"]
11809#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
11810#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11811#[serde(default)]
11812#[non_exhaustive]
11813pub struct NetworkConnectionQuery {
11814 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
11815 #[serde(rename = "action")]
11816 #[serde(skip_serializing_if = "Option::is_none")]
11817 pub action: Option<String>,
11818 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
11819 #[serde(rename = "action_id")]
11820 #[serde(skip_serializing_if = "Option::is_none")]
11821 pub action_id: Option<i64>,
11822 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
11823 #[serde(rename = "activity_id")]
11824 #[serde(skip_serializing_if = "Option::is_none")]
11825 pub activity_id: Option<i64>,
11826 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
11827 #[serde(rename = "activity_name")]
11828 #[serde(skip_serializing_if = "Option::is_none")]
11829 pub activity_name: Option<String>,
11830 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
11831 #[serde(rename = "actor")]
11832 #[serde(skip_serializing_if = "Option::is_none")]
11833 pub actor: Option<Box<Actor>>,
11834 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
11835 #[serde(rename = "api")]
11836 #[serde(skip_serializing_if = "Option::is_none")]
11837 pub api: Option<Box<Api>>,
11838 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
11839 #[serde(rename = "attacks")]
11840 #[serde(skip_serializing_if = "Option::is_none")]
11841 pub attacks: Option<Vec<Attack>>,
11842 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
11843 #[serde(rename = "authorizations")]
11844 #[serde(skip_serializing_if = "Option::is_none")]
11845 pub authorizations: Option<Vec<Authorization>>,
11846 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
11847 #[serde(rename = "category_name")]
11848 #[serde(skip_serializing_if = "Option::is_none")]
11849 pub category_name: Option<String>,
11850 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
11851 #[serde(rename = "category_uid")]
11852 #[serde(skip_serializing_if = "Option::is_none")]
11853 pub category_uid: Option<i64>,
11854 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Network Connection Query</code>.\n\noptional"]
11855 #[serde(rename = "class_name")]
11856 #[serde(skip_serializing_if = "Option::is_none")]
11857 pub class_name: Option<String>,
11858 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
11859 #[serde(rename = "class_uid")]
11860 #[serde(skip_serializing_if = "Option::is_none")]
11861 pub class_uid: Option<i64>,
11862 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
11863 #[serde(rename = "cloud")]
11864 #[serde(skip_serializing_if = "Option::is_none")]
11865 pub cloud: Option<Box<Cloud>>,
11866 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11867 #[serde(rename = "confidence")]
11868 #[serde(skip_serializing_if = "Option::is_none")]
11869 pub confidence: Option<String>,
11870 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
11871 #[serde(rename = "confidence_id")]
11872 #[serde(skip_serializing_if = "Option::is_none")]
11873 pub confidence_id: Option<i64>,
11874 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
11875 #[serde(rename = "confidence_score")]
11876 #[serde(skip_serializing_if = "Option::is_none")]
11877 pub confidence_score: Option<i64>,
11878 #[doc = "Connection Info\n\nThe network connection information.\n\nrequired"]
11879 #[serde(rename = "connection_info")]
11880 #[serde(skip_serializing_if = "Option::is_none")]
11881 pub connection_info: Option<Box<NetworkConnectionInfo>>,
11882 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
11883 #[serde(rename = "count")]
11884 #[serde(skip_serializing_if = "Option::is_none")]
11885 pub count: Option<i64>,
11886 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
11887 #[serde(rename = "device")]
11888 #[serde(skip_serializing_if = "Option::is_none")]
11889 pub device: Option<Box<Device>>,
11890 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
11891 #[serde(rename = "disposition")]
11892 #[serde(skip_serializing_if = "Option::is_none")]
11893 pub disposition: Option<String>,
11894 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
11895 #[serde(rename = "disposition_id")]
11896 #[serde(skip_serializing_if = "Option::is_none")]
11897 pub disposition_id: Option<i64>,
11898 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
11899 #[serde(rename = "duration")]
11900 #[serde(skip_serializing_if = "Option::is_none")]
11901 pub duration: Option<i64>,
11902 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11903 #[serde(rename = "end_time")]
11904 #[serde(skip_serializing_if = "Option::is_none")]
11905 pub end_time: Option<i64>,
11906 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
11907 #[serde(rename = "end_time_dt")]
11908 #[serde(skip_serializing_if = "Option::is_none")]
11909 pub end_time_dt: Option<String>,
11910 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
11911 #[serde(rename = "enrichments")]
11912 #[serde(skip_serializing_if = "Option::is_none")]
11913 pub enrichments: Option<Vec<Enrichment>>,
11914 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
11915 #[serde(rename = "firewall_rule")]
11916 #[serde(skip_serializing_if = "Option::is_none")]
11917 pub firewall_rule: Option<Box<FirewallRule>>,
11918 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
11919 #[serde(rename = "is_alert")]
11920 #[serde(skip_serializing_if = "Option::is_none")]
11921 pub is_alert: Option<bool>,
11922 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
11923 #[serde(rename = "malware")]
11924 #[serde(skip_serializing_if = "Option::is_none")]
11925 pub malware: Option<Vec<Malware>>,
11926 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
11927 #[serde(rename = "malware_scan_info")]
11928 #[serde(skip_serializing_if = "Option::is_none")]
11929 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
11930 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
11931 #[serde(rename = "message")]
11932 #[serde(skip_serializing_if = "Option::is_none")]
11933 pub message: Option<String>,
11934 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
11935 #[serde(rename = "metadata")]
11936 #[serde(skip_serializing_if = "Option::is_none")]
11937 pub metadata: Option<Box<Metadata>>,
11938 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
11939 #[serde(rename = "observables")]
11940 #[serde(skip_serializing_if = "Option::is_none")]
11941 pub observables: Option<Vec<Observable>>,
11942 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
11943 #[serde(rename = "osint")]
11944 #[serde(skip_serializing_if = "Option::is_none")]
11945 pub osint: Option<Vec<Osint>>,
11946 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
11947 #[serde(rename = "policy")]
11948 #[serde(skip_serializing_if = "Option::is_none")]
11949 pub policy: Option<Box<Policy>>,
11950 #[doc = "Process\n\nThe process that owns the socket.\n\nrequired"]
11951 #[serde(rename = "process")]
11952 #[serde(skip_serializing_if = "Option::is_none")]
11953 pub process: Option<Box<Process>>,
11954 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
11955 #[serde(rename = "query_info")]
11956 #[serde(skip_serializing_if = "Option::is_none")]
11957 pub query_info: Option<Box<QueryInfo>>,
11958 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
11959 #[serde(rename = "query_result")]
11960 #[serde(skip_serializing_if = "Option::is_none")]
11961 pub query_result: Option<String>,
11962 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
11963 #[serde(rename = "query_result_id")]
11964 #[serde(skip_serializing_if = "Option::is_none")]
11965 pub query_result_id: Option<i64>,
11966 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
11967 #[serde(rename = "raw_data")]
11968 #[serde(skip_serializing_if = "Option::is_none")]
11969 pub raw_data: Option<String>,
11970 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
11971 #[serde(rename = "raw_data_hash")]
11972 #[serde(skip_serializing_if = "Option::is_none")]
11973 pub raw_data_hash: Option<Box<Fingerprint>>,
11974 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
11975 #[serde(rename = "raw_data_size")]
11976 #[serde(skip_serializing_if = "Option::is_none")]
11977 pub raw_data_size: Option<i64>,
11978 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
11979 #[serde(rename = "risk_details")]
11980 #[serde(skip_serializing_if = "Option::is_none")]
11981 pub risk_details: Option<String>,
11982 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
11983 #[serde(rename = "risk_level")]
11984 #[serde(skip_serializing_if = "Option::is_none")]
11985 pub risk_level: Option<String>,
11986 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
11987 #[serde(rename = "risk_level_id")]
11988 #[serde(skip_serializing_if = "Option::is_none")]
11989 pub risk_level_id: Option<i64>,
11990 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
11991 #[serde(rename = "risk_score")]
11992 #[serde(skip_serializing_if = "Option::is_none")]
11993 pub risk_score: Option<i64>,
11994 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
11995 #[serde(rename = "severity")]
11996 #[serde(skip_serializing_if = "Option::is_none")]
11997 pub severity: Option<String>,
11998 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
11999 #[serde(rename = "severity_id")]
12000 #[serde(skip_serializing_if = "Option::is_none")]
12001 pub severity_id: Option<i64>,
12002 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12003 #[serde(rename = "start_time")]
12004 #[serde(skip_serializing_if = "Option::is_none")]
12005 pub start_time: Option<i64>,
12006 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12007 #[serde(rename = "start_time_dt")]
12008 #[serde(skip_serializing_if = "Option::is_none")]
12009 pub start_time_dt: Option<String>,
12010 #[doc = "State\n\nThe state of the socket, normalized to the caption of the state_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
12011 #[serde(rename = "state")]
12012 #[serde(skip_serializing_if = "Option::is_none")]
12013 pub state: Option<String>,
12014 #[doc = "State ID\n\nThe state of the socket.\n\nrequired"]
12015 #[serde(rename = "state_id")]
12016 #[serde(skip_serializing_if = "Option::is_none")]
12017 pub state_id: Option<i64>,
12018 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
12019 #[serde(rename = "status")]
12020 #[serde(skip_serializing_if = "Option::is_none")]
12021 pub status: Option<String>,
12022 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
12023 #[serde(rename = "status_code")]
12024 #[serde(skip_serializing_if = "Option::is_none")]
12025 pub status_code: Option<String>,
12026 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
12027 #[serde(rename = "status_detail")]
12028 #[serde(skip_serializing_if = "Option::is_none")]
12029 pub status_detail: Option<String>,
12030 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
12031 #[serde(rename = "status_id")]
12032 #[serde(skip_serializing_if = "Option::is_none")]
12033 pub status_id: Option<i64>,
12034 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
12035 #[serde(rename = "time")]
12036 #[serde(skip_serializing_if = "Option::is_none")]
12037 pub time: Option<i64>,
12038 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
12039 #[serde(rename = "time_dt")]
12040 #[serde(skip_serializing_if = "Option::is_none")]
12041 pub time_dt: Option<String>,
12042 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
12043 #[serde(rename = "timezone_offset")]
12044 #[serde(skip_serializing_if = "Option::is_none")]
12045 pub timezone_offset: Option<i64>,
12046 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
12047 #[serde(rename = "type_name")]
12048 #[serde(skip_serializing_if = "Option::is_none")]
12049 pub type_name: Option<String>,
12050 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
12051 #[serde(rename = "type_uid")]
12052 #[serde(skip_serializing_if = "Option::is_none")]
12053 pub type_uid: Option<i64>,
12054 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
12055 #[serde(rename = "unmapped")]
12056 #[serde(skip_serializing_if = "Option::is_none")]
12057 pub unmapped: Option<serde_json::Value>,
12058}
12059#[doc = "Network File Activity\n\nNetwork File Activity events report file activities traversing the network, including file storage services such as Box, MS OneDrive, or Google Drive.\n\n[UID:4010] Category: network | Name: network_file_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
12060#[deprecated(
12061 note = "Use the new class: <code>'File Hosting Activity' in the 'Application' category.</code> (Since 1.1.0)"
12062)]
12063#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12064#[serde(default)]
12065#[non_exhaustive]
12066pub struct NetworkFileActivity {
12067 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
12068 #[serde(rename = "action")]
12069 #[serde(skip_serializing_if = "Option::is_none")]
12070 pub action: Option<String>,
12071 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
12072 #[serde(rename = "action_id")]
12073 #[serde(skip_serializing_if = "Option::is_none")]
12074 pub action_id: Option<i64>,
12075 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
12076 #[serde(rename = "activity_id")]
12077 #[serde(skip_serializing_if = "Option::is_none")]
12078 pub activity_id: Option<i64>,
12079 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
12080 #[serde(rename = "activity_name")]
12081 #[serde(skip_serializing_if = "Option::is_none")]
12082 pub activity_name: Option<String>,
12083 #[doc = "Actor\n\nThe actor that performed the activity on the target file.\n\nrequired"]
12084 #[serde(rename = "actor")]
12085 #[serde(skip_serializing_if = "Option::is_none")]
12086 pub actor: Option<Box<Actor>>,
12087 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
12088 #[serde(rename = "api")]
12089 #[serde(skip_serializing_if = "Option::is_none")]
12090 pub api: Option<Box<Api>>,
12091 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
12092 #[serde(rename = "app_name")]
12093 #[serde(skip_serializing_if = "Option::is_none")]
12094 pub app_name: Option<String>,
12095 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
12096 #[serde(rename = "attacks")]
12097 #[serde(skip_serializing_if = "Option::is_none")]
12098 pub attacks: Option<Vec<Attack>>,
12099 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
12100 #[serde(rename = "authorizations")]
12101 #[serde(skip_serializing_if = "Option::is_none")]
12102 pub authorizations: Option<Vec<Authorization>>,
12103 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
12104 #[serde(rename = "category_name")]
12105 #[serde(skip_serializing_if = "Option::is_none")]
12106 pub category_name: Option<String>,
12107 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
12108 #[serde(rename = "category_uid")]
12109 #[serde(skip_serializing_if = "Option::is_none")]
12110 pub category_uid: Option<i64>,
12111 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Network File Activity</code>.\n\noptional"]
12112 #[serde(rename = "class_name")]
12113 #[serde(skip_serializing_if = "Option::is_none")]
12114 pub class_name: Option<String>,
12115 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
12116 #[serde(rename = "class_uid")]
12117 #[serde(skip_serializing_if = "Option::is_none")]
12118 pub class_uid: Option<i64>,
12119 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
12120 #[serde(rename = "cloud")]
12121 #[serde(skip_serializing_if = "Option::is_none")]
12122 pub cloud: Option<Box<Cloud>>,
12123 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12124 #[serde(rename = "confidence")]
12125 #[serde(skip_serializing_if = "Option::is_none")]
12126 pub confidence: Option<String>,
12127 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
12128 #[serde(rename = "confidence_id")]
12129 #[serde(skip_serializing_if = "Option::is_none")]
12130 pub confidence_id: Option<i64>,
12131 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
12132 #[serde(rename = "confidence_score")]
12133 #[serde(skip_serializing_if = "Option::is_none")]
12134 pub confidence_score: Option<i64>,
12135 #[doc = "Connection Info\n\nThe network connection information.\n\noptional"]
12136 #[serde(rename = "connection_info")]
12137 #[serde(skip_serializing_if = "Option::is_none")]
12138 pub connection_info: Option<Box<NetworkConnectionInfo>>,
12139 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
12140 #[serde(rename = "count")]
12141 #[serde(skip_serializing_if = "Option::is_none")]
12142 pub count: Option<i64>,
12143 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
12144 #[serde(rename = "cumulative_traffic")]
12145 #[serde(skip_serializing_if = "Option::is_none")]
12146 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
12147 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
12148 #[serde(rename = "device")]
12149 #[serde(skip_serializing_if = "Option::is_none")]
12150 pub device: Option<Box<Device>>,
12151 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12152 #[serde(rename = "disposition")]
12153 #[serde(skip_serializing_if = "Option::is_none")]
12154 pub disposition: Option<String>,
12155 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
12156 #[serde(rename = "disposition_id")]
12157 #[serde(skip_serializing_if = "Option::is_none")]
12158 pub disposition_id: Option<i64>,
12159 #[doc = "Destination Endpoint\n\nThe endpoint that received the activity on the target file.\n\nrecommended"]
12160 #[serde(rename = "dst_endpoint")]
12161 #[serde(skip_serializing_if = "Option::is_none")]
12162 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
12163 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
12164 #[serde(rename = "duration")]
12165 #[serde(skip_serializing_if = "Option::is_none")]
12166 pub duration: Option<i64>,
12167 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12168 #[serde(rename = "end_time")]
12169 #[serde(skip_serializing_if = "Option::is_none")]
12170 pub end_time: Option<i64>,
12171 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12172 #[serde(rename = "end_time_dt")]
12173 #[serde(skip_serializing_if = "Option::is_none")]
12174 pub end_time_dt: Option<String>,
12175 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
12176 #[serde(rename = "enrichments")]
12177 #[serde(skip_serializing_if = "Option::is_none")]
12178 pub enrichments: Option<Vec<Enrichment>>,
12179 #[doc = "Expiration Time\n\nThe share expiration time.\n\noptional"]
12180 #[serde(rename = "expiration_time")]
12181 #[serde(skip_serializing_if = "Option::is_none")]
12182 pub expiration_time: Option<i64>,
12183 #[doc = "Expiration Time\n\nThe share expiration time.\n\noptional"]
12184 #[serde(rename = "expiration_time_dt")]
12185 #[serde(skip_serializing_if = "Option::is_none")]
12186 pub expiration_time_dt: Option<String>,
12187 #[doc = "File\n\nThe file that is the target of the activity.\n\nrequired"]
12188 #[serde(rename = "file")]
12189 #[serde(skip_serializing_if = "Option::is_none")]
12190 pub file: Option<Box<File>>,
12191 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
12192 #[serde(rename = "firewall_rule")]
12193 #[serde(skip_serializing_if = "Option::is_none")]
12194 pub firewall_rule: Option<Box<FirewallRule>>,
12195 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
12196 #[serde(rename = "is_alert")]
12197 #[serde(skip_serializing_if = "Option::is_none")]
12198 pub is_alert: Option<bool>,
12199 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
12200 #[serde(rename = "ja4_fingerprint_list")]
12201 #[serde(skip_serializing_if = "Option::is_none")]
12202 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
12203 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
12204 #[serde(rename = "load_balancer")]
12205 #[serde(skip_serializing_if = "Option::is_none")]
12206 pub load_balancer: Option<Box<LoadBalancer>>,
12207 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
12208 #[serde(rename = "malware")]
12209 #[serde(skip_serializing_if = "Option::is_none")]
12210 pub malware: Option<Vec<Malware>>,
12211 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
12212 #[serde(rename = "malware_scan_info")]
12213 #[serde(skip_serializing_if = "Option::is_none")]
12214 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
12215 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
12216 #[serde(rename = "message")]
12217 #[serde(skip_serializing_if = "Option::is_none")]
12218 pub message: Option<String>,
12219 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
12220 #[serde(rename = "metadata")]
12221 #[serde(skip_serializing_if = "Option::is_none")]
12222 pub metadata: Option<Box<Metadata>>,
12223 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
12224 #[serde(rename = "observables")]
12225 #[serde(skip_serializing_if = "Option::is_none")]
12226 pub observables: Option<Vec<Observable>>,
12227 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
12228 #[serde(rename = "observation_point")]
12229 #[serde(skip_serializing_if = "Option::is_none")]
12230 pub observation_point: Option<String>,
12231 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
12232 #[serde(rename = "observation_point_id")]
12233 #[serde(skip_serializing_if = "Option::is_none")]
12234 pub observation_point_id: Option<i64>,
12235 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
12236 #[serde(rename = "osint")]
12237 #[serde(skip_serializing_if = "Option::is_none")]
12238 pub osint: Option<Vec<Osint>>,
12239 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
12240 #[serde(rename = "policy")]
12241 #[serde(skip_serializing_if = "Option::is_none")]
12242 pub policy: Option<Box<Policy>>,
12243 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
12244 #[serde(rename = "proxy")]
12245 #[serde(skip_serializing_if = "Option::is_none")]
12246 pub proxy: Option<Box<NetworkProxy>>,
12247 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
12248 #[serde(rename = "proxy_connection_info")]
12249 #[serde(skip_serializing_if = "Option::is_none")]
12250 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
12251 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
12252 #[serde(rename = "proxy_endpoint")]
12253 #[serde(skip_serializing_if = "Option::is_none")]
12254 pub proxy_endpoint: Option<Box<NetworkProxy>>,
12255 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
12256 #[serde(rename = "proxy_http_request")]
12257 #[serde(skip_serializing_if = "Option::is_none")]
12258 pub proxy_http_request: Option<Box<HttpRequest>>,
12259 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
12260 #[serde(rename = "proxy_http_response")]
12261 #[serde(skip_serializing_if = "Option::is_none")]
12262 pub proxy_http_response: Option<Box<HttpResponse>>,
12263 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
12264 #[serde(rename = "proxy_tls")]
12265 #[serde(skip_serializing_if = "Option::is_none")]
12266 pub proxy_tls: Option<Box<Tls>>,
12267 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
12268 #[serde(rename = "proxy_traffic")]
12269 #[serde(skip_serializing_if = "Option::is_none")]
12270 pub proxy_traffic: Option<Box<NetworkTraffic>>,
12271 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
12272 #[serde(rename = "raw_data")]
12273 #[serde(skip_serializing_if = "Option::is_none")]
12274 pub raw_data: Option<String>,
12275 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
12276 #[serde(rename = "raw_data_hash")]
12277 #[serde(skip_serializing_if = "Option::is_none")]
12278 pub raw_data_hash: Option<Box<Fingerprint>>,
12279 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
12280 #[serde(rename = "raw_data_size")]
12281 #[serde(skip_serializing_if = "Option::is_none")]
12282 pub raw_data_size: Option<i64>,
12283 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
12284 #[serde(rename = "risk_details")]
12285 #[serde(skip_serializing_if = "Option::is_none")]
12286 pub risk_details: Option<String>,
12287 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
12288 #[serde(rename = "risk_level")]
12289 #[serde(skip_serializing_if = "Option::is_none")]
12290 pub risk_level: Option<String>,
12291 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
12292 #[serde(rename = "risk_level_id")]
12293 #[serde(skip_serializing_if = "Option::is_none")]
12294 pub risk_level_id: Option<i64>,
12295 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
12296 #[serde(rename = "risk_score")]
12297 #[serde(skip_serializing_if = "Option::is_none")]
12298 pub risk_score: Option<i64>,
12299 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
12300 #[serde(rename = "severity")]
12301 #[serde(skip_serializing_if = "Option::is_none")]
12302 pub severity: Option<String>,
12303 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
12304 #[serde(rename = "severity_id")]
12305 #[serde(skip_serializing_if = "Option::is_none")]
12306 pub severity_id: Option<i64>,
12307 #[doc = "Source Endpoint\n\nThe endpoint that performed the activity on the target file.\n\nrequired"]
12308 #[serde(rename = "src_endpoint")]
12309 #[serde(skip_serializing_if = "Option::is_none")]
12310 pub src_endpoint: Option<Box<NetworkEndpoint>>,
12311 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12312 #[serde(rename = "start_time")]
12313 #[serde(skip_serializing_if = "Option::is_none")]
12314 pub start_time: Option<i64>,
12315 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12316 #[serde(rename = "start_time_dt")]
12317 #[serde(skip_serializing_if = "Option::is_none")]
12318 pub start_time_dt: Option<String>,
12319 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
12320 #[serde(rename = "status")]
12321 #[serde(skip_serializing_if = "Option::is_none")]
12322 pub status: Option<String>,
12323 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
12324 #[serde(rename = "status_code")]
12325 #[serde(skip_serializing_if = "Option::is_none")]
12326 pub status_code: Option<String>,
12327 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
12328 #[serde(rename = "status_detail")]
12329 #[serde(skip_serializing_if = "Option::is_none")]
12330 pub status_detail: Option<String>,
12331 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
12332 #[serde(rename = "status_id")]
12333 #[serde(skip_serializing_if = "Option::is_none")]
12334 pub status_id: Option<i64>,
12335 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
12336 #[serde(rename = "time")]
12337 #[serde(skip_serializing_if = "Option::is_none")]
12338 pub time: Option<i64>,
12339 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
12340 #[serde(rename = "time_dt")]
12341 #[serde(skip_serializing_if = "Option::is_none")]
12342 pub time_dt: Option<String>,
12343 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
12344 #[serde(rename = "timezone_offset")]
12345 #[serde(skip_serializing_if = "Option::is_none")]
12346 pub timezone_offset: Option<i64>,
12347 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
12348 #[serde(rename = "tls")]
12349 #[serde(skip_serializing_if = "Option::is_none")]
12350 pub tls: Option<Box<Tls>>,
12351 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
12352 #[serde(rename = "traffic")]
12353 #[serde(skip_serializing_if = "Option::is_none")]
12354 pub traffic: Option<Box<NetworkTraffic>>,
12355 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
12356 #[serde(rename = "type_name")]
12357 #[serde(skip_serializing_if = "Option::is_none")]
12358 pub type_name: Option<String>,
12359 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
12360 #[serde(rename = "type_uid")]
12361 #[serde(skip_serializing_if = "Option::is_none")]
12362 pub type_uid: Option<i64>,
12363 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
12364 #[serde(rename = "unmapped")]
12365 #[serde(skip_serializing_if = "Option::is_none")]
12366 pub unmapped: Option<serde_json::Value>,
12367}
12368#[doc = "Network Remediation Activity\n\nNetwork Remediation Activity events report on attempts at remediating computer networks. It follows the MITRE countermeasures defined by the D3FEND™ <a target='_blank' href='https://d3fend.mitre.org/'>Matrix</a>. Techniques and Sub-techniques will include Network, such as Network Isolation or Network Traffic Filtering.\n\n[UID:7004] Category: remediation | Name: network_remediation_activity"]
12369#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12370#[serde(default)]
12371#[non_exhaustive]
12372pub struct NetworkRemediationActivity {
12373 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
12374 #[serde(rename = "action")]
12375 #[serde(skip_serializing_if = "Option::is_none")]
12376 pub action: Option<String>,
12377 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
12378 #[serde(rename = "action_id")]
12379 #[serde(skip_serializing_if = "Option::is_none")]
12380 pub action_id: Option<i64>,
12381 #[doc = "Activity ID\n\nMatches the MITRE D3FEND™ Tactic. Note: the Model and Detect Tactics are not supported as remediations by the OCSF Remediation event class.\n\nrequired"]
12382 #[serde(rename = "activity_id")]
12383 #[serde(skip_serializing_if = "Option::is_none")]
12384 pub activity_id: Option<i64>,
12385 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
12386 #[serde(rename = "activity_name")]
12387 #[serde(skip_serializing_if = "Option::is_none")]
12388 pub activity_name: Option<String>,
12389 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
12390 #[serde(rename = "actor")]
12391 #[serde(skip_serializing_if = "Option::is_none")]
12392 pub actor: Option<Box<Actor>>,
12393 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
12394 #[serde(rename = "api")]
12395 #[serde(skip_serializing_if = "Option::is_none")]
12396 pub api: Option<Box<Api>>,
12397 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
12398 #[serde(rename = "attacks")]
12399 #[serde(skip_serializing_if = "Option::is_none")]
12400 pub attacks: Option<Vec<Attack>>,
12401 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
12402 #[serde(rename = "authorizations")]
12403 #[serde(skip_serializing_if = "Option::is_none")]
12404 pub authorizations: Option<Vec<Authorization>>,
12405 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Remediation</code>.\n\noptional"]
12406 #[serde(rename = "category_name")]
12407 #[serde(skip_serializing_if = "Option::is_none")]
12408 pub category_name: Option<String>,
12409 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
12410 #[serde(rename = "category_uid")]
12411 #[serde(skip_serializing_if = "Option::is_none")]
12412 pub category_uid: Option<i64>,
12413 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Network Remediation Activity</code>.\n\noptional"]
12414 #[serde(rename = "class_name")]
12415 #[serde(skip_serializing_if = "Option::is_none")]
12416 pub class_name: Option<String>,
12417 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
12418 #[serde(rename = "class_uid")]
12419 #[serde(skip_serializing_if = "Option::is_none")]
12420 pub class_uid: Option<i64>,
12421 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
12422 #[serde(rename = "cloud")]
12423 #[serde(skip_serializing_if = "Option::is_none")]
12424 pub cloud: Option<Box<Cloud>>,
12425 #[doc = "Command UID\n\nThe unique identifier of the remediation command that pertains to this event.\n\nrequired"]
12426 #[serde(rename = "command_uid")]
12427 #[serde(skip_serializing_if = "Option::is_none")]
12428 pub command_uid: Option<String>,
12429 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12430 #[serde(rename = "confidence")]
12431 #[serde(skip_serializing_if = "Option::is_none")]
12432 pub confidence: Option<String>,
12433 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
12434 #[serde(rename = "confidence_id")]
12435 #[serde(skip_serializing_if = "Option::is_none")]
12436 pub confidence_id: Option<i64>,
12437 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
12438 #[serde(rename = "confidence_score")]
12439 #[serde(skip_serializing_if = "Option::is_none")]
12440 pub confidence_score: Option<i64>,
12441 #[doc = "Connection Info\n\nThe network connection that pertains to the remediation event.\n\nrequired"]
12442 #[serde(rename = "connection_info")]
12443 #[serde(skip_serializing_if = "Option::is_none")]
12444 pub connection_info: Option<Box<NetworkConnectionInfo>>,
12445 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
12446 #[serde(rename = "count")]
12447 #[serde(skip_serializing_if = "Option::is_none")]
12448 pub count: Option<i64>,
12449 #[doc = "Countermeasures\n\nThe MITRE D3FEND™ Matrix Countermeasures associated with a remediation.\n\nrecommended"]
12450 #[serde(rename = "countermeasures")]
12451 #[serde(skip_serializing_if = "Option::is_none")]
12452 pub countermeasures: Option<Vec<D3fend>>,
12453 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
12454 #[serde(rename = "device")]
12455 #[serde(skip_serializing_if = "Option::is_none")]
12456 pub device: Option<Box<Device>>,
12457 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12458 #[serde(rename = "disposition")]
12459 #[serde(skip_serializing_if = "Option::is_none")]
12460 pub disposition: Option<String>,
12461 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
12462 #[serde(rename = "disposition_id")]
12463 #[serde(skip_serializing_if = "Option::is_none")]
12464 pub disposition_id: Option<i64>,
12465 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
12466 #[serde(rename = "duration")]
12467 #[serde(skip_serializing_if = "Option::is_none")]
12468 pub duration: Option<i64>,
12469 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12470 #[serde(rename = "end_time")]
12471 #[serde(skip_serializing_if = "Option::is_none")]
12472 pub end_time: Option<i64>,
12473 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12474 #[serde(rename = "end_time_dt")]
12475 #[serde(skip_serializing_if = "Option::is_none")]
12476 pub end_time_dt: Option<String>,
12477 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
12478 #[serde(rename = "enrichments")]
12479 #[serde(skip_serializing_if = "Option::is_none")]
12480 pub enrichments: Option<Vec<Enrichment>>,
12481 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
12482 #[serde(rename = "firewall_rule")]
12483 #[serde(skip_serializing_if = "Option::is_none")]
12484 pub firewall_rule: Option<Box<FirewallRule>>,
12485 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
12486 #[serde(rename = "is_alert")]
12487 #[serde(skip_serializing_if = "Option::is_none")]
12488 pub is_alert: Option<bool>,
12489 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
12490 #[serde(rename = "malware")]
12491 #[serde(skip_serializing_if = "Option::is_none")]
12492 pub malware: Option<Vec<Malware>>,
12493 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
12494 #[serde(rename = "malware_scan_info")]
12495 #[serde(skip_serializing_if = "Option::is_none")]
12496 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
12497 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
12498 #[serde(rename = "message")]
12499 #[serde(skip_serializing_if = "Option::is_none")]
12500 pub message: Option<String>,
12501 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
12502 #[serde(rename = "metadata")]
12503 #[serde(skip_serializing_if = "Option::is_none")]
12504 pub metadata: Option<Box<Metadata>>,
12505 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
12506 #[serde(rename = "observables")]
12507 #[serde(skip_serializing_if = "Option::is_none")]
12508 pub observables: Option<Vec<Observable>>,
12509 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
12510 #[serde(rename = "osint")]
12511 #[serde(skip_serializing_if = "Option::is_none")]
12512 pub osint: Option<Vec<Osint>>,
12513 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
12514 #[serde(rename = "policy")]
12515 #[serde(skip_serializing_if = "Option::is_none")]
12516 pub policy: Option<Box<Policy>>,
12517 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
12518 #[serde(rename = "raw_data")]
12519 #[serde(skip_serializing_if = "Option::is_none")]
12520 pub raw_data: Option<String>,
12521 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
12522 #[serde(rename = "raw_data_hash")]
12523 #[serde(skip_serializing_if = "Option::is_none")]
12524 pub raw_data_hash: Option<Box<Fingerprint>>,
12525 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
12526 #[serde(rename = "raw_data_size")]
12527 #[serde(skip_serializing_if = "Option::is_none")]
12528 pub raw_data_size: Option<i64>,
12529 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
12530 #[serde(rename = "remediation")]
12531 #[serde(skip_serializing_if = "Option::is_none")]
12532 pub remediation: Option<Box<Remediation>>,
12533 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
12534 #[serde(rename = "risk_details")]
12535 #[serde(skip_serializing_if = "Option::is_none")]
12536 pub risk_details: Option<String>,
12537 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
12538 #[serde(rename = "risk_level")]
12539 #[serde(skip_serializing_if = "Option::is_none")]
12540 pub risk_level: Option<String>,
12541 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
12542 #[serde(rename = "risk_level_id")]
12543 #[serde(skip_serializing_if = "Option::is_none")]
12544 pub risk_level_id: Option<i64>,
12545 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
12546 #[serde(rename = "risk_score")]
12547 #[serde(skip_serializing_if = "Option::is_none")]
12548 pub risk_score: Option<i64>,
12549 #[doc = "Scan\n\nThe remediation scan that pertains to this event.\n\noptional"]
12550 #[serde(rename = "scan")]
12551 #[serde(skip_serializing_if = "Option::is_none")]
12552 pub scan: Option<Box<Scan>>,
12553 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
12554 #[serde(rename = "severity")]
12555 #[serde(skip_serializing_if = "Option::is_none")]
12556 pub severity: Option<String>,
12557 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
12558 #[serde(rename = "severity_id")]
12559 #[serde(skip_serializing_if = "Option::is_none")]
12560 pub severity_id: Option<i64>,
12561 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12562 #[serde(rename = "start_time")]
12563 #[serde(skip_serializing_if = "Option::is_none")]
12564 pub start_time: Option<i64>,
12565 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12566 #[serde(rename = "start_time_dt")]
12567 #[serde(skip_serializing_if = "Option::is_none")]
12568 pub start_time_dt: Option<String>,
12569 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
12570 #[serde(rename = "status")]
12571 #[serde(skip_serializing_if = "Option::is_none")]
12572 pub status: Option<String>,
12573 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
12574 #[serde(rename = "status_code")]
12575 #[serde(skip_serializing_if = "Option::is_none")]
12576 pub status_code: Option<String>,
12577 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
12578 #[serde(rename = "status_detail")]
12579 #[serde(skip_serializing_if = "Option::is_none")]
12580 pub status_detail: Option<String>,
12581 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
12582 #[serde(rename = "status_id")]
12583 #[serde(skip_serializing_if = "Option::is_none")]
12584 pub status_id: Option<i64>,
12585 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
12586 #[serde(rename = "time")]
12587 #[serde(skip_serializing_if = "Option::is_none")]
12588 pub time: Option<i64>,
12589 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
12590 #[serde(rename = "time_dt")]
12591 #[serde(skip_serializing_if = "Option::is_none")]
12592 pub time_dt: Option<String>,
12593 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
12594 #[serde(rename = "timezone_offset")]
12595 #[serde(skip_serializing_if = "Option::is_none")]
12596 pub timezone_offset: Option<i64>,
12597 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
12598 #[serde(rename = "type_name")]
12599 #[serde(skip_serializing_if = "Option::is_none")]
12600 pub type_name: Option<String>,
12601 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
12602 #[serde(rename = "type_uid")]
12603 #[serde(skip_serializing_if = "Option::is_none")]
12604 pub type_uid: Option<i64>,
12605 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
12606 #[serde(rename = "unmapped")]
12607 #[serde(skip_serializing_if = "Option::is_none")]
12608 pub unmapped: Option<serde_json::Value>,
12609}
12610#[doc = "Networks Query\n\nNetworks Query events report information about network adapters.\n\n[UID:5013] Category: discovery | Name: networks_query"]
12611#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
12612#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12613#[serde(default)]
12614#[non_exhaustive]
12615pub struct NetworksQuery {
12616 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
12617 #[serde(rename = "action")]
12618 #[serde(skip_serializing_if = "Option::is_none")]
12619 pub action: Option<String>,
12620 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
12621 #[serde(rename = "action_id")]
12622 #[serde(skip_serializing_if = "Option::is_none")]
12623 pub action_id: Option<i64>,
12624 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
12625 #[serde(rename = "activity_id")]
12626 #[serde(skip_serializing_if = "Option::is_none")]
12627 pub activity_id: Option<i64>,
12628 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
12629 #[serde(rename = "activity_name")]
12630 #[serde(skip_serializing_if = "Option::is_none")]
12631 pub activity_name: Option<String>,
12632 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
12633 #[serde(rename = "actor")]
12634 #[serde(skip_serializing_if = "Option::is_none")]
12635 pub actor: Option<Box<Actor>>,
12636 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
12637 #[serde(rename = "api")]
12638 #[serde(skip_serializing_if = "Option::is_none")]
12639 pub api: Option<Box<Api>>,
12640 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
12641 #[serde(rename = "attacks")]
12642 #[serde(skip_serializing_if = "Option::is_none")]
12643 pub attacks: Option<Vec<Attack>>,
12644 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
12645 #[serde(rename = "authorizations")]
12646 #[serde(skip_serializing_if = "Option::is_none")]
12647 pub authorizations: Option<Vec<Authorization>>,
12648 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
12649 #[serde(rename = "category_name")]
12650 #[serde(skip_serializing_if = "Option::is_none")]
12651 pub category_name: Option<String>,
12652 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
12653 #[serde(rename = "category_uid")]
12654 #[serde(skip_serializing_if = "Option::is_none")]
12655 pub category_uid: Option<i64>,
12656 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Networks Query</code>.\n\noptional"]
12657 #[serde(rename = "class_name")]
12658 #[serde(skip_serializing_if = "Option::is_none")]
12659 pub class_name: Option<String>,
12660 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
12661 #[serde(rename = "class_uid")]
12662 #[serde(skip_serializing_if = "Option::is_none")]
12663 pub class_uid: Option<i64>,
12664 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
12665 #[serde(rename = "cloud")]
12666 #[serde(skip_serializing_if = "Option::is_none")]
12667 pub cloud: Option<Box<Cloud>>,
12668 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12669 #[serde(rename = "confidence")]
12670 #[serde(skip_serializing_if = "Option::is_none")]
12671 pub confidence: Option<String>,
12672 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
12673 #[serde(rename = "confidence_id")]
12674 #[serde(skip_serializing_if = "Option::is_none")]
12675 pub confidence_id: Option<i64>,
12676 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
12677 #[serde(rename = "confidence_score")]
12678 #[serde(skip_serializing_if = "Option::is_none")]
12679 pub confidence_score: Option<i64>,
12680 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
12681 #[serde(rename = "count")]
12682 #[serde(skip_serializing_if = "Option::is_none")]
12683 pub count: Option<i64>,
12684 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
12685 #[serde(rename = "device")]
12686 #[serde(skip_serializing_if = "Option::is_none")]
12687 pub device: Option<Box<Device>>,
12688 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12689 #[serde(rename = "disposition")]
12690 #[serde(skip_serializing_if = "Option::is_none")]
12691 pub disposition: Option<String>,
12692 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
12693 #[serde(rename = "disposition_id")]
12694 #[serde(skip_serializing_if = "Option::is_none")]
12695 pub disposition_id: Option<i64>,
12696 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
12697 #[serde(rename = "duration")]
12698 #[serde(skip_serializing_if = "Option::is_none")]
12699 pub duration: Option<i64>,
12700 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12701 #[serde(rename = "end_time")]
12702 #[serde(skip_serializing_if = "Option::is_none")]
12703 pub end_time: Option<i64>,
12704 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12705 #[serde(rename = "end_time_dt")]
12706 #[serde(skip_serializing_if = "Option::is_none")]
12707 pub end_time_dt: Option<String>,
12708 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
12709 #[serde(rename = "enrichments")]
12710 #[serde(skip_serializing_if = "Option::is_none")]
12711 pub enrichments: Option<Vec<Enrichment>>,
12712 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
12713 #[serde(rename = "firewall_rule")]
12714 #[serde(skip_serializing_if = "Option::is_none")]
12715 pub firewall_rule: Option<Box<FirewallRule>>,
12716 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
12717 #[serde(rename = "is_alert")]
12718 #[serde(skip_serializing_if = "Option::is_none")]
12719 pub is_alert: Option<bool>,
12720 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
12721 #[serde(rename = "malware")]
12722 #[serde(skip_serializing_if = "Option::is_none")]
12723 pub malware: Option<Vec<Malware>>,
12724 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
12725 #[serde(rename = "malware_scan_info")]
12726 #[serde(skip_serializing_if = "Option::is_none")]
12727 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
12728 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
12729 #[serde(rename = "message")]
12730 #[serde(skip_serializing_if = "Option::is_none")]
12731 pub message: Option<String>,
12732 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
12733 #[serde(rename = "metadata")]
12734 #[serde(skip_serializing_if = "Option::is_none")]
12735 pub metadata: Option<Box<Metadata>>,
12736 #[doc = "Network Interfaces\n\nThe physical or virtual network interfaces that are associated with the device, one for each unique MAC address/IP address/hostname/name combination.<p><b>Note:</b> The first element of the array is the network information that pertains to the event.</p>\n\nrequired"]
12737 #[serde(rename = "network_interfaces")]
12738 #[serde(skip_serializing_if = "Option::is_none")]
12739 pub network_interfaces: Option<Vec<NetworkInterface>>,
12740 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
12741 #[serde(rename = "observables")]
12742 #[serde(skip_serializing_if = "Option::is_none")]
12743 pub observables: Option<Vec<Observable>>,
12744 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
12745 #[serde(rename = "osint")]
12746 #[serde(skip_serializing_if = "Option::is_none")]
12747 pub osint: Option<Vec<Osint>>,
12748 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
12749 #[serde(rename = "policy")]
12750 #[serde(skip_serializing_if = "Option::is_none")]
12751 pub policy: Option<Box<Policy>>,
12752 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
12753 #[serde(rename = "query_info")]
12754 #[serde(skip_serializing_if = "Option::is_none")]
12755 pub query_info: Option<Box<QueryInfo>>,
12756 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
12757 #[serde(rename = "query_result")]
12758 #[serde(skip_serializing_if = "Option::is_none")]
12759 pub query_result: Option<String>,
12760 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
12761 #[serde(rename = "query_result_id")]
12762 #[serde(skip_serializing_if = "Option::is_none")]
12763 pub query_result_id: Option<i64>,
12764 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
12765 #[serde(rename = "raw_data")]
12766 #[serde(skip_serializing_if = "Option::is_none")]
12767 pub raw_data: Option<String>,
12768 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
12769 #[serde(rename = "raw_data_hash")]
12770 #[serde(skip_serializing_if = "Option::is_none")]
12771 pub raw_data_hash: Option<Box<Fingerprint>>,
12772 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
12773 #[serde(rename = "raw_data_size")]
12774 #[serde(skip_serializing_if = "Option::is_none")]
12775 pub raw_data_size: Option<i64>,
12776 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
12777 #[serde(rename = "risk_details")]
12778 #[serde(skip_serializing_if = "Option::is_none")]
12779 pub risk_details: Option<String>,
12780 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
12781 #[serde(rename = "risk_level")]
12782 #[serde(skip_serializing_if = "Option::is_none")]
12783 pub risk_level: Option<String>,
12784 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
12785 #[serde(rename = "risk_level_id")]
12786 #[serde(skip_serializing_if = "Option::is_none")]
12787 pub risk_level_id: Option<i64>,
12788 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
12789 #[serde(rename = "risk_score")]
12790 #[serde(skip_serializing_if = "Option::is_none")]
12791 pub risk_score: Option<i64>,
12792 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
12793 #[serde(rename = "severity")]
12794 #[serde(skip_serializing_if = "Option::is_none")]
12795 pub severity: Option<String>,
12796 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
12797 #[serde(rename = "severity_id")]
12798 #[serde(skip_serializing_if = "Option::is_none")]
12799 pub severity_id: Option<i64>,
12800 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12801 #[serde(rename = "start_time")]
12802 #[serde(skip_serializing_if = "Option::is_none")]
12803 pub start_time: Option<i64>,
12804 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
12805 #[serde(rename = "start_time_dt")]
12806 #[serde(skip_serializing_if = "Option::is_none")]
12807 pub start_time_dt: Option<String>,
12808 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
12809 #[serde(rename = "status")]
12810 #[serde(skip_serializing_if = "Option::is_none")]
12811 pub status: Option<String>,
12812 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
12813 #[serde(rename = "status_code")]
12814 #[serde(skip_serializing_if = "Option::is_none")]
12815 pub status_code: Option<String>,
12816 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
12817 #[serde(rename = "status_detail")]
12818 #[serde(skip_serializing_if = "Option::is_none")]
12819 pub status_detail: Option<String>,
12820 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
12821 #[serde(rename = "status_id")]
12822 #[serde(skip_serializing_if = "Option::is_none")]
12823 pub status_id: Option<i64>,
12824 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
12825 #[serde(rename = "time")]
12826 #[serde(skip_serializing_if = "Option::is_none")]
12827 pub time: Option<i64>,
12828 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
12829 #[serde(rename = "time_dt")]
12830 #[serde(skip_serializing_if = "Option::is_none")]
12831 pub time_dt: Option<String>,
12832 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
12833 #[serde(rename = "timezone_offset")]
12834 #[serde(skip_serializing_if = "Option::is_none")]
12835 pub timezone_offset: Option<i64>,
12836 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
12837 #[serde(rename = "type_name")]
12838 #[serde(skip_serializing_if = "Option::is_none")]
12839 pub type_name: Option<String>,
12840 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
12841 #[serde(rename = "type_uid")]
12842 #[serde(skip_serializing_if = "Option::is_none")]
12843 pub type_uid: Option<i64>,
12844 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
12845 #[serde(rename = "unmapped")]
12846 #[serde(skip_serializing_if = "Option::is_none")]
12847 pub unmapped: Option<serde_json::Value>,
12848}
12849#[doc = "NTP Activity\n\nThe Network Time Protocol (NTP) Activity events report instances of remote clients synchronizing their clocks with an NTP server, as observed on the network.\n\n[UID:4013] Category: network | Name: ntp_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
12850#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12851#[serde(default)]
12852#[non_exhaustive]
12853pub struct NtpActivity {
12854 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
12855 #[serde(rename = "action")]
12856 #[serde(skip_serializing_if = "Option::is_none")]
12857 pub action: Option<String>,
12858 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
12859 #[serde(rename = "action_id")]
12860 #[serde(skip_serializing_if = "Option::is_none")]
12861 pub action_id: Option<i64>,
12862 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
12863 #[serde(rename = "activity_id")]
12864 #[serde(skip_serializing_if = "Option::is_none")]
12865 pub activity_id: Option<i64>,
12866 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
12867 #[serde(rename = "activity_name")]
12868 #[serde(skip_serializing_if = "Option::is_none")]
12869 pub activity_name: Option<String>,
12870 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
12871 #[serde(rename = "actor")]
12872 #[serde(skip_serializing_if = "Option::is_none")]
12873 pub actor: Option<Box<Actor>>,
12874 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
12875 #[serde(rename = "api")]
12876 #[serde(skip_serializing_if = "Option::is_none")]
12877 pub api: Option<Box<Api>>,
12878 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
12879 #[serde(rename = "app_name")]
12880 #[serde(skip_serializing_if = "Option::is_none")]
12881 pub app_name: Option<String>,
12882 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
12883 #[serde(rename = "attacks")]
12884 #[serde(skip_serializing_if = "Option::is_none")]
12885 pub attacks: Option<Vec<Attack>>,
12886 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
12887 #[serde(rename = "authorizations")]
12888 #[serde(skip_serializing_if = "Option::is_none")]
12889 pub authorizations: Option<Vec<Authorization>>,
12890 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
12891 #[serde(rename = "category_name")]
12892 #[serde(skip_serializing_if = "Option::is_none")]
12893 pub category_name: Option<String>,
12894 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
12895 #[serde(rename = "category_uid")]
12896 #[serde(skip_serializing_if = "Option::is_none")]
12897 pub category_uid: Option<i64>,
12898 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>NTP Activity</code>.\n\noptional"]
12899 #[serde(rename = "class_name")]
12900 #[serde(skip_serializing_if = "Option::is_none")]
12901 pub class_name: Option<String>,
12902 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
12903 #[serde(rename = "class_uid")]
12904 #[serde(skip_serializing_if = "Option::is_none")]
12905 pub class_uid: Option<i64>,
12906 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
12907 #[serde(rename = "cloud")]
12908 #[serde(skip_serializing_if = "Option::is_none")]
12909 pub cloud: Option<Box<Cloud>>,
12910 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12911 #[serde(rename = "confidence")]
12912 #[serde(skip_serializing_if = "Option::is_none")]
12913 pub confidence: Option<String>,
12914 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
12915 #[serde(rename = "confidence_id")]
12916 #[serde(skip_serializing_if = "Option::is_none")]
12917 pub confidence_id: Option<i64>,
12918 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
12919 #[serde(rename = "confidence_score")]
12920 #[serde(skip_serializing_if = "Option::is_none")]
12921 pub confidence_score: Option<i64>,
12922 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
12923 #[serde(rename = "connection_info")]
12924 #[serde(skip_serializing_if = "Option::is_none")]
12925 pub connection_info: Option<Box<NetworkConnectionInfo>>,
12926 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
12927 #[serde(rename = "count")]
12928 #[serde(skip_serializing_if = "Option::is_none")]
12929 pub count: Option<i64>,
12930 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
12931 #[serde(rename = "cumulative_traffic")]
12932 #[serde(skip_serializing_if = "Option::is_none")]
12933 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
12934 #[doc = "Root Delay\n\nThe total round-trip delay to the reference clock in milliseconds.\n\nrecommended"]
12935 #[serde(rename = "delay")]
12936 #[serde(skip_serializing_if = "Option::is_none")]
12937 pub delay: Option<i64>,
12938 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
12939 #[serde(rename = "device")]
12940 #[serde(skip_serializing_if = "Option::is_none")]
12941 pub device: Option<Box<Device>>,
12942 #[doc = "Root Dispersion\n\nThe dispersion in the NTP protocol is the estimated time error or uncertainty relative to the reference clock in milliseconds.\n\nrecommended"]
12943 #[serde(rename = "dispersion")]
12944 #[serde(skip_serializing_if = "Option::is_none")]
12945 pub dispersion: Option<i64>,
12946 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
12947 #[serde(rename = "disposition")]
12948 #[serde(skip_serializing_if = "Option::is_none")]
12949 pub disposition: Option<String>,
12950 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
12951 #[serde(rename = "disposition_id")]
12952 #[serde(skip_serializing_if = "Option::is_none")]
12953 pub disposition_id: Option<i64>,
12954 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
12955 #[serde(rename = "dst_endpoint")]
12956 #[serde(skip_serializing_if = "Option::is_none")]
12957 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
12958 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
12959 #[serde(rename = "duration")]
12960 #[serde(skip_serializing_if = "Option::is_none")]
12961 pub duration: Option<i64>,
12962 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12963 #[serde(rename = "end_time")]
12964 #[serde(skip_serializing_if = "Option::is_none")]
12965 pub end_time: Option<i64>,
12966 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
12967 #[serde(rename = "end_time_dt")]
12968 #[serde(skip_serializing_if = "Option::is_none")]
12969 pub end_time_dt: Option<String>,
12970 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
12971 #[serde(rename = "enrichments")]
12972 #[serde(skip_serializing_if = "Option::is_none")]
12973 pub enrichments: Option<Vec<Enrichment>>,
12974 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
12975 #[serde(rename = "firewall_rule")]
12976 #[serde(skip_serializing_if = "Option::is_none")]
12977 pub firewall_rule: Option<Box<FirewallRule>>,
12978 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
12979 #[serde(rename = "is_alert")]
12980 #[serde(skip_serializing_if = "Option::is_none")]
12981 pub is_alert: Option<bool>,
12982 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
12983 #[serde(rename = "ja4_fingerprint_list")]
12984 #[serde(skip_serializing_if = "Option::is_none")]
12985 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
12986 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
12987 #[serde(rename = "load_balancer")]
12988 #[serde(skip_serializing_if = "Option::is_none")]
12989 pub load_balancer: Option<Box<LoadBalancer>>,
12990 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
12991 #[serde(rename = "malware")]
12992 #[serde(skip_serializing_if = "Option::is_none")]
12993 pub malware: Option<Vec<Malware>>,
12994 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
12995 #[serde(rename = "malware_scan_info")]
12996 #[serde(skip_serializing_if = "Option::is_none")]
12997 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
12998 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
12999 #[serde(rename = "message")]
13000 #[serde(skip_serializing_if = "Option::is_none")]
13001 pub message: Option<String>,
13002 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
13003 #[serde(rename = "metadata")]
13004 #[serde(skip_serializing_if = "Option::is_none")]
13005 pub metadata: Option<Box<Metadata>>,
13006 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
13007 #[serde(rename = "observables")]
13008 #[serde(skip_serializing_if = "Option::is_none")]
13009 pub observables: Option<Vec<Observable>>,
13010 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
13011 #[serde(rename = "observation_point")]
13012 #[serde(skip_serializing_if = "Option::is_none")]
13013 pub observation_point: Option<String>,
13014 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
13015 #[serde(rename = "observation_point_id")]
13016 #[serde(skip_serializing_if = "Option::is_none")]
13017 pub observation_point_id: Option<i64>,
13018 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
13019 #[serde(rename = "osint")]
13020 #[serde(skip_serializing_if = "Option::is_none")]
13021 pub osint: Option<Vec<Osint>>,
13022 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
13023 #[serde(rename = "policy")]
13024 #[serde(skip_serializing_if = "Option::is_none")]
13025 pub policy: Option<Box<Policy>>,
13026 #[doc = "Precision\n\nThe NTP precision quantifies a clock's accuracy and stability in log2 seconds, as defined in RFC-5905.\n\nrecommended"]
13027 #[serde(rename = "precision")]
13028 #[serde(skip_serializing_if = "Option::is_none")]
13029 pub precision: Option<i64>,
13030 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
13031 #[serde(rename = "proxy")]
13032 #[serde(skip_serializing_if = "Option::is_none")]
13033 pub proxy: Option<Box<NetworkProxy>>,
13034 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
13035 #[serde(rename = "proxy_connection_info")]
13036 #[serde(skip_serializing_if = "Option::is_none")]
13037 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
13038 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
13039 #[serde(rename = "proxy_endpoint")]
13040 #[serde(skip_serializing_if = "Option::is_none")]
13041 pub proxy_endpoint: Option<Box<NetworkProxy>>,
13042 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
13043 #[serde(rename = "proxy_http_request")]
13044 #[serde(skip_serializing_if = "Option::is_none")]
13045 pub proxy_http_request: Option<Box<HttpRequest>>,
13046 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
13047 #[serde(rename = "proxy_http_response")]
13048 #[serde(skip_serializing_if = "Option::is_none")]
13049 pub proxy_http_response: Option<Box<HttpResponse>>,
13050 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
13051 #[serde(rename = "proxy_tls")]
13052 #[serde(skip_serializing_if = "Option::is_none")]
13053 pub proxy_tls: Option<Box<Tls>>,
13054 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
13055 #[serde(rename = "proxy_traffic")]
13056 #[serde(skip_serializing_if = "Option::is_none")]
13057 pub proxy_traffic: Option<Box<NetworkTraffic>>,
13058 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
13059 #[serde(rename = "raw_data")]
13060 #[serde(skip_serializing_if = "Option::is_none")]
13061 pub raw_data: Option<String>,
13062 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
13063 #[serde(rename = "raw_data_hash")]
13064 #[serde(skip_serializing_if = "Option::is_none")]
13065 pub raw_data_hash: Option<Box<Fingerprint>>,
13066 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
13067 #[serde(rename = "raw_data_size")]
13068 #[serde(skip_serializing_if = "Option::is_none")]
13069 pub raw_data_size: Option<i64>,
13070 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
13071 #[serde(rename = "risk_details")]
13072 #[serde(skip_serializing_if = "Option::is_none")]
13073 pub risk_details: Option<String>,
13074 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
13075 #[serde(rename = "risk_level")]
13076 #[serde(skip_serializing_if = "Option::is_none")]
13077 pub risk_level: Option<String>,
13078 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
13079 #[serde(rename = "risk_level_id")]
13080 #[serde(skip_serializing_if = "Option::is_none")]
13081 pub risk_level_id: Option<i64>,
13082 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
13083 #[serde(rename = "risk_score")]
13084 #[serde(skip_serializing_if = "Option::is_none")]
13085 pub risk_score: Option<i64>,
13086 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
13087 #[serde(rename = "severity")]
13088 #[serde(skip_serializing_if = "Option::is_none")]
13089 pub severity: Option<String>,
13090 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
13091 #[serde(rename = "severity_id")]
13092 #[serde(skip_serializing_if = "Option::is_none")]
13093 pub severity_id: Option<i64>,
13094 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
13095 #[serde(rename = "src_endpoint")]
13096 #[serde(skip_serializing_if = "Option::is_none")]
13097 pub src_endpoint: Option<Box<NetworkEndpoint>>,
13098 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13099 #[serde(rename = "start_time")]
13100 #[serde(skip_serializing_if = "Option::is_none")]
13101 pub start_time: Option<i64>,
13102 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13103 #[serde(rename = "start_time_dt")]
13104 #[serde(skip_serializing_if = "Option::is_none")]
13105 pub start_time_dt: Option<String>,
13106 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
13107 #[serde(rename = "status")]
13108 #[serde(skip_serializing_if = "Option::is_none")]
13109 pub status: Option<String>,
13110 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
13111 #[serde(rename = "status_code")]
13112 #[serde(skip_serializing_if = "Option::is_none")]
13113 pub status_code: Option<String>,
13114 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
13115 #[serde(rename = "status_detail")]
13116 #[serde(skip_serializing_if = "Option::is_none")]
13117 pub status_detail: Option<String>,
13118 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
13119 #[serde(rename = "status_id")]
13120 #[serde(skip_serializing_if = "Option::is_none")]
13121 pub status_id: Option<i64>,
13122 #[doc = "Stratum\n\nThe stratum level of the NTP server's time source, normalized to the caption of the stratum_id value.\n\nrecommended"]
13123 #[serde(rename = "stratum")]
13124 #[serde(skip_serializing_if = "Option::is_none")]
13125 pub stratum: Option<String>,
13126 #[doc = "Stratum ID\n\nThe normalized identifier of the stratum level, as defined in <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc5905.html'>RFC-5905</a>.\n\nrecommended"]
13127 #[serde(rename = "stratum_id")]
13128 #[serde(skip_serializing_if = "Option::is_none")]
13129 pub stratum_id: Option<i64>,
13130 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
13131 #[serde(rename = "time")]
13132 #[serde(skip_serializing_if = "Option::is_none")]
13133 pub time: Option<i64>,
13134 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
13135 #[serde(rename = "time_dt")]
13136 #[serde(skip_serializing_if = "Option::is_none")]
13137 pub time_dt: Option<String>,
13138 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
13139 #[serde(rename = "timezone_offset")]
13140 #[serde(skip_serializing_if = "Option::is_none")]
13141 pub timezone_offset: Option<i64>,
13142 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
13143 #[serde(rename = "tls")]
13144 #[serde(skip_serializing_if = "Option::is_none")]
13145 pub tls: Option<Box<Tls>>,
13146 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
13147 #[serde(rename = "traffic")]
13148 #[serde(skip_serializing_if = "Option::is_none")]
13149 pub traffic: Option<Box<NetworkTraffic>>,
13150 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
13151 #[serde(rename = "type_name")]
13152 #[serde(skip_serializing_if = "Option::is_none")]
13153 pub type_name: Option<String>,
13154 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
13155 #[serde(rename = "type_uid")]
13156 #[serde(skip_serializing_if = "Option::is_none")]
13157 pub type_uid: Option<i64>,
13158 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
13159 #[serde(rename = "unmapped")]
13160 #[serde(skip_serializing_if = "Option::is_none")]
13161 pub unmapped: Option<serde_json::Value>,
13162 #[doc = "Version\n\nThe version number of the NTP protocol.\n\nrequired"]
13163 #[serde(rename = "version")]
13164 #[serde(skip_serializing_if = "Option::is_none")]
13165 pub version: Option<String>,
13166}
13167#[doc = "OSINT Inventory Info\n\nOSINT Inventory Info events report open source intelligence or threat intelligence inventory data that is either logged or proactively collected. For example, when collecting OSINT information from Threat Intelligence Platforms (TIPs) or Extended Detection and Response (XDR) platforms, or collecting data from OSINT or other generic threat intelligence and enrichment feeds such as APIs and datastores.\n\n[UID:5021] Category: discovery | Name: osint_inventory_info"]
13168#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
13169#[serde(default)]
13170#[non_exhaustive]
13171pub struct OsintInventoryInfo {
13172 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
13173 #[serde(rename = "action")]
13174 #[serde(skip_serializing_if = "Option::is_none")]
13175 pub action: Option<String>,
13176 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
13177 #[serde(rename = "action_id")]
13178 #[serde(skip_serializing_if = "Option::is_none")]
13179 pub action_id: Option<i64>,
13180 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
13181 #[serde(rename = "activity_id")]
13182 #[serde(skip_serializing_if = "Option::is_none")]
13183 pub activity_id: Option<i64>,
13184 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
13185 #[serde(rename = "activity_name")]
13186 #[serde(skip_serializing_if = "Option::is_none")]
13187 pub activity_name: Option<String>,
13188 #[doc = "Actor\n\nThe actor describes the process that was the source of the inventory activity. In the case of OSINT inventory data, that could be a particular process or script that is run to scrape the OSINT or threat intelligence data. For example, it could be a Python process that runs to pull data from a MISP or Shodan API.\n\noptional"]
13189 #[serde(rename = "actor")]
13190 #[serde(skip_serializing_if = "Option::is_none")]
13191 pub actor: Option<Box<Actor>>,
13192 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
13193 #[serde(rename = "api")]
13194 #[serde(skip_serializing_if = "Option::is_none")]
13195 pub api: Option<Box<Api>>,
13196 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
13197 #[serde(rename = "attacks")]
13198 #[serde(skip_serializing_if = "Option::is_none")]
13199 pub attacks: Option<Vec<Attack>>,
13200 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
13201 #[serde(rename = "authorizations")]
13202 #[serde(skip_serializing_if = "Option::is_none")]
13203 pub authorizations: Option<Vec<Authorization>>,
13204 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
13205 #[serde(rename = "category_name")]
13206 #[serde(skip_serializing_if = "Option::is_none")]
13207 pub category_name: Option<String>,
13208 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
13209 #[serde(rename = "category_uid")]
13210 #[serde(skip_serializing_if = "Option::is_none")]
13211 pub category_uid: Option<i64>,
13212 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>OSINT Inventory Info</code>.\n\noptional"]
13213 #[serde(rename = "class_name")]
13214 #[serde(skip_serializing_if = "Option::is_none")]
13215 pub class_name: Option<String>,
13216 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
13217 #[serde(rename = "class_uid")]
13218 #[serde(skip_serializing_if = "Option::is_none")]
13219 pub class_uid: Option<i64>,
13220 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
13221 #[serde(rename = "cloud")]
13222 #[serde(skip_serializing_if = "Option::is_none")]
13223 pub cloud: Option<Box<Cloud>>,
13224 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13225 #[serde(rename = "confidence")]
13226 #[serde(skip_serializing_if = "Option::is_none")]
13227 pub confidence: Option<String>,
13228 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
13229 #[serde(rename = "confidence_id")]
13230 #[serde(skip_serializing_if = "Option::is_none")]
13231 pub confidence_id: Option<i64>,
13232 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
13233 #[serde(rename = "confidence_score")]
13234 #[serde(skip_serializing_if = "Option::is_none")]
13235 pub confidence_score: Option<i64>,
13236 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
13237 #[serde(rename = "count")]
13238 #[serde(skip_serializing_if = "Option::is_none")]
13239 pub count: Option<i64>,
13240 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
13241 #[serde(rename = "device")]
13242 #[serde(skip_serializing_if = "Option::is_none")]
13243 pub device: Option<Box<Device>>,
13244 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13245 #[serde(rename = "disposition")]
13246 #[serde(skip_serializing_if = "Option::is_none")]
13247 pub disposition: Option<String>,
13248 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
13249 #[serde(rename = "disposition_id")]
13250 #[serde(skip_serializing_if = "Option::is_none")]
13251 pub disposition_id: Option<i64>,
13252 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
13253 #[serde(rename = "duration")]
13254 #[serde(skip_serializing_if = "Option::is_none")]
13255 pub duration: Option<i64>,
13256 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13257 #[serde(rename = "end_time")]
13258 #[serde(skip_serializing_if = "Option::is_none")]
13259 pub end_time: Option<i64>,
13260 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13261 #[serde(rename = "end_time_dt")]
13262 #[serde(skip_serializing_if = "Option::is_none")]
13263 pub end_time_dt: Option<String>,
13264 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
13265 #[serde(rename = "enrichments")]
13266 #[serde(skip_serializing_if = "Option::is_none")]
13267 pub enrichments: Option<Vec<Enrichment>>,
13268 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
13269 #[serde(rename = "firewall_rule")]
13270 #[serde(skip_serializing_if = "Option::is_none")]
13271 pub firewall_rule: Option<Box<FirewallRule>>,
13272 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
13273 #[serde(rename = "is_alert")]
13274 #[serde(skip_serializing_if = "Option::is_none")]
13275 pub is_alert: Option<bool>,
13276 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
13277 #[serde(rename = "malware")]
13278 #[serde(skip_serializing_if = "Option::is_none")]
13279 pub malware: Option<Vec<Malware>>,
13280 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
13281 #[serde(rename = "malware_scan_info")]
13282 #[serde(skip_serializing_if = "Option::is_none")]
13283 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
13284 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
13285 #[serde(rename = "message")]
13286 #[serde(skip_serializing_if = "Option::is_none")]
13287 pub message: Option<String>,
13288 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
13289 #[serde(rename = "metadata")]
13290 #[serde(skip_serializing_if = "Option::is_none")]
13291 pub metadata: Option<Box<Metadata>>,
13292 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
13293 #[serde(rename = "observables")]
13294 #[serde(skip_serializing_if = "Option::is_none")]
13295 pub observables: Option<Vec<Observable>>,
13296 #[doc = "OSINT\n\nThe OSINT that is being discovered by an inventory process.\n\nrequired"]
13297 #[serde(rename = "osint")]
13298 #[serde(skip_serializing_if = "Option::is_none")]
13299 pub osint: Option<Vec<Osint>>,
13300 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
13301 #[serde(rename = "policy")]
13302 #[serde(skip_serializing_if = "Option::is_none")]
13303 pub policy: Option<Box<Policy>>,
13304 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
13305 #[serde(rename = "raw_data")]
13306 #[serde(skip_serializing_if = "Option::is_none")]
13307 pub raw_data: Option<String>,
13308 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
13309 #[serde(rename = "raw_data_hash")]
13310 #[serde(skip_serializing_if = "Option::is_none")]
13311 pub raw_data_hash: Option<Box<Fingerprint>>,
13312 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
13313 #[serde(rename = "raw_data_size")]
13314 #[serde(skip_serializing_if = "Option::is_none")]
13315 pub raw_data_size: Option<i64>,
13316 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
13317 #[serde(rename = "risk_details")]
13318 #[serde(skip_serializing_if = "Option::is_none")]
13319 pub risk_details: Option<String>,
13320 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
13321 #[serde(rename = "risk_level")]
13322 #[serde(skip_serializing_if = "Option::is_none")]
13323 pub risk_level: Option<String>,
13324 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
13325 #[serde(rename = "risk_level_id")]
13326 #[serde(skip_serializing_if = "Option::is_none")]
13327 pub risk_level_id: Option<i64>,
13328 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
13329 #[serde(rename = "risk_score")]
13330 #[serde(skip_serializing_if = "Option::is_none")]
13331 pub risk_score: Option<i64>,
13332 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
13333 #[serde(rename = "severity")]
13334 #[serde(skip_serializing_if = "Option::is_none")]
13335 pub severity: Option<String>,
13336 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
13337 #[serde(rename = "severity_id")]
13338 #[serde(skip_serializing_if = "Option::is_none")]
13339 pub severity_id: Option<i64>,
13340 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13341 #[serde(rename = "start_time")]
13342 #[serde(skip_serializing_if = "Option::is_none")]
13343 pub start_time: Option<i64>,
13344 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13345 #[serde(rename = "start_time_dt")]
13346 #[serde(skip_serializing_if = "Option::is_none")]
13347 pub start_time_dt: Option<String>,
13348 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
13349 #[serde(rename = "status")]
13350 #[serde(skip_serializing_if = "Option::is_none")]
13351 pub status: Option<String>,
13352 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
13353 #[serde(rename = "status_code")]
13354 #[serde(skip_serializing_if = "Option::is_none")]
13355 pub status_code: Option<String>,
13356 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
13357 #[serde(rename = "status_detail")]
13358 #[serde(skip_serializing_if = "Option::is_none")]
13359 pub status_detail: Option<String>,
13360 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
13361 #[serde(rename = "status_id")]
13362 #[serde(skip_serializing_if = "Option::is_none")]
13363 pub status_id: Option<i64>,
13364 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
13365 #[serde(rename = "time")]
13366 #[serde(skip_serializing_if = "Option::is_none")]
13367 pub time: Option<i64>,
13368 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
13369 #[serde(rename = "time_dt")]
13370 #[serde(skip_serializing_if = "Option::is_none")]
13371 pub time_dt: Option<String>,
13372 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
13373 #[serde(rename = "timezone_offset")]
13374 #[serde(skip_serializing_if = "Option::is_none")]
13375 pub timezone_offset: Option<i64>,
13376 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
13377 #[serde(rename = "type_name")]
13378 #[serde(skip_serializing_if = "Option::is_none")]
13379 pub type_name: Option<String>,
13380 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
13381 #[serde(rename = "type_uid")]
13382 #[serde(skip_serializing_if = "Option::is_none")]
13383 pub type_uid: Option<i64>,
13384 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
13385 #[serde(rename = "unmapped")]
13386 #[serde(skip_serializing_if = "Option::is_none")]
13387 pub unmapped: Option<serde_json::Value>,
13388}
13389#[doc = "Operating System Patch State\n\nOperating System Patch State reports the installation of an OS patch to a device and any associated knowledgebase articles.\n\n[UID:5004] Category: discovery | Name: patch_state\n\n**Constraints:**\n* at_least_one: `[device.os.sp_name`,`device.os.sp_ver`,`device.os.version]`\n"]
13390#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
13391#[serde(default)]
13392#[non_exhaustive]
13393pub struct PatchState {
13394 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
13395 #[serde(rename = "action")]
13396 #[serde(skip_serializing_if = "Option::is_none")]
13397 pub action: Option<String>,
13398 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
13399 #[serde(rename = "action_id")]
13400 #[serde(skip_serializing_if = "Option::is_none")]
13401 pub action_id: Option<i64>,
13402 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
13403 #[serde(rename = "activity_id")]
13404 #[serde(skip_serializing_if = "Option::is_none")]
13405 pub activity_id: Option<i64>,
13406 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
13407 #[serde(rename = "activity_name")]
13408 #[serde(skip_serializing_if = "Option::is_none")]
13409 pub activity_name: Option<String>,
13410 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
13411 #[serde(rename = "actor")]
13412 #[serde(skip_serializing_if = "Option::is_none")]
13413 pub actor: Option<Box<Actor>>,
13414 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
13415 #[serde(rename = "api")]
13416 #[serde(skip_serializing_if = "Option::is_none")]
13417 pub api: Option<Box<Api>>,
13418 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
13419 #[serde(rename = "attacks")]
13420 #[serde(skip_serializing_if = "Option::is_none")]
13421 pub attacks: Option<Vec<Attack>>,
13422 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
13423 #[serde(rename = "authorizations")]
13424 #[serde(skip_serializing_if = "Option::is_none")]
13425 pub authorizations: Option<Vec<Authorization>>,
13426 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
13427 #[serde(rename = "category_name")]
13428 #[serde(skip_serializing_if = "Option::is_none")]
13429 pub category_name: Option<String>,
13430 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
13431 #[serde(rename = "category_uid")]
13432 #[serde(skip_serializing_if = "Option::is_none")]
13433 pub category_uid: Option<i64>,
13434 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Operating System Patch State</code>.\n\noptional"]
13435 #[serde(rename = "class_name")]
13436 #[serde(skip_serializing_if = "Option::is_none")]
13437 pub class_name: Option<String>,
13438 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
13439 #[serde(rename = "class_uid")]
13440 #[serde(skip_serializing_if = "Option::is_none")]
13441 pub class_uid: Option<i64>,
13442 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
13443 #[serde(rename = "cloud")]
13444 #[serde(skip_serializing_if = "Option::is_none")]
13445 pub cloud: Option<Box<Cloud>>,
13446 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13447 #[serde(rename = "confidence")]
13448 #[serde(skip_serializing_if = "Option::is_none")]
13449 pub confidence: Option<String>,
13450 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
13451 #[serde(rename = "confidence_id")]
13452 #[serde(skip_serializing_if = "Option::is_none")]
13453 pub confidence_id: Option<i64>,
13454 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
13455 #[serde(rename = "confidence_score")]
13456 #[serde(skip_serializing_if = "Option::is_none")]
13457 pub confidence_score: Option<i64>,
13458 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
13459 #[serde(rename = "count")]
13460 #[serde(skip_serializing_if = "Option::is_none")]
13461 pub count: Option<i64>,
13462 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
13463 #[serde(rename = "device")]
13464 #[serde(skip_serializing_if = "Option::is_none")]
13465 pub device: Option<Box<Device>>,
13466 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13467 #[serde(rename = "disposition")]
13468 #[serde(skip_serializing_if = "Option::is_none")]
13469 pub disposition: Option<String>,
13470 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
13471 #[serde(rename = "disposition_id")]
13472 #[serde(skip_serializing_if = "Option::is_none")]
13473 pub disposition_id: Option<i64>,
13474 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
13475 #[serde(rename = "duration")]
13476 #[serde(skip_serializing_if = "Option::is_none")]
13477 pub duration: Option<i64>,
13478 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13479 #[serde(rename = "end_time")]
13480 #[serde(skip_serializing_if = "Option::is_none")]
13481 pub end_time: Option<i64>,
13482 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13483 #[serde(rename = "end_time_dt")]
13484 #[serde(skip_serializing_if = "Option::is_none")]
13485 pub end_time_dt: Option<String>,
13486 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
13487 #[serde(rename = "enrichments")]
13488 #[serde(skip_serializing_if = "Option::is_none")]
13489 pub enrichments: Option<Vec<Enrichment>>,
13490 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
13491 #[serde(rename = "firewall_rule")]
13492 #[serde(skip_serializing_if = "Option::is_none")]
13493 pub firewall_rule: Option<Box<FirewallRule>>,
13494 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
13495 #[serde(rename = "is_alert")]
13496 #[serde(skip_serializing_if = "Option::is_none")]
13497 pub is_alert: Option<bool>,
13498 #[doc = "Knowledgebase Articles\n\nA list of KB articles or patches related to an endpoint. A KB Article contains metadata that describes the patch or an update.\n\nrecommended"]
13499 #[serde(rename = "kb_article_list")]
13500 #[serde(skip_serializing_if = "Option::is_none")]
13501 pub kb_article_list: Option<Vec<KbArticle>>,
13502 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
13503 #[serde(rename = "malware")]
13504 #[serde(skip_serializing_if = "Option::is_none")]
13505 pub malware: Option<Vec<Malware>>,
13506 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
13507 #[serde(rename = "malware_scan_info")]
13508 #[serde(skip_serializing_if = "Option::is_none")]
13509 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
13510 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
13511 #[serde(rename = "message")]
13512 #[serde(skip_serializing_if = "Option::is_none")]
13513 pub message: Option<String>,
13514 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
13515 #[serde(rename = "metadata")]
13516 #[serde(skip_serializing_if = "Option::is_none")]
13517 pub metadata: Option<Box<Metadata>>,
13518 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
13519 #[serde(rename = "observables")]
13520 #[serde(skip_serializing_if = "Option::is_none")]
13521 pub observables: Option<Vec<Observable>>,
13522 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
13523 #[serde(rename = "osint")]
13524 #[serde(skip_serializing_if = "Option::is_none")]
13525 pub osint: Option<Vec<Osint>>,
13526 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
13527 #[serde(rename = "policy")]
13528 #[serde(skip_serializing_if = "Option::is_none")]
13529 pub policy: Option<Box<Policy>>,
13530 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
13531 #[serde(rename = "raw_data")]
13532 #[serde(skip_serializing_if = "Option::is_none")]
13533 pub raw_data: Option<String>,
13534 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
13535 #[serde(rename = "raw_data_hash")]
13536 #[serde(skip_serializing_if = "Option::is_none")]
13537 pub raw_data_hash: Option<Box<Fingerprint>>,
13538 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
13539 #[serde(rename = "raw_data_size")]
13540 #[serde(skip_serializing_if = "Option::is_none")]
13541 pub raw_data_size: Option<i64>,
13542 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
13543 #[serde(rename = "risk_details")]
13544 #[serde(skip_serializing_if = "Option::is_none")]
13545 pub risk_details: Option<String>,
13546 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
13547 #[serde(rename = "risk_level")]
13548 #[serde(skip_serializing_if = "Option::is_none")]
13549 pub risk_level: Option<String>,
13550 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
13551 #[serde(rename = "risk_level_id")]
13552 #[serde(skip_serializing_if = "Option::is_none")]
13553 pub risk_level_id: Option<i64>,
13554 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
13555 #[serde(rename = "risk_score")]
13556 #[serde(skip_serializing_if = "Option::is_none")]
13557 pub risk_score: Option<i64>,
13558 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
13559 #[serde(rename = "severity")]
13560 #[serde(skip_serializing_if = "Option::is_none")]
13561 pub severity: Option<String>,
13562 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
13563 #[serde(rename = "severity_id")]
13564 #[serde(skip_serializing_if = "Option::is_none")]
13565 pub severity_id: Option<i64>,
13566 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13567 #[serde(rename = "start_time")]
13568 #[serde(skip_serializing_if = "Option::is_none")]
13569 pub start_time: Option<i64>,
13570 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13571 #[serde(rename = "start_time_dt")]
13572 #[serde(skip_serializing_if = "Option::is_none")]
13573 pub start_time_dt: Option<String>,
13574 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
13575 #[serde(rename = "status")]
13576 #[serde(skip_serializing_if = "Option::is_none")]
13577 pub status: Option<String>,
13578 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
13579 #[serde(rename = "status_code")]
13580 #[serde(skip_serializing_if = "Option::is_none")]
13581 pub status_code: Option<String>,
13582 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
13583 #[serde(rename = "status_detail")]
13584 #[serde(skip_serializing_if = "Option::is_none")]
13585 pub status_detail: Option<String>,
13586 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
13587 #[serde(rename = "status_id")]
13588 #[serde(skip_serializing_if = "Option::is_none")]
13589 pub status_id: Option<i64>,
13590 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
13591 #[serde(rename = "time")]
13592 #[serde(skip_serializing_if = "Option::is_none")]
13593 pub time: Option<i64>,
13594 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
13595 #[serde(rename = "time_dt")]
13596 #[serde(skip_serializing_if = "Option::is_none")]
13597 pub time_dt: Option<String>,
13598 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
13599 #[serde(rename = "timezone_offset")]
13600 #[serde(skip_serializing_if = "Option::is_none")]
13601 pub timezone_offset: Option<i64>,
13602 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
13603 #[serde(rename = "type_name")]
13604 #[serde(skip_serializing_if = "Option::is_none")]
13605 pub type_name: Option<String>,
13606 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
13607 #[serde(rename = "type_uid")]
13608 #[serde(skip_serializing_if = "Option::is_none")]
13609 pub type_uid: Option<i64>,
13610 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
13611 #[serde(rename = "unmapped")]
13612 #[serde(skip_serializing_if = "Option::is_none")]
13613 pub unmapped: Option<serde_json::Value>,
13614}
13615#[doc = "Peripheral Activity\n\nPeripheral Activity events log a system's interactions with external, connectable, and detachable hardware. These events provide visibility into the external devices connected to and used by a system.\n\n[UID:1010] Category: system | Name: peripheral_activity"]
13616#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
13617#[serde(default)]
13618#[non_exhaustive]
13619pub struct PeripheralActivity {
13620 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
13621 #[serde(rename = "action")]
13622 #[serde(skip_serializing_if = "Option::is_none")]
13623 pub action: Option<String>,
13624 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
13625 #[serde(rename = "action_id")]
13626 #[serde(skip_serializing_if = "Option::is_none")]
13627 pub action_id: Option<i64>,
13628 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
13629 #[serde(rename = "activity_id")]
13630 #[serde(skip_serializing_if = "Option::is_none")]
13631 pub activity_id: Option<i64>,
13632 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
13633 #[serde(rename = "activity_name")]
13634 #[serde(skip_serializing_if = "Option::is_none")]
13635 pub activity_name: Option<String>,
13636 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
13637 #[serde(rename = "actor")]
13638 #[serde(skip_serializing_if = "Option::is_none")]
13639 pub actor: Option<Box<Actor>>,
13640 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
13641 #[serde(rename = "api")]
13642 #[serde(skip_serializing_if = "Option::is_none")]
13643 pub api: Option<Box<Api>>,
13644 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
13645 #[serde(rename = "attacks")]
13646 #[serde(skip_serializing_if = "Option::is_none")]
13647 pub attacks: Option<Vec<Attack>>,
13648 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
13649 #[serde(rename = "authorizations")]
13650 #[serde(skip_serializing_if = "Option::is_none")]
13651 pub authorizations: Option<Vec<Authorization>>,
13652 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
13653 #[serde(rename = "category_name")]
13654 #[serde(skip_serializing_if = "Option::is_none")]
13655 pub category_name: Option<String>,
13656 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
13657 #[serde(rename = "category_uid")]
13658 #[serde(skip_serializing_if = "Option::is_none")]
13659 pub category_uid: Option<i64>,
13660 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Peripheral Activity</code>.\n\noptional"]
13661 #[serde(rename = "class_name")]
13662 #[serde(skip_serializing_if = "Option::is_none")]
13663 pub class_name: Option<String>,
13664 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
13665 #[serde(rename = "class_uid")]
13666 #[serde(skip_serializing_if = "Option::is_none")]
13667 pub class_uid: Option<i64>,
13668 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
13669 #[serde(rename = "cloud")]
13670 #[serde(skip_serializing_if = "Option::is_none")]
13671 pub cloud: Option<Box<Cloud>>,
13672 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13673 #[serde(rename = "confidence")]
13674 #[serde(skip_serializing_if = "Option::is_none")]
13675 pub confidence: Option<String>,
13676 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
13677 #[serde(rename = "confidence_id")]
13678 #[serde(skip_serializing_if = "Option::is_none")]
13679 pub confidence_id: Option<i64>,
13680 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
13681 #[serde(rename = "confidence_score")]
13682 #[serde(skip_serializing_if = "Option::is_none")]
13683 pub confidence_score: Option<i64>,
13684 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
13685 #[serde(rename = "count")]
13686 #[serde(skip_serializing_if = "Option::is_none")]
13687 pub count: Option<i64>,
13688 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
13689 #[serde(rename = "device")]
13690 #[serde(skip_serializing_if = "Option::is_none")]
13691 pub device: Option<Box<Device>>,
13692 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13693 #[serde(rename = "disposition")]
13694 #[serde(skip_serializing_if = "Option::is_none")]
13695 pub disposition: Option<String>,
13696 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
13697 #[serde(rename = "disposition_id")]
13698 #[serde(skip_serializing_if = "Option::is_none")]
13699 pub disposition_id: Option<i64>,
13700 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
13701 #[serde(rename = "duration")]
13702 #[serde(skip_serializing_if = "Option::is_none")]
13703 pub duration: Option<i64>,
13704 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13705 #[serde(rename = "end_time")]
13706 #[serde(skip_serializing_if = "Option::is_none")]
13707 pub end_time: Option<i64>,
13708 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13709 #[serde(rename = "end_time_dt")]
13710 #[serde(skip_serializing_if = "Option::is_none")]
13711 pub end_time_dt: Option<String>,
13712 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
13713 #[serde(rename = "enrichments")]
13714 #[serde(skip_serializing_if = "Option::is_none")]
13715 pub enrichments: Option<Vec<Enrichment>>,
13716 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
13717 #[serde(rename = "firewall_rule")]
13718 #[serde(skip_serializing_if = "Option::is_none")]
13719 pub firewall_rule: Option<Box<FirewallRule>>,
13720 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
13721 #[serde(rename = "is_alert")]
13722 #[serde(skip_serializing_if = "Option::is_none")]
13723 pub is_alert: Option<bool>,
13724 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
13725 #[serde(rename = "malware")]
13726 #[serde(skip_serializing_if = "Option::is_none")]
13727 pub malware: Option<Vec<Malware>>,
13728 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
13729 #[serde(rename = "malware_scan_info")]
13730 #[serde(skip_serializing_if = "Option::is_none")]
13731 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
13732 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
13733 #[serde(rename = "message")]
13734 #[serde(skip_serializing_if = "Option::is_none")]
13735 pub message: Option<String>,
13736 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
13737 #[serde(rename = "metadata")]
13738 #[serde(skip_serializing_if = "Option::is_none")]
13739 pub metadata: Option<Box<Metadata>>,
13740 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
13741 #[serde(rename = "observables")]
13742 #[serde(skip_serializing_if = "Option::is_none")]
13743 pub observables: Option<Vec<Observable>>,
13744 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
13745 #[serde(rename = "osint")]
13746 #[serde(skip_serializing_if = "Option::is_none")]
13747 pub osint: Option<Vec<Osint>>,
13748 #[doc = "Peripheral Device\n\nThe peripheral device that is the subject of the activity.\n\nrequired"]
13749 #[serde(rename = "peripheral_device")]
13750 #[serde(skip_serializing_if = "Option::is_none")]
13751 pub peripheral_device: Option<Box<PeripheralDevice>>,
13752 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
13753 #[serde(rename = "policy")]
13754 #[serde(skip_serializing_if = "Option::is_none")]
13755 pub policy: Option<Box<Policy>>,
13756 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
13757 #[serde(rename = "raw_data")]
13758 #[serde(skip_serializing_if = "Option::is_none")]
13759 pub raw_data: Option<String>,
13760 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
13761 #[serde(rename = "raw_data_hash")]
13762 #[serde(skip_serializing_if = "Option::is_none")]
13763 pub raw_data_hash: Option<Box<Fingerprint>>,
13764 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
13765 #[serde(rename = "raw_data_size")]
13766 #[serde(skip_serializing_if = "Option::is_none")]
13767 pub raw_data_size: Option<i64>,
13768 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
13769 #[serde(rename = "risk_details")]
13770 #[serde(skip_serializing_if = "Option::is_none")]
13771 pub risk_details: Option<String>,
13772 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
13773 #[serde(rename = "risk_level")]
13774 #[serde(skip_serializing_if = "Option::is_none")]
13775 pub risk_level: Option<String>,
13776 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
13777 #[serde(rename = "risk_level_id")]
13778 #[serde(skip_serializing_if = "Option::is_none")]
13779 pub risk_level_id: Option<i64>,
13780 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
13781 #[serde(rename = "risk_score")]
13782 #[serde(skip_serializing_if = "Option::is_none")]
13783 pub risk_score: Option<i64>,
13784 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
13785 #[serde(rename = "severity")]
13786 #[serde(skip_serializing_if = "Option::is_none")]
13787 pub severity: Option<String>,
13788 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
13789 #[serde(rename = "severity_id")]
13790 #[serde(skip_serializing_if = "Option::is_none")]
13791 pub severity_id: Option<i64>,
13792 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13793 #[serde(rename = "start_time")]
13794 #[serde(skip_serializing_if = "Option::is_none")]
13795 pub start_time: Option<i64>,
13796 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
13797 #[serde(rename = "start_time_dt")]
13798 #[serde(skip_serializing_if = "Option::is_none")]
13799 pub start_time_dt: Option<String>,
13800 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
13801 #[serde(rename = "status")]
13802 #[serde(skip_serializing_if = "Option::is_none")]
13803 pub status: Option<String>,
13804 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
13805 #[serde(rename = "status_code")]
13806 #[serde(skip_serializing_if = "Option::is_none")]
13807 pub status_code: Option<String>,
13808 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
13809 #[serde(rename = "status_detail")]
13810 #[serde(skip_serializing_if = "Option::is_none")]
13811 pub status_detail: Option<String>,
13812 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
13813 #[serde(rename = "status_id")]
13814 #[serde(skip_serializing_if = "Option::is_none")]
13815 pub status_id: Option<i64>,
13816 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
13817 #[serde(rename = "time")]
13818 #[serde(skip_serializing_if = "Option::is_none")]
13819 pub time: Option<i64>,
13820 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
13821 #[serde(rename = "time_dt")]
13822 #[serde(skip_serializing_if = "Option::is_none")]
13823 pub time_dt: Option<String>,
13824 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
13825 #[serde(rename = "timezone_offset")]
13826 #[serde(skip_serializing_if = "Option::is_none")]
13827 pub timezone_offset: Option<i64>,
13828 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
13829 #[serde(rename = "type_name")]
13830 #[serde(skip_serializing_if = "Option::is_none")]
13831 pub type_name: Option<String>,
13832 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
13833 #[serde(rename = "type_uid")]
13834 #[serde(skip_serializing_if = "Option::is_none")]
13835 pub type_uid: Option<i64>,
13836 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
13837 #[serde(rename = "unmapped")]
13838 #[serde(skip_serializing_if = "Option::is_none")]
13839 pub unmapped: Option<serde_json::Value>,
13840}
13841#[doc = "Peripheral Device Query\n\nPeripheral Device Query events report information about peripheral devices.\n\n[UID:5014] Category: discovery | Name: peripheral_device_query"]
13842#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
13843#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
13844#[serde(default)]
13845#[non_exhaustive]
13846pub struct PeripheralDeviceQuery {
13847 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
13848 #[serde(rename = "action")]
13849 #[serde(skip_serializing_if = "Option::is_none")]
13850 pub action: Option<String>,
13851 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
13852 #[serde(rename = "action_id")]
13853 #[serde(skip_serializing_if = "Option::is_none")]
13854 pub action_id: Option<i64>,
13855 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
13856 #[serde(rename = "activity_id")]
13857 #[serde(skip_serializing_if = "Option::is_none")]
13858 pub activity_id: Option<i64>,
13859 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
13860 #[serde(rename = "activity_name")]
13861 #[serde(skip_serializing_if = "Option::is_none")]
13862 pub activity_name: Option<String>,
13863 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
13864 #[serde(rename = "actor")]
13865 #[serde(skip_serializing_if = "Option::is_none")]
13866 pub actor: Option<Box<Actor>>,
13867 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
13868 #[serde(rename = "api")]
13869 #[serde(skip_serializing_if = "Option::is_none")]
13870 pub api: Option<Box<Api>>,
13871 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
13872 #[serde(rename = "attacks")]
13873 #[serde(skip_serializing_if = "Option::is_none")]
13874 pub attacks: Option<Vec<Attack>>,
13875 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
13876 #[serde(rename = "authorizations")]
13877 #[serde(skip_serializing_if = "Option::is_none")]
13878 pub authorizations: Option<Vec<Authorization>>,
13879 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
13880 #[serde(rename = "category_name")]
13881 #[serde(skip_serializing_if = "Option::is_none")]
13882 pub category_name: Option<String>,
13883 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
13884 #[serde(rename = "category_uid")]
13885 #[serde(skip_serializing_if = "Option::is_none")]
13886 pub category_uid: Option<i64>,
13887 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Peripheral Device Query</code>.\n\noptional"]
13888 #[serde(rename = "class_name")]
13889 #[serde(skip_serializing_if = "Option::is_none")]
13890 pub class_name: Option<String>,
13891 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
13892 #[serde(rename = "class_uid")]
13893 #[serde(skip_serializing_if = "Option::is_none")]
13894 pub class_uid: Option<i64>,
13895 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
13896 #[serde(rename = "cloud")]
13897 #[serde(skip_serializing_if = "Option::is_none")]
13898 pub cloud: Option<Box<Cloud>>,
13899 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13900 #[serde(rename = "confidence")]
13901 #[serde(skip_serializing_if = "Option::is_none")]
13902 pub confidence: Option<String>,
13903 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
13904 #[serde(rename = "confidence_id")]
13905 #[serde(skip_serializing_if = "Option::is_none")]
13906 pub confidence_id: Option<i64>,
13907 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
13908 #[serde(rename = "confidence_score")]
13909 #[serde(skip_serializing_if = "Option::is_none")]
13910 pub confidence_score: Option<i64>,
13911 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
13912 #[serde(rename = "count")]
13913 #[serde(skip_serializing_if = "Option::is_none")]
13914 pub count: Option<i64>,
13915 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
13916 #[serde(rename = "device")]
13917 #[serde(skip_serializing_if = "Option::is_none")]
13918 pub device: Option<Box<Device>>,
13919 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
13920 #[serde(rename = "disposition")]
13921 #[serde(skip_serializing_if = "Option::is_none")]
13922 pub disposition: Option<String>,
13923 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
13924 #[serde(rename = "disposition_id")]
13925 #[serde(skip_serializing_if = "Option::is_none")]
13926 pub disposition_id: Option<i64>,
13927 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
13928 #[serde(rename = "duration")]
13929 #[serde(skip_serializing_if = "Option::is_none")]
13930 pub duration: Option<i64>,
13931 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13932 #[serde(rename = "end_time")]
13933 #[serde(skip_serializing_if = "Option::is_none")]
13934 pub end_time: Option<i64>,
13935 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
13936 #[serde(rename = "end_time_dt")]
13937 #[serde(skip_serializing_if = "Option::is_none")]
13938 pub end_time_dt: Option<String>,
13939 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
13940 #[serde(rename = "enrichments")]
13941 #[serde(skip_serializing_if = "Option::is_none")]
13942 pub enrichments: Option<Vec<Enrichment>>,
13943 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
13944 #[serde(rename = "firewall_rule")]
13945 #[serde(skip_serializing_if = "Option::is_none")]
13946 pub firewall_rule: Option<Box<FirewallRule>>,
13947 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
13948 #[serde(rename = "is_alert")]
13949 #[serde(skip_serializing_if = "Option::is_none")]
13950 pub is_alert: Option<bool>,
13951 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
13952 #[serde(rename = "malware")]
13953 #[serde(skip_serializing_if = "Option::is_none")]
13954 pub malware: Option<Vec<Malware>>,
13955 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
13956 #[serde(rename = "malware_scan_info")]
13957 #[serde(skip_serializing_if = "Option::is_none")]
13958 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
13959 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
13960 #[serde(rename = "message")]
13961 #[serde(skip_serializing_if = "Option::is_none")]
13962 pub message: Option<String>,
13963 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
13964 #[serde(rename = "metadata")]
13965 #[serde(skip_serializing_if = "Option::is_none")]
13966 pub metadata: Option<Box<Metadata>>,
13967 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
13968 #[serde(rename = "observables")]
13969 #[serde(skip_serializing_if = "Option::is_none")]
13970 pub observables: Option<Vec<Observable>>,
13971 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
13972 #[serde(rename = "osint")]
13973 #[serde(skip_serializing_if = "Option::is_none")]
13974 pub osint: Option<Vec<Osint>>,
13975 #[doc = "Peripheral Device\n\nThe peripheral device that triggered the event.\n\nrequired"]
13976 #[serde(rename = "peripheral_device")]
13977 #[serde(skip_serializing_if = "Option::is_none")]
13978 pub peripheral_device: Option<Box<PeripheralDevice>>,
13979 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
13980 #[serde(rename = "policy")]
13981 #[serde(skip_serializing_if = "Option::is_none")]
13982 pub policy: Option<Box<Policy>>,
13983 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
13984 #[serde(rename = "query_info")]
13985 #[serde(skip_serializing_if = "Option::is_none")]
13986 pub query_info: Option<Box<QueryInfo>>,
13987 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
13988 #[serde(rename = "query_result")]
13989 #[serde(skip_serializing_if = "Option::is_none")]
13990 pub query_result: Option<String>,
13991 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
13992 #[serde(rename = "query_result_id")]
13993 #[serde(skip_serializing_if = "Option::is_none")]
13994 pub query_result_id: Option<i64>,
13995 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
13996 #[serde(rename = "raw_data")]
13997 #[serde(skip_serializing_if = "Option::is_none")]
13998 pub raw_data: Option<String>,
13999 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
14000 #[serde(rename = "raw_data_hash")]
14001 #[serde(skip_serializing_if = "Option::is_none")]
14002 pub raw_data_hash: Option<Box<Fingerprint>>,
14003 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
14004 #[serde(rename = "raw_data_size")]
14005 #[serde(skip_serializing_if = "Option::is_none")]
14006 pub raw_data_size: Option<i64>,
14007 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
14008 #[serde(rename = "risk_details")]
14009 #[serde(skip_serializing_if = "Option::is_none")]
14010 pub risk_details: Option<String>,
14011 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
14012 #[serde(rename = "risk_level")]
14013 #[serde(skip_serializing_if = "Option::is_none")]
14014 pub risk_level: Option<String>,
14015 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
14016 #[serde(rename = "risk_level_id")]
14017 #[serde(skip_serializing_if = "Option::is_none")]
14018 pub risk_level_id: Option<i64>,
14019 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
14020 #[serde(rename = "risk_score")]
14021 #[serde(skip_serializing_if = "Option::is_none")]
14022 pub risk_score: Option<i64>,
14023 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
14024 #[serde(rename = "severity")]
14025 #[serde(skip_serializing_if = "Option::is_none")]
14026 pub severity: Option<String>,
14027 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
14028 #[serde(rename = "severity_id")]
14029 #[serde(skip_serializing_if = "Option::is_none")]
14030 pub severity_id: Option<i64>,
14031 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14032 #[serde(rename = "start_time")]
14033 #[serde(skip_serializing_if = "Option::is_none")]
14034 pub start_time: Option<i64>,
14035 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14036 #[serde(rename = "start_time_dt")]
14037 #[serde(skip_serializing_if = "Option::is_none")]
14038 pub start_time_dt: Option<String>,
14039 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
14040 #[serde(rename = "status")]
14041 #[serde(skip_serializing_if = "Option::is_none")]
14042 pub status: Option<String>,
14043 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
14044 #[serde(rename = "status_code")]
14045 #[serde(skip_serializing_if = "Option::is_none")]
14046 pub status_code: Option<String>,
14047 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
14048 #[serde(rename = "status_detail")]
14049 #[serde(skip_serializing_if = "Option::is_none")]
14050 pub status_detail: Option<String>,
14051 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
14052 #[serde(rename = "status_id")]
14053 #[serde(skip_serializing_if = "Option::is_none")]
14054 pub status_id: Option<i64>,
14055 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
14056 #[serde(rename = "time")]
14057 #[serde(skip_serializing_if = "Option::is_none")]
14058 pub time: Option<i64>,
14059 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
14060 #[serde(rename = "time_dt")]
14061 #[serde(skip_serializing_if = "Option::is_none")]
14062 pub time_dt: Option<String>,
14063 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
14064 #[serde(rename = "timezone_offset")]
14065 #[serde(skip_serializing_if = "Option::is_none")]
14066 pub timezone_offset: Option<i64>,
14067 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
14068 #[serde(rename = "type_name")]
14069 #[serde(skip_serializing_if = "Option::is_none")]
14070 pub type_name: Option<String>,
14071 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
14072 #[serde(rename = "type_uid")]
14073 #[serde(skip_serializing_if = "Option::is_none")]
14074 pub type_uid: Option<i64>,
14075 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
14076 #[serde(rename = "unmapped")]
14077 #[serde(skip_serializing_if = "Option::is_none")]
14078 pub unmapped: Option<serde_json::Value>,
14079}
14080#[doc = "Process Activity\n\nProcess Activity events report when a process launches, injects, opens or terminates another process, successful or otherwise.\n\n[UID:1007] Category: system | Name: process_activity"]
14081#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
14082#[serde(default)]
14083#[non_exhaustive]
14084pub struct ProcessActivity {
14085 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
14086 #[serde(rename = "action")]
14087 #[serde(skip_serializing_if = "Option::is_none")]
14088 pub action: Option<String>,
14089 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
14090 #[serde(rename = "action_id")]
14091 #[serde(skip_serializing_if = "Option::is_none")]
14092 pub action_id: Option<i64>,
14093 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
14094 #[serde(rename = "activity_id")]
14095 #[serde(skip_serializing_if = "Option::is_none")]
14096 pub activity_id: Option<i64>,
14097 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
14098 #[serde(rename = "activity_name")]
14099 #[serde(skip_serializing_if = "Option::is_none")]
14100 pub activity_name: Option<String>,
14101 #[doc = "Actor\n\nThe actor that performed the activity on the target <code>process</code>. For example, the process that started a new process or injected code into another process.\n\nrequired"]
14102 #[serde(rename = "actor")]
14103 #[serde(skip_serializing_if = "Option::is_none")]
14104 pub actor: Option<Box<Actor>>,
14105 #[doc = "Actual Permissions\n\nThe permissions that were granted to the process in a platform-native format.\n\nrecommended"]
14106 #[serde(rename = "actual_permissions")]
14107 #[serde(skip_serializing_if = "Option::is_none")]
14108 pub actual_permissions: Option<i64>,
14109 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
14110 #[serde(rename = "api")]
14111 #[serde(skip_serializing_if = "Option::is_none")]
14112 pub api: Option<Box<Api>>,
14113 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
14114 #[serde(rename = "attacks")]
14115 #[serde(skip_serializing_if = "Option::is_none")]
14116 pub attacks: Option<Vec<Attack>>,
14117 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
14118 #[serde(rename = "authorizations")]
14119 #[serde(skip_serializing_if = "Option::is_none")]
14120 pub authorizations: Option<Vec<Authorization>>,
14121 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
14122 #[serde(rename = "category_name")]
14123 #[serde(skip_serializing_if = "Option::is_none")]
14124 pub category_name: Option<String>,
14125 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
14126 #[serde(rename = "category_uid")]
14127 #[serde(skip_serializing_if = "Option::is_none")]
14128 pub category_uid: Option<i64>,
14129 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Process Activity</code>.\n\noptional"]
14130 #[serde(rename = "class_name")]
14131 #[serde(skip_serializing_if = "Option::is_none")]
14132 pub class_name: Option<String>,
14133 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
14134 #[serde(rename = "class_uid")]
14135 #[serde(skip_serializing_if = "Option::is_none")]
14136 pub class_uid: Option<i64>,
14137 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
14138 #[serde(rename = "cloud")]
14139 #[serde(skip_serializing_if = "Option::is_none")]
14140 pub cloud: Option<Box<Cloud>>,
14141 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14142 #[serde(rename = "confidence")]
14143 #[serde(skip_serializing_if = "Option::is_none")]
14144 pub confidence: Option<String>,
14145 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
14146 #[serde(rename = "confidence_id")]
14147 #[serde(skip_serializing_if = "Option::is_none")]
14148 pub confidence_id: Option<i64>,
14149 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
14150 #[serde(rename = "confidence_score")]
14151 #[serde(skip_serializing_if = "Option::is_none")]
14152 pub confidence_score: Option<i64>,
14153 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
14154 #[serde(rename = "count")]
14155 #[serde(skip_serializing_if = "Option::is_none")]
14156 pub count: Option<i64>,
14157 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
14158 #[serde(rename = "device")]
14159 #[serde(skip_serializing_if = "Option::is_none")]
14160 pub device: Option<Box<Device>>,
14161 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14162 #[serde(rename = "disposition")]
14163 #[serde(skip_serializing_if = "Option::is_none")]
14164 pub disposition: Option<String>,
14165 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
14166 #[serde(rename = "disposition_id")]
14167 #[serde(skip_serializing_if = "Option::is_none")]
14168 pub disposition_id: Option<i64>,
14169 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
14170 #[serde(rename = "duration")]
14171 #[serde(skip_serializing_if = "Option::is_none")]
14172 pub duration: Option<i64>,
14173 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14174 #[serde(rename = "end_time")]
14175 #[serde(skip_serializing_if = "Option::is_none")]
14176 pub end_time: Option<i64>,
14177 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14178 #[serde(rename = "end_time_dt")]
14179 #[serde(skip_serializing_if = "Option::is_none")]
14180 pub end_time_dt: Option<String>,
14181 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
14182 #[serde(rename = "enrichments")]
14183 #[serde(skip_serializing_if = "Option::is_none")]
14184 pub enrichments: Option<Vec<Enrichment>>,
14185 #[doc = "Exit Code\n\nThe exit code reported by a process when it terminates. The convention is that zero indicates success and any non-zero exit code indicates that some error occurred.\n\nrecommended"]
14186 #[serde(rename = "exit_code")]
14187 #[serde(skip_serializing_if = "Option::is_none")]
14188 pub exit_code: Option<i64>,
14189 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
14190 #[serde(rename = "firewall_rule")]
14191 #[serde(skip_serializing_if = "Option::is_none")]
14192 pub firewall_rule: Option<Box<FirewallRule>>,
14193 #[doc = "Injection Type\n\nThe process injection method, normalized to the caption of the injection_type_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
14194 #[serde(rename = "injection_type")]
14195 #[serde(skip_serializing_if = "Option::is_none")]
14196 pub injection_type: Option<String>,
14197 #[doc = "Injection Type ID\n\nThe normalized identifier of the process injection method.\n\nrecommended"]
14198 #[serde(rename = "injection_type_id")]
14199 #[serde(skip_serializing_if = "Option::is_none")]
14200 pub injection_type_id: Option<i64>,
14201 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
14202 #[serde(rename = "is_alert")]
14203 #[serde(skip_serializing_if = "Option::is_none")]
14204 pub is_alert: Option<bool>,
14205 #[doc = "Launch Type\n\nThe specific type of <code>Launch</code> activity, normalized to the caption of the <code>launch_type_id</code> value. In the case of <code>Other</code> it is defined by the event source.\n\nrecommended"]
14206 #[serde(rename = "launch_type")]
14207 #[serde(skip_serializing_if = "Option::is_none")]
14208 pub launch_type: Option<String>,
14209 #[doc = "Launch Type ID\n\nThe normalized identifier for the specific type of <code>Launch</code> activity.\n\nrecommended"]
14210 #[serde(rename = "launch_type_id")]
14211 #[serde(skip_serializing_if = "Option::is_none")]
14212 pub launch_type_id: Option<i64>,
14213 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
14214 #[serde(rename = "malware")]
14215 #[serde(skip_serializing_if = "Option::is_none")]
14216 pub malware: Option<Vec<Malware>>,
14217 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
14218 #[serde(rename = "malware_scan_info")]
14219 #[serde(skip_serializing_if = "Option::is_none")]
14220 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
14221 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
14222 #[serde(rename = "message")]
14223 #[serde(skip_serializing_if = "Option::is_none")]
14224 pub message: Option<String>,
14225 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
14226 #[serde(rename = "metadata")]
14227 #[serde(skip_serializing_if = "Option::is_none")]
14228 pub metadata: Option<Box<Metadata>>,
14229 #[doc = "Module\n\nThe module that was injected by the actor process.\n\nrecommended"]
14230 #[serde(rename = "module")]
14231 #[serde(skip_serializing_if = "Option::is_none")]
14232 pub module: Option<Box<Module>>,
14233 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
14234 #[serde(rename = "observables")]
14235 #[serde(skip_serializing_if = "Option::is_none")]
14236 pub observables: Option<Vec<Observable>>,
14237 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
14238 #[serde(rename = "osint")]
14239 #[serde(skip_serializing_if = "Option::is_none")]
14240 pub osint: Option<Vec<Osint>>,
14241 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
14242 #[serde(rename = "policy")]
14243 #[serde(skip_serializing_if = "Option::is_none")]
14244 pub policy: Option<Box<Policy>>,
14245 #[doc = "Process\n\nThe process that was launched, injected into, opened, or terminated.\n\nrequired"]
14246 #[serde(rename = "process")]
14247 #[serde(skip_serializing_if = "Option::is_none")]
14248 pub process: Option<Box<Process>>,
14249 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
14250 #[serde(rename = "raw_data")]
14251 #[serde(skip_serializing_if = "Option::is_none")]
14252 pub raw_data: Option<String>,
14253 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
14254 #[serde(rename = "raw_data_hash")]
14255 #[serde(skip_serializing_if = "Option::is_none")]
14256 pub raw_data_hash: Option<Box<Fingerprint>>,
14257 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
14258 #[serde(rename = "raw_data_size")]
14259 #[serde(skip_serializing_if = "Option::is_none")]
14260 pub raw_data_size: Option<i64>,
14261 #[doc = "Requested Permissions\n\nThe permissions mask that was requested by the process.\n\nrecommended"]
14262 #[serde(rename = "requested_permissions")]
14263 #[serde(skip_serializing_if = "Option::is_none")]
14264 pub requested_permissions: Option<i64>,
14265 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
14266 #[serde(rename = "risk_details")]
14267 #[serde(skip_serializing_if = "Option::is_none")]
14268 pub risk_details: Option<String>,
14269 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
14270 #[serde(rename = "risk_level")]
14271 #[serde(skip_serializing_if = "Option::is_none")]
14272 pub risk_level: Option<String>,
14273 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
14274 #[serde(rename = "risk_level_id")]
14275 #[serde(skip_serializing_if = "Option::is_none")]
14276 pub risk_level_id: Option<i64>,
14277 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
14278 #[serde(rename = "risk_score")]
14279 #[serde(skip_serializing_if = "Option::is_none")]
14280 pub risk_score: Option<i64>,
14281 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
14282 #[serde(rename = "severity")]
14283 #[serde(skip_serializing_if = "Option::is_none")]
14284 pub severity: Option<String>,
14285 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
14286 #[serde(rename = "severity_id")]
14287 #[serde(skip_serializing_if = "Option::is_none")]
14288 pub severity_id: Option<i64>,
14289 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14290 #[serde(rename = "start_time")]
14291 #[serde(skip_serializing_if = "Option::is_none")]
14292 pub start_time: Option<i64>,
14293 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14294 #[serde(rename = "start_time_dt")]
14295 #[serde(skip_serializing_if = "Option::is_none")]
14296 pub start_time_dt: Option<String>,
14297 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
14298 #[serde(rename = "status")]
14299 #[serde(skip_serializing_if = "Option::is_none")]
14300 pub status: Option<String>,
14301 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
14302 #[serde(rename = "status_code")]
14303 #[serde(skip_serializing_if = "Option::is_none")]
14304 pub status_code: Option<String>,
14305 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
14306 #[serde(rename = "status_detail")]
14307 #[serde(skip_serializing_if = "Option::is_none")]
14308 pub status_detail: Option<String>,
14309 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
14310 #[serde(rename = "status_id")]
14311 #[serde(skip_serializing_if = "Option::is_none")]
14312 pub status_id: Option<i64>,
14313 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
14314 #[serde(rename = "time")]
14315 #[serde(skip_serializing_if = "Option::is_none")]
14316 pub time: Option<i64>,
14317 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
14318 #[serde(rename = "time_dt")]
14319 #[serde(skip_serializing_if = "Option::is_none")]
14320 pub time_dt: Option<String>,
14321 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
14322 #[serde(rename = "timezone_offset")]
14323 #[serde(skip_serializing_if = "Option::is_none")]
14324 pub timezone_offset: Option<i64>,
14325 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
14326 #[serde(rename = "type_name")]
14327 #[serde(skip_serializing_if = "Option::is_none")]
14328 pub type_name: Option<String>,
14329 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
14330 #[serde(rename = "type_uid")]
14331 #[serde(skip_serializing_if = "Option::is_none")]
14332 pub type_uid: Option<i64>,
14333 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
14334 #[serde(rename = "unmapped")]
14335 #[serde(skip_serializing_if = "Option::is_none")]
14336 pub unmapped: Option<serde_json::Value>,
14337}
14338#[doc = "Process Query\n\nProcess Query events report information about running processes.\n\n[UID:5015] Category: discovery | Name: process_query"]
14339#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
14340#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
14341#[serde(default)]
14342#[non_exhaustive]
14343pub struct ProcessQuery {
14344 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
14345 #[serde(rename = "action")]
14346 #[serde(skip_serializing_if = "Option::is_none")]
14347 pub action: Option<String>,
14348 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
14349 #[serde(rename = "action_id")]
14350 #[serde(skip_serializing_if = "Option::is_none")]
14351 pub action_id: Option<i64>,
14352 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
14353 #[serde(rename = "activity_id")]
14354 #[serde(skip_serializing_if = "Option::is_none")]
14355 pub activity_id: Option<i64>,
14356 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
14357 #[serde(rename = "activity_name")]
14358 #[serde(skip_serializing_if = "Option::is_none")]
14359 pub activity_name: Option<String>,
14360 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
14361 #[serde(rename = "actor")]
14362 #[serde(skip_serializing_if = "Option::is_none")]
14363 pub actor: Option<Box<Actor>>,
14364 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
14365 #[serde(rename = "api")]
14366 #[serde(skip_serializing_if = "Option::is_none")]
14367 pub api: Option<Box<Api>>,
14368 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
14369 #[serde(rename = "attacks")]
14370 #[serde(skip_serializing_if = "Option::is_none")]
14371 pub attacks: Option<Vec<Attack>>,
14372 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
14373 #[serde(rename = "authorizations")]
14374 #[serde(skip_serializing_if = "Option::is_none")]
14375 pub authorizations: Option<Vec<Authorization>>,
14376 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
14377 #[serde(rename = "category_name")]
14378 #[serde(skip_serializing_if = "Option::is_none")]
14379 pub category_name: Option<String>,
14380 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
14381 #[serde(rename = "category_uid")]
14382 #[serde(skip_serializing_if = "Option::is_none")]
14383 pub category_uid: Option<i64>,
14384 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Process Query</code>.\n\noptional"]
14385 #[serde(rename = "class_name")]
14386 #[serde(skip_serializing_if = "Option::is_none")]
14387 pub class_name: Option<String>,
14388 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
14389 #[serde(rename = "class_uid")]
14390 #[serde(skip_serializing_if = "Option::is_none")]
14391 pub class_uid: Option<i64>,
14392 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
14393 #[serde(rename = "cloud")]
14394 #[serde(skip_serializing_if = "Option::is_none")]
14395 pub cloud: Option<Box<Cloud>>,
14396 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14397 #[serde(rename = "confidence")]
14398 #[serde(skip_serializing_if = "Option::is_none")]
14399 pub confidence: Option<String>,
14400 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
14401 #[serde(rename = "confidence_id")]
14402 #[serde(skip_serializing_if = "Option::is_none")]
14403 pub confidence_id: Option<i64>,
14404 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
14405 #[serde(rename = "confidence_score")]
14406 #[serde(skip_serializing_if = "Option::is_none")]
14407 pub confidence_score: Option<i64>,
14408 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
14409 #[serde(rename = "count")]
14410 #[serde(skip_serializing_if = "Option::is_none")]
14411 pub count: Option<i64>,
14412 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
14413 #[serde(rename = "device")]
14414 #[serde(skip_serializing_if = "Option::is_none")]
14415 pub device: Option<Box<Device>>,
14416 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14417 #[serde(rename = "disposition")]
14418 #[serde(skip_serializing_if = "Option::is_none")]
14419 pub disposition: Option<String>,
14420 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
14421 #[serde(rename = "disposition_id")]
14422 #[serde(skip_serializing_if = "Option::is_none")]
14423 pub disposition_id: Option<i64>,
14424 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
14425 #[serde(rename = "duration")]
14426 #[serde(skip_serializing_if = "Option::is_none")]
14427 pub duration: Option<i64>,
14428 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14429 #[serde(rename = "end_time")]
14430 #[serde(skip_serializing_if = "Option::is_none")]
14431 pub end_time: Option<i64>,
14432 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14433 #[serde(rename = "end_time_dt")]
14434 #[serde(skip_serializing_if = "Option::is_none")]
14435 pub end_time_dt: Option<String>,
14436 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
14437 #[serde(rename = "enrichments")]
14438 #[serde(skip_serializing_if = "Option::is_none")]
14439 pub enrichments: Option<Vec<Enrichment>>,
14440 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
14441 #[serde(rename = "firewall_rule")]
14442 #[serde(skip_serializing_if = "Option::is_none")]
14443 pub firewall_rule: Option<Box<FirewallRule>>,
14444 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
14445 #[serde(rename = "is_alert")]
14446 #[serde(skip_serializing_if = "Option::is_none")]
14447 pub is_alert: Option<bool>,
14448 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
14449 #[serde(rename = "malware")]
14450 #[serde(skip_serializing_if = "Option::is_none")]
14451 pub malware: Option<Vec<Malware>>,
14452 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
14453 #[serde(rename = "malware_scan_info")]
14454 #[serde(skip_serializing_if = "Option::is_none")]
14455 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
14456 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
14457 #[serde(rename = "message")]
14458 #[serde(skip_serializing_if = "Option::is_none")]
14459 pub message: Option<String>,
14460 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
14461 #[serde(rename = "metadata")]
14462 #[serde(skip_serializing_if = "Option::is_none")]
14463 pub metadata: Option<Box<Metadata>>,
14464 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
14465 #[serde(rename = "observables")]
14466 #[serde(skip_serializing_if = "Option::is_none")]
14467 pub observables: Option<Vec<Observable>>,
14468 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
14469 #[serde(rename = "osint")]
14470 #[serde(skip_serializing_if = "Option::is_none")]
14471 pub osint: Option<Vec<Osint>>,
14472 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
14473 #[serde(rename = "policy")]
14474 #[serde(skip_serializing_if = "Option::is_none")]
14475 pub policy: Option<Box<Policy>>,
14476 #[doc = "Process\n\nThe process object.\n\nrequired"]
14477 #[serde(rename = "process")]
14478 #[serde(skip_serializing_if = "Option::is_none")]
14479 pub process: Option<Box<Process>>,
14480 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
14481 #[serde(rename = "query_info")]
14482 #[serde(skip_serializing_if = "Option::is_none")]
14483 pub query_info: Option<Box<QueryInfo>>,
14484 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
14485 #[serde(rename = "query_result")]
14486 #[serde(skip_serializing_if = "Option::is_none")]
14487 pub query_result: Option<String>,
14488 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
14489 #[serde(rename = "query_result_id")]
14490 #[serde(skip_serializing_if = "Option::is_none")]
14491 pub query_result_id: Option<i64>,
14492 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
14493 #[serde(rename = "raw_data")]
14494 #[serde(skip_serializing_if = "Option::is_none")]
14495 pub raw_data: Option<String>,
14496 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
14497 #[serde(rename = "raw_data_hash")]
14498 #[serde(skip_serializing_if = "Option::is_none")]
14499 pub raw_data_hash: Option<Box<Fingerprint>>,
14500 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
14501 #[serde(rename = "raw_data_size")]
14502 #[serde(skip_serializing_if = "Option::is_none")]
14503 pub raw_data_size: Option<i64>,
14504 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
14505 #[serde(rename = "risk_details")]
14506 #[serde(skip_serializing_if = "Option::is_none")]
14507 pub risk_details: Option<String>,
14508 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
14509 #[serde(rename = "risk_level")]
14510 #[serde(skip_serializing_if = "Option::is_none")]
14511 pub risk_level: Option<String>,
14512 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
14513 #[serde(rename = "risk_level_id")]
14514 #[serde(skip_serializing_if = "Option::is_none")]
14515 pub risk_level_id: Option<i64>,
14516 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
14517 #[serde(rename = "risk_score")]
14518 #[serde(skip_serializing_if = "Option::is_none")]
14519 pub risk_score: Option<i64>,
14520 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
14521 #[serde(rename = "severity")]
14522 #[serde(skip_serializing_if = "Option::is_none")]
14523 pub severity: Option<String>,
14524 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
14525 #[serde(rename = "severity_id")]
14526 #[serde(skip_serializing_if = "Option::is_none")]
14527 pub severity_id: Option<i64>,
14528 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14529 #[serde(rename = "start_time")]
14530 #[serde(skip_serializing_if = "Option::is_none")]
14531 pub start_time: Option<i64>,
14532 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14533 #[serde(rename = "start_time_dt")]
14534 #[serde(skip_serializing_if = "Option::is_none")]
14535 pub start_time_dt: Option<String>,
14536 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
14537 #[serde(rename = "status")]
14538 #[serde(skip_serializing_if = "Option::is_none")]
14539 pub status: Option<String>,
14540 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
14541 #[serde(rename = "status_code")]
14542 #[serde(skip_serializing_if = "Option::is_none")]
14543 pub status_code: Option<String>,
14544 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
14545 #[serde(rename = "status_detail")]
14546 #[serde(skip_serializing_if = "Option::is_none")]
14547 pub status_detail: Option<String>,
14548 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
14549 #[serde(rename = "status_id")]
14550 #[serde(skip_serializing_if = "Option::is_none")]
14551 pub status_id: Option<i64>,
14552 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
14553 #[serde(rename = "time")]
14554 #[serde(skip_serializing_if = "Option::is_none")]
14555 pub time: Option<i64>,
14556 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
14557 #[serde(rename = "time_dt")]
14558 #[serde(skip_serializing_if = "Option::is_none")]
14559 pub time_dt: Option<String>,
14560 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
14561 #[serde(rename = "timezone_offset")]
14562 #[serde(skip_serializing_if = "Option::is_none")]
14563 pub timezone_offset: Option<i64>,
14564 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
14565 #[serde(rename = "type_name")]
14566 #[serde(skip_serializing_if = "Option::is_none")]
14567 pub type_name: Option<String>,
14568 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
14569 #[serde(rename = "type_uid")]
14570 #[serde(skip_serializing_if = "Option::is_none")]
14571 pub type_uid: Option<i64>,
14572 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
14573 #[serde(rename = "unmapped")]
14574 #[serde(skip_serializing_if = "Option::is_none")]
14575 pub unmapped: Option<serde_json::Value>,
14576}
14577#[doc = "Process Remediation Activity\n\nProcess Remediation Activity events report on attempts at remediating processes. It follows the MITRE countermeasures defined by the D3FEND™ <a target='_blank' href='https://d3fend.mitre.org/'>Matrix</a>. Sub-techniques will include Process, such as Process Termination or Kernel-based Process Isolation.\n\n[UID:7003] Category: remediation | Name: process_remediation_activity"]
14578#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
14579#[serde(default)]
14580#[non_exhaustive]
14581pub struct ProcessRemediationActivity {
14582 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
14583 #[serde(rename = "action")]
14584 #[serde(skip_serializing_if = "Option::is_none")]
14585 pub action: Option<String>,
14586 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
14587 #[serde(rename = "action_id")]
14588 #[serde(skip_serializing_if = "Option::is_none")]
14589 pub action_id: Option<i64>,
14590 #[doc = "Activity ID\n\nMatches the MITRE D3FEND™ Tactic. Note: the Model and Detect Tactics are not supported as remediations by the OCSF Remediation event class.\n\nrequired"]
14591 #[serde(rename = "activity_id")]
14592 #[serde(skip_serializing_if = "Option::is_none")]
14593 pub activity_id: Option<i64>,
14594 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
14595 #[serde(rename = "activity_name")]
14596 #[serde(skip_serializing_if = "Option::is_none")]
14597 pub activity_name: Option<String>,
14598 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
14599 #[serde(rename = "actor")]
14600 #[serde(skip_serializing_if = "Option::is_none")]
14601 pub actor: Option<Box<Actor>>,
14602 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
14603 #[serde(rename = "api")]
14604 #[serde(skip_serializing_if = "Option::is_none")]
14605 pub api: Option<Box<Api>>,
14606 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
14607 #[serde(rename = "attacks")]
14608 #[serde(skip_serializing_if = "Option::is_none")]
14609 pub attacks: Option<Vec<Attack>>,
14610 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
14611 #[serde(rename = "authorizations")]
14612 #[serde(skip_serializing_if = "Option::is_none")]
14613 pub authorizations: Option<Vec<Authorization>>,
14614 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Remediation</code>.\n\noptional"]
14615 #[serde(rename = "category_name")]
14616 #[serde(skip_serializing_if = "Option::is_none")]
14617 pub category_name: Option<String>,
14618 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
14619 #[serde(rename = "category_uid")]
14620 #[serde(skip_serializing_if = "Option::is_none")]
14621 pub category_uid: Option<i64>,
14622 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Process Remediation Activity</code>.\n\noptional"]
14623 #[serde(rename = "class_name")]
14624 #[serde(skip_serializing_if = "Option::is_none")]
14625 pub class_name: Option<String>,
14626 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
14627 #[serde(rename = "class_uid")]
14628 #[serde(skip_serializing_if = "Option::is_none")]
14629 pub class_uid: Option<i64>,
14630 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
14631 #[serde(rename = "cloud")]
14632 #[serde(skip_serializing_if = "Option::is_none")]
14633 pub cloud: Option<Box<Cloud>>,
14634 #[doc = "Command UID\n\nThe unique identifier of the remediation command that pertains to this event.\n\nrequired"]
14635 #[serde(rename = "command_uid")]
14636 #[serde(skip_serializing_if = "Option::is_none")]
14637 pub command_uid: Option<String>,
14638 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14639 #[serde(rename = "confidence")]
14640 #[serde(skip_serializing_if = "Option::is_none")]
14641 pub confidence: Option<String>,
14642 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
14643 #[serde(rename = "confidence_id")]
14644 #[serde(skip_serializing_if = "Option::is_none")]
14645 pub confidence_id: Option<i64>,
14646 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
14647 #[serde(rename = "confidence_score")]
14648 #[serde(skip_serializing_if = "Option::is_none")]
14649 pub confidence_score: Option<i64>,
14650 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
14651 #[serde(rename = "count")]
14652 #[serde(skip_serializing_if = "Option::is_none")]
14653 pub count: Option<i64>,
14654 #[doc = "Countermeasures\n\nThe MITRE D3FEND™ Matrix Countermeasures associated with a remediation.\n\nrecommended"]
14655 #[serde(rename = "countermeasures")]
14656 #[serde(skip_serializing_if = "Option::is_none")]
14657 pub countermeasures: Option<Vec<D3fend>>,
14658 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
14659 #[serde(rename = "device")]
14660 #[serde(skip_serializing_if = "Option::is_none")]
14661 pub device: Option<Box<Device>>,
14662 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14663 #[serde(rename = "disposition")]
14664 #[serde(skip_serializing_if = "Option::is_none")]
14665 pub disposition: Option<String>,
14666 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
14667 #[serde(rename = "disposition_id")]
14668 #[serde(skip_serializing_if = "Option::is_none")]
14669 pub disposition_id: Option<i64>,
14670 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
14671 #[serde(rename = "duration")]
14672 #[serde(skip_serializing_if = "Option::is_none")]
14673 pub duration: Option<i64>,
14674 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14675 #[serde(rename = "end_time")]
14676 #[serde(skip_serializing_if = "Option::is_none")]
14677 pub end_time: Option<i64>,
14678 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14679 #[serde(rename = "end_time_dt")]
14680 #[serde(skip_serializing_if = "Option::is_none")]
14681 pub end_time_dt: Option<String>,
14682 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
14683 #[serde(rename = "enrichments")]
14684 #[serde(skip_serializing_if = "Option::is_none")]
14685 pub enrichments: Option<Vec<Enrichment>>,
14686 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
14687 #[serde(rename = "firewall_rule")]
14688 #[serde(skip_serializing_if = "Option::is_none")]
14689 pub firewall_rule: Option<Box<FirewallRule>>,
14690 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
14691 #[serde(rename = "is_alert")]
14692 #[serde(skip_serializing_if = "Option::is_none")]
14693 pub is_alert: Option<bool>,
14694 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
14695 #[serde(rename = "malware")]
14696 #[serde(skip_serializing_if = "Option::is_none")]
14697 pub malware: Option<Vec<Malware>>,
14698 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
14699 #[serde(rename = "malware_scan_info")]
14700 #[serde(skip_serializing_if = "Option::is_none")]
14701 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
14702 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
14703 #[serde(rename = "message")]
14704 #[serde(skip_serializing_if = "Option::is_none")]
14705 pub message: Option<String>,
14706 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
14707 #[serde(rename = "metadata")]
14708 #[serde(skip_serializing_if = "Option::is_none")]
14709 pub metadata: Option<Box<Metadata>>,
14710 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
14711 #[serde(rename = "observables")]
14712 #[serde(skip_serializing_if = "Option::is_none")]
14713 pub observables: Option<Vec<Observable>>,
14714 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
14715 #[serde(rename = "osint")]
14716 #[serde(skip_serializing_if = "Option::is_none")]
14717 pub osint: Option<Vec<Osint>>,
14718 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
14719 #[serde(rename = "policy")]
14720 #[serde(skip_serializing_if = "Option::is_none")]
14721 pub policy: Option<Box<Policy>>,
14722 #[doc = "Process\n\nThe process that pertains to the remediation event.\n\nrequired"]
14723 #[serde(rename = "process")]
14724 #[serde(skip_serializing_if = "Option::is_none")]
14725 pub process: Option<Box<Process>>,
14726 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
14727 #[serde(rename = "raw_data")]
14728 #[serde(skip_serializing_if = "Option::is_none")]
14729 pub raw_data: Option<String>,
14730 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
14731 #[serde(rename = "raw_data_hash")]
14732 #[serde(skip_serializing_if = "Option::is_none")]
14733 pub raw_data_hash: Option<Box<Fingerprint>>,
14734 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
14735 #[serde(rename = "raw_data_size")]
14736 #[serde(skip_serializing_if = "Option::is_none")]
14737 pub raw_data_size: Option<i64>,
14738 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
14739 #[serde(rename = "remediation")]
14740 #[serde(skip_serializing_if = "Option::is_none")]
14741 pub remediation: Option<Box<Remediation>>,
14742 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
14743 #[serde(rename = "risk_details")]
14744 #[serde(skip_serializing_if = "Option::is_none")]
14745 pub risk_details: Option<String>,
14746 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
14747 #[serde(rename = "risk_level")]
14748 #[serde(skip_serializing_if = "Option::is_none")]
14749 pub risk_level: Option<String>,
14750 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
14751 #[serde(rename = "risk_level_id")]
14752 #[serde(skip_serializing_if = "Option::is_none")]
14753 pub risk_level_id: Option<i64>,
14754 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
14755 #[serde(rename = "risk_score")]
14756 #[serde(skip_serializing_if = "Option::is_none")]
14757 pub risk_score: Option<i64>,
14758 #[doc = "Scan\n\nThe remediation scan that pertains to this event.\n\noptional"]
14759 #[serde(rename = "scan")]
14760 #[serde(skip_serializing_if = "Option::is_none")]
14761 pub scan: Option<Box<Scan>>,
14762 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
14763 #[serde(rename = "severity")]
14764 #[serde(skip_serializing_if = "Option::is_none")]
14765 pub severity: Option<String>,
14766 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
14767 #[serde(rename = "severity_id")]
14768 #[serde(skip_serializing_if = "Option::is_none")]
14769 pub severity_id: Option<i64>,
14770 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14771 #[serde(rename = "start_time")]
14772 #[serde(skip_serializing_if = "Option::is_none")]
14773 pub start_time: Option<i64>,
14774 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
14775 #[serde(rename = "start_time_dt")]
14776 #[serde(skip_serializing_if = "Option::is_none")]
14777 pub start_time_dt: Option<String>,
14778 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
14779 #[serde(rename = "status")]
14780 #[serde(skip_serializing_if = "Option::is_none")]
14781 pub status: Option<String>,
14782 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
14783 #[serde(rename = "status_code")]
14784 #[serde(skip_serializing_if = "Option::is_none")]
14785 pub status_code: Option<String>,
14786 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
14787 #[serde(rename = "status_detail")]
14788 #[serde(skip_serializing_if = "Option::is_none")]
14789 pub status_detail: Option<String>,
14790 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
14791 #[serde(rename = "status_id")]
14792 #[serde(skip_serializing_if = "Option::is_none")]
14793 pub status_id: Option<i64>,
14794 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
14795 #[serde(rename = "time")]
14796 #[serde(skip_serializing_if = "Option::is_none")]
14797 pub time: Option<i64>,
14798 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
14799 #[serde(rename = "time_dt")]
14800 #[serde(skip_serializing_if = "Option::is_none")]
14801 pub time_dt: Option<String>,
14802 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
14803 #[serde(rename = "timezone_offset")]
14804 #[serde(skip_serializing_if = "Option::is_none")]
14805 pub timezone_offset: Option<i64>,
14806 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
14807 #[serde(rename = "type_name")]
14808 #[serde(skip_serializing_if = "Option::is_none")]
14809 pub type_name: Option<String>,
14810 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
14811 #[serde(rename = "type_uid")]
14812 #[serde(skip_serializing_if = "Option::is_none")]
14813 pub type_uid: Option<i64>,
14814 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
14815 #[serde(rename = "unmapped")]
14816 #[serde(skip_serializing_if = "Option::is_none")]
14817 pub unmapped: Option<serde_json::Value>,
14818}
14819#[doc = "RDP Activity\n\nRemote Desktop Protocol (RDP) Activity events report post-authentication remote client connections between clients and servers over the network.\n\n[UID:4005] Category: network | Name: rdp_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
14820#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
14821#[serde(default)]
14822#[non_exhaustive]
14823pub struct RdpActivity {
14824 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
14825 #[serde(rename = "action")]
14826 #[serde(skip_serializing_if = "Option::is_none")]
14827 pub action: Option<String>,
14828 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
14829 #[serde(rename = "action_id")]
14830 #[serde(skip_serializing_if = "Option::is_none")]
14831 pub action_id: Option<i64>,
14832 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
14833 #[serde(rename = "activity_id")]
14834 #[serde(skip_serializing_if = "Option::is_none")]
14835 pub activity_id: Option<i64>,
14836 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
14837 #[serde(rename = "activity_name")]
14838 #[serde(skip_serializing_if = "Option::is_none")]
14839 pub activity_name: Option<String>,
14840 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
14841 #[serde(rename = "actor")]
14842 #[serde(skip_serializing_if = "Option::is_none")]
14843 pub actor: Option<Box<Actor>>,
14844 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
14845 #[serde(rename = "api")]
14846 #[serde(skip_serializing_if = "Option::is_none")]
14847 pub api: Option<Box<Api>>,
14848 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
14849 #[serde(rename = "app_name")]
14850 #[serde(skip_serializing_if = "Option::is_none")]
14851 pub app_name: Option<String>,
14852 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
14853 #[serde(rename = "attacks")]
14854 #[serde(skip_serializing_if = "Option::is_none")]
14855 pub attacks: Option<Vec<Attack>>,
14856 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
14857 #[serde(rename = "authorizations")]
14858 #[serde(skip_serializing_if = "Option::is_none")]
14859 pub authorizations: Option<Vec<Authorization>>,
14860 #[doc = "Capabilities\n\nA list of RDP capabilities.\n\noptional"]
14861 #[serde(rename = "capabilities")]
14862 #[serde(skip_serializing_if = "Option::is_none")]
14863 pub capabilities: Option<Vec<String>>,
14864 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
14865 #[serde(rename = "category_name")]
14866 #[serde(skip_serializing_if = "Option::is_none")]
14867 pub category_name: Option<String>,
14868 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
14869 #[serde(rename = "category_uid")]
14870 #[serde(skip_serializing_if = "Option::is_none")]
14871 pub category_uid: Option<i64>,
14872 #[doc = "Certificate Chain\n\nThe list of observed certificates in an RDP TLS connection.\n\nrecommended"]
14873 #[serde(rename = "certificate_chain")]
14874 #[serde(skip_serializing_if = "Option::is_none")]
14875 pub certificate_chain: Option<Vec<String>>,
14876 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>RDP Activity</code>.\n\noptional"]
14877 #[serde(rename = "class_name")]
14878 #[serde(skip_serializing_if = "Option::is_none")]
14879 pub class_name: Option<String>,
14880 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
14881 #[serde(rename = "class_uid")]
14882 #[serde(skip_serializing_if = "Option::is_none")]
14883 pub class_uid: Option<i64>,
14884 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
14885 #[serde(rename = "cloud")]
14886 #[serde(skip_serializing_if = "Option::is_none")]
14887 pub cloud: Option<Box<Cloud>>,
14888 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14889 #[serde(rename = "confidence")]
14890 #[serde(skip_serializing_if = "Option::is_none")]
14891 pub confidence: Option<String>,
14892 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
14893 #[serde(rename = "confidence_id")]
14894 #[serde(skip_serializing_if = "Option::is_none")]
14895 pub confidence_id: Option<i64>,
14896 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
14897 #[serde(rename = "confidence_score")]
14898 #[serde(skip_serializing_if = "Option::is_none")]
14899 pub confidence_score: Option<i64>,
14900 #[doc = "Connection Info\n\nThe remote desktop connection details, either connection-based or connectionless.\n\nrecommended"]
14901 #[serde(rename = "connection_info")]
14902 #[serde(skip_serializing_if = "Option::is_none")]
14903 pub connection_info: Option<Box<NetworkConnectionInfo>>,
14904 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
14905 #[serde(rename = "count")]
14906 #[serde(skip_serializing_if = "Option::is_none")]
14907 pub count: Option<i64>,
14908 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
14909 #[serde(rename = "cumulative_traffic")]
14910 #[serde(skip_serializing_if = "Option::is_none")]
14911 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
14912 #[doc = "Device\n\nThe device instigating the RDP connection.\n\noptional"]
14913 #[serde(rename = "device")]
14914 #[serde(skip_serializing_if = "Option::is_none")]
14915 pub device: Option<Box<Device>>,
14916 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
14917 #[serde(rename = "disposition")]
14918 #[serde(skip_serializing_if = "Option::is_none")]
14919 pub disposition: Option<String>,
14920 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
14921 #[serde(rename = "disposition_id")]
14922 #[serde(skip_serializing_if = "Option::is_none")]
14923 pub disposition_id: Option<i64>,
14924 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
14925 #[serde(rename = "dst_endpoint")]
14926 #[serde(skip_serializing_if = "Option::is_none")]
14927 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
14928 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
14929 #[serde(rename = "duration")]
14930 #[serde(skip_serializing_if = "Option::is_none")]
14931 pub duration: Option<i64>,
14932 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14933 #[serde(rename = "end_time")]
14934 #[serde(skip_serializing_if = "Option::is_none")]
14935 pub end_time: Option<i64>,
14936 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
14937 #[serde(rename = "end_time_dt")]
14938 #[serde(skip_serializing_if = "Option::is_none")]
14939 pub end_time_dt: Option<String>,
14940 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
14941 #[serde(rename = "enrichments")]
14942 #[serde(skip_serializing_if = "Option::is_none")]
14943 pub enrichments: Option<Vec<Enrichment>>,
14944 #[doc = "File\n\nThe file that is the target of the RDP activity.\n\noptional"]
14945 #[serde(rename = "file")]
14946 #[serde(skip_serializing_if = "Option::is_none")]
14947 pub file: Option<Box<File>>,
14948 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
14949 #[serde(rename = "firewall_rule")]
14950 #[serde(skip_serializing_if = "Option::is_none")]
14951 pub firewall_rule: Option<Box<FirewallRule>>,
14952 #[doc = "Identifier Cookie\n\nThe client identifier cookie during client/server exchange.\n\noptional"]
14953 #[serde(rename = "identifier_cookie")]
14954 #[serde(skip_serializing_if = "Option::is_none")]
14955 pub identifier_cookie: Option<String>,
14956 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
14957 #[serde(rename = "is_alert")]
14958 #[serde(skip_serializing_if = "Option::is_none")]
14959 pub is_alert: Option<bool>,
14960 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
14961 #[serde(rename = "ja4_fingerprint_list")]
14962 #[serde(skip_serializing_if = "Option::is_none")]
14963 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
14964 #[doc = "Keyboard Information\n\nThe keyboard detailed information.\n\noptional"]
14965 #[serde(rename = "keyboard_info")]
14966 #[serde(skip_serializing_if = "Option::is_none")]
14967 pub keyboard_info: Option<Box<KeyboardInfo>>,
14968 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
14969 #[serde(rename = "load_balancer")]
14970 #[serde(skip_serializing_if = "Option::is_none")]
14971 pub load_balancer: Option<Box<LoadBalancer>>,
14972 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
14973 #[serde(rename = "malware")]
14974 #[serde(skip_serializing_if = "Option::is_none")]
14975 pub malware: Option<Vec<Malware>>,
14976 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
14977 #[serde(rename = "malware_scan_info")]
14978 #[serde(skip_serializing_if = "Option::is_none")]
14979 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
14980 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
14981 #[serde(rename = "message")]
14982 #[serde(skip_serializing_if = "Option::is_none")]
14983 pub message: Option<String>,
14984 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
14985 #[serde(rename = "metadata")]
14986 #[serde(skip_serializing_if = "Option::is_none")]
14987 pub metadata: Option<Box<Metadata>>,
14988 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
14989 #[serde(rename = "observables")]
14990 #[serde(skip_serializing_if = "Option::is_none")]
14991 pub observables: Option<Vec<Observable>>,
14992 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
14993 #[serde(rename = "observation_point")]
14994 #[serde(skip_serializing_if = "Option::is_none")]
14995 pub observation_point: Option<String>,
14996 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
14997 #[serde(rename = "observation_point_id")]
14998 #[serde(skip_serializing_if = "Option::is_none")]
14999 pub observation_point_id: Option<i64>,
15000 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
15001 #[serde(rename = "osint")]
15002 #[serde(skip_serializing_if = "Option::is_none")]
15003 pub osint: Option<Vec<Osint>>,
15004 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
15005 #[serde(rename = "policy")]
15006 #[serde(skip_serializing_if = "Option::is_none")]
15007 pub policy: Option<Box<Policy>>,
15008 #[doc = "RDP Version\n\nThe Remote Desktop Protocol version.\n\nrecommended"]
15009 #[serde(rename = "protocol_ver")]
15010 #[serde(skip_serializing_if = "Option::is_none")]
15011 pub protocol_ver: Option<String>,
15012 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
15013 #[serde(rename = "proxy")]
15014 #[serde(skip_serializing_if = "Option::is_none")]
15015 pub proxy: Option<Box<NetworkProxy>>,
15016 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
15017 #[serde(rename = "proxy_connection_info")]
15018 #[serde(skip_serializing_if = "Option::is_none")]
15019 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
15020 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
15021 #[serde(rename = "proxy_endpoint")]
15022 #[serde(skip_serializing_if = "Option::is_none")]
15023 pub proxy_endpoint: Option<Box<NetworkProxy>>,
15024 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
15025 #[serde(rename = "proxy_http_request")]
15026 #[serde(skip_serializing_if = "Option::is_none")]
15027 pub proxy_http_request: Option<Box<HttpRequest>>,
15028 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
15029 #[serde(rename = "proxy_http_response")]
15030 #[serde(skip_serializing_if = "Option::is_none")]
15031 pub proxy_http_response: Option<Box<HttpResponse>>,
15032 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
15033 #[serde(rename = "proxy_tls")]
15034 #[serde(skip_serializing_if = "Option::is_none")]
15035 pub proxy_tls: Option<Box<Tls>>,
15036 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
15037 #[serde(rename = "proxy_traffic")]
15038 #[serde(skip_serializing_if = "Option::is_none")]
15039 pub proxy_traffic: Option<Box<NetworkTraffic>>,
15040 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
15041 #[serde(rename = "raw_data")]
15042 #[serde(skip_serializing_if = "Option::is_none")]
15043 pub raw_data: Option<String>,
15044 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
15045 #[serde(rename = "raw_data_hash")]
15046 #[serde(skip_serializing_if = "Option::is_none")]
15047 pub raw_data_hash: Option<Box<Fingerprint>>,
15048 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
15049 #[serde(rename = "raw_data_size")]
15050 #[serde(skip_serializing_if = "Option::is_none")]
15051 pub raw_data_size: Option<i64>,
15052 #[doc = "Remote Display\n\nThe remote display affiliated with the event\n\noptional"]
15053 #[serde(rename = "remote_display")]
15054 #[serde(skip_serializing_if = "Option::is_none")]
15055 pub remote_display: Option<Box<Display>>,
15056 #[doc = "API Request Details\n\nThe client request in an RDP network connection.\n\nrecommended"]
15057 #[serde(rename = "request")]
15058 #[serde(skip_serializing_if = "Option::is_none")]
15059 pub request: Option<Box<Request>>,
15060 #[doc = "API Response Details\n\nThe server response in an RDP network connection.\n\nrecommended"]
15061 #[serde(rename = "response")]
15062 #[serde(skip_serializing_if = "Option::is_none")]
15063 pub response: Option<Box<Response>>,
15064 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
15065 #[serde(rename = "risk_details")]
15066 #[serde(skip_serializing_if = "Option::is_none")]
15067 pub risk_details: Option<String>,
15068 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
15069 #[serde(rename = "risk_level")]
15070 #[serde(skip_serializing_if = "Option::is_none")]
15071 pub risk_level: Option<String>,
15072 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
15073 #[serde(rename = "risk_level_id")]
15074 #[serde(skip_serializing_if = "Option::is_none")]
15075 pub risk_level_id: Option<i64>,
15076 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
15077 #[serde(rename = "risk_score")]
15078 #[serde(skip_serializing_if = "Option::is_none")]
15079 pub risk_score: Option<i64>,
15080 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
15081 #[serde(rename = "severity")]
15082 #[serde(skip_serializing_if = "Option::is_none")]
15083 pub severity: Option<String>,
15084 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
15085 #[serde(rename = "severity_id")]
15086 #[serde(skip_serializing_if = "Option::is_none")]
15087 pub severity_id: Option<i64>,
15088 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
15089 #[serde(rename = "src_endpoint")]
15090 #[serde(skip_serializing_if = "Option::is_none")]
15091 pub src_endpoint: Option<Box<NetworkEndpoint>>,
15092 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15093 #[serde(rename = "start_time")]
15094 #[serde(skip_serializing_if = "Option::is_none")]
15095 pub start_time: Option<i64>,
15096 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15097 #[serde(rename = "start_time_dt")]
15098 #[serde(skip_serializing_if = "Option::is_none")]
15099 pub start_time_dt: Option<String>,
15100 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
15101 #[serde(rename = "status")]
15102 #[serde(skip_serializing_if = "Option::is_none")]
15103 pub status: Option<String>,
15104 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
15105 #[serde(rename = "status_code")]
15106 #[serde(skip_serializing_if = "Option::is_none")]
15107 pub status_code: Option<String>,
15108 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
15109 #[serde(rename = "status_detail")]
15110 #[serde(skip_serializing_if = "Option::is_none")]
15111 pub status_detail: Option<String>,
15112 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
15113 #[serde(rename = "status_id")]
15114 #[serde(skip_serializing_if = "Option::is_none")]
15115 pub status_id: Option<i64>,
15116 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
15117 #[serde(rename = "time")]
15118 #[serde(skip_serializing_if = "Option::is_none")]
15119 pub time: Option<i64>,
15120 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
15121 #[serde(rename = "time_dt")]
15122 #[serde(skip_serializing_if = "Option::is_none")]
15123 pub time_dt: Option<String>,
15124 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
15125 #[serde(rename = "timezone_offset")]
15126 #[serde(skip_serializing_if = "Option::is_none")]
15127 pub timezone_offset: Option<i64>,
15128 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
15129 #[serde(rename = "tls")]
15130 #[serde(skip_serializing_if = "Option::is_none")]
15131 pub tls: Option<Box<Tls>>,
15132 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
15133 #[serde(rename = "traffic")]
15134 #[serde(skip_serializing_if = "Option::is_none")]
15135 pub traffic: Option<Box<NetworkTraffic>>,
15136 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
15137 #[serde(rename = "type_name")]
15138 #[serde(skip_serializing_if = "Option::is_none")]
15139 pub type_name: Option<String>,
15140 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
15141 #[serde(rename = "type_uid")]
15142 #[serde(skip_serializing_if = "Option::is_none")]
15143 pub type_uid: Option<i64>,
15144 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
15145 #[serde(rename = "unmapped")]
15146 #[serde(skip_serializing_if = "Option::is_none")]
15147 pub unmapped: Option<serde_json::Value>,
15148 #[doc = "User\n\nThe target user associated with the RDP activity.\n\nrecommended"]
15149 #[serde(rename = "user")]
15150 #[serde(skip_serializing_if = "Option::is_none")]
15151 pub user: Option<Box<User>>,
15152}
15153#[doc = "Remediation Activity\n\nRemediation Activity events report on attempts at remediating a compromised device or computer network. It follows the MITRE countermeasures defined by the D3FEND™ <a target='_blank' href='https://d3fend.mitre.org/'>Matrix</a>.\n\n[UID:7001] Category: remediation | Name: remediation_activity"]
15154#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
15155#[serde(default)]
15156#[non_exhaustive]
15157pub struct RemediationActivity {
15158 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
15159 #[serde(rename = "action")]
15160 #[serde(skip_serializing_if = "Option::is_none")]
15161 pub action: Option<String>,
15162 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
15163 #[serde(rename = "action_id")]
15164 #[serde(skip_serializing_if = "Option::is_none")]
15165 pub action_id: Option<i64>,
15166 #[doc = "Activity ID\n\nMatches the MITRE D3FEND™ Tactic. Note: the Model and Detect Tactics are not supported as remediations by the OCSF Remediation event class.\n\nrequired"]
15167 #[serde(rename = "activity_id")]
15168 #[serde(skip_serializing_if = "Option::is_none")]
15169 pub activity_id: Option<i64>,
15170 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
15171 #[serde(rename = "activity_name")]
15172 #[serde(skip_serializing_if = "Option::is_none")]
15173 pub activity_name: Option<String>,
15174 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
15175 #[serde(rename = "actor")]
15176 #[serde(skip_serializing_if = "Option::is_none")]
15177 pub actor: Option<Box<Actor>>,
15178 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
15179 #[serde(rename = "api")]
15180 #[serde(skip_serializing_if = "Option::is_none")]
15181 pub api: Option<Box<Api>>,
15182 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
15183 #[serde(rename = "attacks")]
15184 #[serde(skip_serializing_if = "Option::is_none")]
15185 pub attacks: Option<Vec<Attack>>,
15186 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
15187 #[serde(rename = "authorizations")]
15188 #[serde(skip_serializing_if = "Option::is_none")]
15189 pub authorizations: Option<Vec<Authorization>>,
15190 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Remediation</code>.\n\noptional"]
15191 #[serde(rename = "category_name")]
15192 #[serde(skip_serializing_if = "Option::is_none")]
15193 pub category_name: Option<String>,
15194 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
15195 #[serde(rename = "category_uid")]
15196 #[serde(skip_serializing_if = "Option::is_none")]
15197 pub category_uid: Option<i64>,
15198 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Remediation Activity</code>.\n\noptional"]
15199 #[serde(rename = "class_name")]
15200 #[serde(skip_serializing_if = "Option::is_none")]
15201 pub class_name: Option<String>,
15202 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
15203 #[serde(rename = "class_uid")]
15204 #[serde(skip_serializing_if = "Option::is_none")]
15205 pub class_uid: Option<i64>,
15206 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
15207 #[serde(rename = "cloud")]
15208 #[serde(skip_serializing_if = "Option::is_none")]
15209 pub cloud: Option<Box<Cloud>>,
15210 #[doc = "Command UID\n\nThe unique identifier of the remediation command that pertains to this event.\n\nrequired"]
15211 #[serde(rename = "command_uid")]
15212 #[serde(skip_serializing_if = "Option::is_none")]
15213 pub command_uid: Option<String>,
15214 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15215 #[serde(rename = "confidence")]
15216 #[serde(skip_serializing_if = "Option::is_none")]
15217 pub confidence: Option<String>,
15218 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
15219 #[serde(rename = "confidence_id")]
15220 #[serde(skip_serializing_if = "Option::is_none")]
15221 pub confidence_id: Option<i64>,
15222 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
15223 #[serde(rename = "confidence_score")]
15224 #[serde(skip_serializing_if = "Option::is_none")]
15225 pub confidence_score: Option<i64>,
15226 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
15227 #[serde(rename = "count")]
15228 #[serde(skip_serializing_if = "Option::is_none")]
15229 pub count: Option<i64>,
15230 #[doc = "Countermeasures\n\nThe MITRE D3FEND™ Matrix Countermeasures associated with a remediation.\n\nrecommended"]
15231 #[serde(rename = "countermeasures")]
15232 #[serde(skip_serializing_if = "Option::is_none")]
15233 pub countermeasures: Option<Vec<D3fend>>,
15234 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
15235 #[serde(rename = "device")]
15236 #[serde(skip_serializing_if = "Option::is_none")]
15237 pub device: Option<Box<Device>>,
15238 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15239 #[serde(rename = "disposition")]
15240 #[serde(skip_serializing_if = "Option::is_none")]
15241 pub disposition: Option<String>,
15242 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
15243 #[serde(rename = "disposition_id")]
15244 #[serde(skip_serializing_if = "Option::is_none")]
15245 pub disposition_id: Option<i64>,
15246 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
15247 #[serde(rename = "duration")]
15248 #[serde(skip_serializing_if = "Option::is_none")]
15249 pub duration: Option<i64>,
15250 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15251 #[serde(rename = "end_time")]
15252 #[serde(skip_serializing_if = "Option::is_none")]
15253 pub end_time: Option<i64>,
15254 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15255 #[serde(rename = "end_time_dt")]
15256 #[serde(skip_serializing_if = "Option::is_none")]
15257 pub end_time_dt: Option<String>,
15258 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
15259 #[serde(rename = "enrichments")]
15260 #[serde(skip_serializing_if = "Option::is_none")]
15261 pub enrichments: Option<Vec<Enrichment>>,
15262 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
15263 #[serde(rename = "firewall_rule")]
15264 #[serde(skip_serializing_if = "Option::is_none")]
15265 pub firewall_rule: Option<Box<FirewallRule>>,
15266 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
15267 #[serde(rename = "is_alert")]
15268 #[serde(skip_serializing_if = "Option::is_none")]
15269 pub is_alert: Option<bool>,
15270 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
15271 #[serde(rename = "malware")]
15272 #[serde(skip_serializing_if = "Option::is_none")]
15273 pub malware: Option<Vec<Malware>>,
15274 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
15275 #[serde(rename = "malware_scan_info")]
15276 #[serde(skip_serializing_if = "Option::is_none")]
15277 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
15278 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
15279 #[serde(rename = "message")]
15280 #[serde(skip_serializing_if = "Option::is_none")]
15281 pub message: Option<String>,
15282 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
15283 #[serde(rename = "metadata")]
15284 #[serde(skip_serializing_if = "Option::is_none")]
15285 pub metadata: Option<Box<Metadata>>,
15286 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
15287 #[serde(rename = "observables")]
15288 #[serde(skip_serializing_if = "Option::is_none")]
15289 pub observables: Option<Vec<Observable>>,
15290 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
15291 #[serde(rename = "osint")]
15292 #[serde(skip_serializing_if = "Option::is_none")]
15293 pub osint: Option<Vec<Osint>>,
15294 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
15295 #[serde(rename = "policy")]
15296 #[serde(skip_serializing_if = "Option::is_none")]
15297 pub policy: Option<Box<Policy>>,
15298 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
15299 #[serde(rename = "raw_data")]
15300 #[serde(skip_serializing_if = "Option::is_none")]
15301 pub raw_data: Option<String>,
15302 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
15303 #[serde(rename = "raw_data_hash")]
15304 #[serde(skip_serializing_if = "Option::is_none")]
15305 pub raw_data_hash: Option<Box<Fingerprint>>,
15306 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
15307 #[serde(rename = "raw_data_size")]
15308 #[serde(skip_serializing_if = "Option::is_none")]
15309 pub raw_data_size: Option<i64>,
15310 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
15311 #[serde(rename = "remediation")]
15312 #[serde(skip_serializing_if = "Option::is_none")]
15313 pub remediation: Option<Box<Remediation>>,
15314 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
15315 #[serde(rename = "risk_details")]
15316 #[serde(skip_serializing_if = "Option::is_none")]
15317 pub risk_details: Option<String>,
15318 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
15319 #[serde(rename = "risk_level")]
15320 #[serde(skip_serializing_if = "Option::is_none")]
15321 pub risk_level: Option<String>,
15322 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
15323 #[serde(rename = "risk_level_id")]
15324 #[serde(skip_serializing_if = "Option::is_none")]
15325 pub risk_level_id: Option<i64>,
15326 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
15327 #[serde(rename = "risk_score")]
15328 #[serde(skip_serializing_if = "Option::is_none")]
15329 pub risk_score: Option<i64>,
15330 #[doc = "Scan\n\nThe remediation scan that pertains to this event.\n\noptional"]
15331 #[serde(rename = "scan")]
15332 #[serde(skip_serializing_if = "Option::is_none")]
15333 pub scan: Option<Box<Scan>>,
15334 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
15335 #[serde(rename = "severity")]
15336 #[serde(skip_serializing_if = "Option::is_none")]
15337 pub severity: Option<String>,
15338 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
15339 #[serde(rename = "severity_id")]
15340 #[serde(skip_serializing_if = "Option::is_none")]
15341 pub severity_id: Option<i64>,
15342 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15343 #[serde(rename = "start_time")]
15344 #[serde(skip_serializing_if = "Option::is_none")]
15345 pub start_time: Option<i64>,
15346 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15347 #[serde(rename = "start_time_dt")]
15348 #[serde(skip_serializing_if = "Option::is_none")]
15349 pub start_time_dt: Option<String>,
15350 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
15351 #[serde(rename = "status")]
15352 #[serde(skip_serializing_if = "Option::is_none")]
15353 pub status: Option<String>,
15354 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
15355 #[serde(rename = "status_code")]
15356 #[serde(skip_serializing_if = "Option::is_none")]
15357 pub status_code: Option<String>,
15358 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
15359 #[serde(rename = "status_detail")]
15360 #[serde(skip_serializing_if = "Option::is_none")]
15361 pub status_detail: Option<String>,
15362 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
15363 #[serde(rename = "status_id")]
15364 #[serde(skip_serializing_if = "Option::is_none")]
15365 pub status_id: Option<i64>,
15366 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
15367 #[serde(rename = "time")]
15368 #[serde(skip_serializing_if = "Option::is_none")]
15369 pub time: Option<i64>,
15370 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
15371 #[serde(rename = "time_dt")]
15372 #[serde(skip_serializing_if = "Option::is_none")]
15373 pub time_dt: Option<String>,
15374 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
15375 #[serde(rename = "timezone_offset")]
15376 #[serde(skip_serializing_if = "Option::is_none")]
15377 pub timezone_offset: Option<i64>,
15378 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
15379 #[serde(rename = "type_name")]
15380 #[serde(skip_serializing_if = "Option::is_none")]
15381 pub type_name: Option<String>,
15382 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
15383 #[serde(rename = "type_uid")]
15384 #[serde(skip_serializing_if = "Option::is_none")]
15385 pub type_uid: Option<i64>,
15386 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
15387 #[serde(rename = "unmapped")]
15388 #[serde(skip_serializing_if = "Option::is_none")]
15389 pub unmapped: Option<serde_json::Value>,
15390}
15391#[doc = "Scan Activity\n\nScan events report the start, completion, and results of a scan job. The scan event includes the number of items that were scanned and the number of detections that were resolved.\n\n[UID:6007] Category: application | Name: scan_activity"]
15392#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
15393#[serde(default)]
15394#[non_exhaustive]
15395pub struct ScanActivity {
15396 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
15397 #[serde(rename = "action")]
15398 #[serde(skip_serializing_if = "Option::is_none")]
15399 pub action: Option<String>,
15400 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
15401 #[serde(rename = "action_id")]
15402 #[serde(skip_serializing_if = "Option::is_none")]
15403 pub action_id: Option<i64>,
15404 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
15405 #[serde(rename = "activity_id")]
15406 #[serde(skip_serializing_if = "Option::is_none")]
15407 pub activity_id: Option<i64>,
15408 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
15409 #[serde(rename = "activity_name")]
15410 #[serde(skip_serializing_if = "Option::is_none")]
15411 pub activity_name: Option<String>,
15412 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
15413 #[serde(rename = "actor")]
15414 #[serde(skip_serializing_if = "Option::is_none")]
15415 pub actor: Option<Box<Actor>>,
15416 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
15417 #[serde(rename = "api")]
15418 #[serde(skip_serializing_if = "Option::is_none")]
15419 pub api: Option<Box<Api>>,
15420 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
15421 #[serde(rename = "attacks")]
15422 #[serde(skip_serializing_if = "Option::is_none")]
15423 pub attacks: Option<Vec<Attack>>,
15424 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
15425 #[serde(rename = "authorizations")]
15426 #[serde(skip_serializing_if = "Option::is_none")]
15427 pub authorizations: Option<Vec<Authorization>>,
15428 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
15429 #[serde(rename = "category_name")]
15430 #[serde(skip_serializing_if = "Option::is_none")]
15431 pub category_name: Option<String>,
15432 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
15433 #[serde(rename = "category_uid")]
15434 #[serde(skip_serializing_if = "Option::is_none")]
15435 pub category_uid: Option<i64>,
15436 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Scan Activity</code>.\n\noptional"]
15437 #[serde(rename = "class_name")]
15438 #[serde(skip_serializing_if = "Option::is_none")]
15439 pub class_name: Option<String>,
15440 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
15441 #[serde(rename = "class_uid")]
15442 #[serde(skip_serializing_if = "Option::is_none")]
15443 pub class_uid: Option<i64>,
15444 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
15445 #[serde(rename = "cloud")]
15446 #[serde(skip_serializing_if = "Option::is_none")]
15447 pub cloud: Option<Box<Cloud>>,
15448 #[doc = "Command UID\n\nThe command identifier that is associated with this scan event. This ID uniquely identifies the proactive scan command, e.g., if remotely initiated.\n\nrecommended"]
15449 #[serde(rename = "command_uid")]
15450 #[serde(skip_serializing_if = "Option::is_none")]
15451 pub command_uid: Option<String>,
15452 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15453 #[serde(rename = "confidence")]
15454 #[serde(skip_serializing_if = "Option::is_none")]
15455 pub confidence: Option<String>,
15456 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
15457 #[serde(rename = "confidence_id")]
15458 #[serde(skip_serializing_if = "Option::is_none")]
15459 pub confidence_id: Option<i64>,
15460 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
15461 #[serde(rename = "confidence_score")]
15462 #[serde(skip_serializing_if = "Option::is_none")]
15463 pub confidence_score: Option<i64>,
15464 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
15465 #[serde(rename = "count")]
15466 #[serde(skip_serializing_if = "Option::is_none")]
15467 pub count: Option<i64>,
15468 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
15469 #[serde(rename = "device")]
15470 #[serde(skip_serializing_if = "Option::is_none")]
15471 pub device: Option<Box<Device>>,
15472 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15473 #[serde(rename = "disposition")]
15474 #[serde(skip_serializing_if = "Option::is_none")]
15475 pub disposition: Option<String>,
15476 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
15477 #[serde(rename = "disposition_id")]
15478 #[serde(skip_serializing_if = "Option::is_none")]
15479 pub disposition_id: Option<i64>,
15480 #[doc = "Duration Milliseconds\n\nThe duration of the scan\n\nrecommended"]
15481 #[serde(rename = "duration")]
15482 #[serde(skip_serializing_if = "Option::is_none")]
15483 pub duration: Option<i64>,
15484 #[doc = "End Time\n\nThe end time of the scan job.\n\nrecommended"]
15485 #[serde(rename = "end_time")]
15486 #[serde(skip_serializing_if = "Option::is_none")]
15487 pub end_time: Option<i64>,
15488 #[doc = "End Time\n\nThe end time of the scan job.\n\noptional"]
15489 #[serde(rename = "end_time_dt")]
15490 #[serde(skip_serializing_if = "Option::is_none")]
15491 pub end_time_dt: Option<String>,
15492 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
15493 #[serde(rename = "enrichments")]
15494 #[serde(skip_serializing_if = "Option::is_none")]
15495 pub enrichments: Option<Vec<Enrichment>>,
15496 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
15497 #[serde(rename = "firewall_rule")]
15498 #[serde(skip_serializing_if = "Option::is_none")]
15499 pub firewall_rule: Option<Box<FirewallRule>>,
15500 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
15501 #[serde(rename = "is_alert")]
15502 #[serde(skip_serializing_if = "Option::is_none")]
15503 pub is_alert: Option<bool>,
15504 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
15505 #[serde(rename = "malware")]
15506 #[serde(skip_serializing_if = "Option::is_none")]
15507 pub malware: Option<Vec<Malware>>,
15508 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
15509 #[serde(rename = "malware_scan_info")]
15510 #[serde(skip_serializing_if = "Option::is_none")]
15511 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
15512 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
15513 #[serde(rename = "message")]
15514 #[serde(skip_serializing_if = "Option::is_none")]
15515 pub message: Option<String>,
15516 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
15517 #[serde(rename = "metadata")]
15518 #[serde(skip_serializing_if = "Option::is_none")]
15519 pub metadata: Option<Box<Metadata>>,
15520 #[doc = "Detections\n\nThe number of detections.\n\nrecommended"]
15521 #[serde(rename = "num_detections")]
15522 #[serde(skip_serializing_if = "Option::is_none")]
15523 pub num_detections: Option<i64>,
15524 #[doc = "Scanned Files\n\nThe number of files scanned.\n\nrecommended"]
15525 #[serde(rename = "num_files")]
15526 #[serde(skip_serializing_if = "Option::is_none")]
15527 pub num_files: Option<i64>,
15528 #[doc = "Scanned Folders\n\nThe number of folders scanned.\n\nrecommended"]
15529 #[serde(rename = "num_folders")]
15530 #[serde(skip_serializing_if = "Option::is_none")]
15531 pub num_folders: Option<i64>,
15532 #[doc = "Scanned Network Items\n\nThe number of network items scanned.\n\nrecommended"]
15533 #[serde(rename = "num_network_items")]
15534 #[serde(skip_serializing_if = "Option::is_none")]
15535 pub num_network_items: Option<i64>,
15536 #[doc = "Scanned Processes\n\nThe number of processes scanned.\n\nrecommended"]
15537 #[serde(rename = "num_processes")]
15538 #[serde(skip_serializing_if = "Option::is_none")]
15539 pub num_processes: Option<i64>,
15540 #[doc = "Scanned Registry Items\n\nThe number of registry items scanned.\n\nrecommended"]
15541 #[serde(rename = "num_registry_items")]
15542 #[serde(skip_serializing_if = "Option::is_none")]
15543 pub num_registry_items: Option<i64>,
15544 #[doc = "Resolutions\n\nThe number of items that were resolved.\n\nrecommended"]
15545 #[serde(rename = "num_resolutions")]
15546 #[serde(skip_serializing_if = "Option::is_none")]
15547 pub num_resolutions: Option<i64>,
15548 #[doc = "Skipped\n\nThe number of skipped items.\n\nrecommended"]
15549 #[serde(rename = "num_skipped_items")]
15550 #[serde(skip_serializing_if = "Option::is_none")]
15551 pub num_skipped_items: Option<i64>,
15552 #[doc = "Trusted\n\nThe number of trusted items.\n\nrecommended"]
15553 #[serde(rename = "num_trusted_items")]
15554 #[serde(skip_serializing_if = "Option::is_none")]
15555 pub num_trusted_items: Option<i64>,
15556 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
15557 #[serde(rename = "observables")]
15558 #[serde(skip_serializing_if = "Option::is_none")]
15559 pub observables: Option<Vec<Observable>>,
15560 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
15561 #[serde(rename = "osint")]
15562 #[serde(skip_serializing_if = "Option::is_none")]
15563 pub osint: Option<Vec<Osint>>,
15564 #[doc = "Policy\n\nThe policy associated with this Scan event; required if the scan was initiated by a policy.\n\nrecommended"]
15565 #[serde(rename = "policy")]
15566 #[serde(skip_serializing_if = "Option::is_none")]
15567 pub policy: Option<Box<Policy>>,
15568 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
15569 #[serde(rename = "raw_data")]
15570 #[serde(skip_serializing_if = "Option::is_none")]
15571 pub raw_data: Option<String>,
15572 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
15573 #[serde(rename = "raw_data_hash")]
15574 #[serde(skip_serializing_if = "Option::is_none")]
15575 pub raw_data_hash: Option<Box<Fingerprint>>,
15576 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
15577 #[serde(rename = "raw_data_size")]
15578 #[serde(skip_serializing_if = "Option::is_none")]
15579 pub raw_data_size: Option<i64>,
15580 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
15581 #[serde(rename = "risk_details")]
15582 #[serde(skip_serializing_if = "Option::is_none")]
15583 pub risk_details: Option<String>,
15584 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
15585 #[serde(rename = "risk_level")]
15586 #[serde(skip_serializing_if = "Option::is_none")]
15587 pub risk_level: Option<String>,
15588 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
15589 #[serde(rename = "risk_level_id")]
15590 #[serde(skip_serializing_if = "Option::is_none")]
15591 pub risk_level_id: Option<i64>,
15592 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
15593 #[serde(rename = "risk_score")]
15594 #[serde(skip_serializing_if = "Option::is_none")]
15595 pub risk_score: Option<i64>,
15596 #[doc = "Scan\n\nThe Scan object describes characteristics of the scan job.\n\nrequired"]
15597 #[serde(rename = "scan")]
15598 #[serde(skip_serializing_if = "Option::is_none")]
15599 pub scan: Option<Box<Scan>>,
15600 #[doc = "Schedule UID\n\nThe unique identifier of the schedule associated with a scan job.\n\nrecommended"]
15601 #[serde(rename = "schedule_uid")]
15602 #[serde(skip_serializing_if = "Option::is_none")]
15603 pub schedule_uid: Option<String>,
15604 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
15605 #[serde(rename = "severity")]
15606 #[serde(skip_serializing_if = "Option::is_none")]
15607 pub severity: Option<String>,
15608 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
15609 #[serde(rename = "severity_id")]
15610 #[serde(skip_serializing_if = "Option::is_none")]
15611 pub severity_id: Option<i64>,
15612 #[doc = "Start Time\n\nThe start time of the scan job.\n\nrecommended"]
15613 #[serde(rename = "start_time")]
15614 #[serde(skip_serializing_if = "Option::is_none")]
15615 pub start_time: Option<i64>,
15616 #[doc = "Start Time\n\nThe start time of the scan job.\n\noptional"]
15617 #[serde(rename = "start_time_dt")]
15618 #[serde(skip_serializing_if = "Option::is_none")]
15619 pub start_time_dt: Option<String>,
15620 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
15621 #[serde(rename = "status")]
15622 #[serde(skip_serializing_if = "Option::is_none")]
15623 pub status: Option<String>,
15624 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
15625 #[serde(rename = "status_code")]
15626 #[serde(skip_serializing_if = "Option::is_none")]
15627 pub status_code: Option<String>,
15628 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
15629 #[serde(rename = "status_detail")]
15630 #[serde(skip_serializing_if = "Option::is_none")]
15631 pub status_detail: Option<String>,
15632 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
15633 #[serde(rename = "status_id")]
15634 #[serde(skip_serializing_if = "Option::is_none")]
15635 pub status_id: Option<i64>,
15636 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
15637 #[serde(rename = "time")]
15638 #[serde(skip_serializing_if = "Option::is_none")]
15639 pub time: Option<i64>,
15640 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
15641 #[serde(rename = "time_dt")]
15642 #[serde(skip_serializing_if = "Option::is_none")]
15643 pub time_dt: Option<String>,
15644 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
15645 #[serde(rename = "timezone_offset")]
15646 #[serde(skip_serializing_if = "Option::is_none")]
15647 pub timezone_offset: Option<i64>,
15648 #[doc = "Total\n\nThe total number of items that were scanned; zero if no items were scanned.\n\nrecommended"]
15649 #[serde(rename = "total")]
15650 #[serde(skip_serializing_if = "Option::is_none")]
15651 pub total: Option<i64>,
15652 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
15653 #[serde(rename = "type_name")]
15654 #[serde(skip_serializing_if = "Option::is_none")]
15655 pub type_name: Option<String>,
15656 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
15657 #[serde(rename = "type_uid")]
15658 #[serde(skip_serializing_if = "Option::is_none")]
15659 pub type_uid: Option<i64>,
15660 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
15661 #[serde(rename = "unmapped")]
15662 #[serde(skip_serializing_if = "Option::is_none")]
15663 pub unmapped: Option<serde_json::Value>,
15664}
15665#[doc = "Scheduled Job Activity\n\nScheduled Job Activity events report activities related to scheduled jobs or tasks.\n\n[UID:1006] Category: system | Name: scheduled_job_activity"]
15666#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
15667#[serde(default)]
15668#[non_exhaustive]
15669pub struct ScheduledJobActivity {
15670 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
15671 #[serde(rename = "action")]
15672 #[serde(skip_serializing_if = "Option::is_none")]
15673 pub action: Option<String>,
15674 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
15675 #[serde(rename = "action_id")]
15676 #[serde(skip_serializing_if = "Option::is_none")]
15677 pub action_id: Option<i64>,
15678 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
15679 #[serde(rename = "activity_id")]
15680 #[serde(skip_serializing_if = "Option::is_none")]
15681 pub activity_id: Option<i64>,
15682 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
15683 #[serde(rename = "activity_name")]
15684 #[serde(skip_serializing_if = "Option::is_none")]
15685 pub activity_name: Option<String>,
15686 #[doc = "Actor\n\nThe actor that performed the activity on the <code>job</code> object.\n\noptional"]
15687 #[serde(rename = "actor")]
15688 #[serde(skip_serializing_if = "Option::is_none")]
15689 pub actor: Option<Box<Actor>>,
15690 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
15691 #[serde(rename = "api")]
15692 #[serde(skip_serializing_if = "Option::is_none")]
15693 pub api: Option<Box<Api>>,
15694 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
15695 #[serde(rename = "attacks")]
15696 #[serde(skip_serializing_if = "Option::is_none")]
15697 pub attacks: Option<Vec<Attack>>,
15698 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
15699 #[serde(rename = "authorizations")]
15700 #[serde(skip_serializing_if = "Option::is_none")]
15701 pub authorizations: Option<Vec<Authorization>>,
15702 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
15703 #[serde(rename = "category_name")]
15704 #[serde(skip_serializing_if = "Option::is_none")]
15705 pub category_name: Option<String>,
15706 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
15707 #[serde(rename = "category_uid")]
15708 #[serde(skip_serializing_if = "Option::is_none")]
15709 pub category_uid: Option<i64>,
15710 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Scheduled Job Activity</code>.\n\noptional"]
15711 #[serde(rename = "class_name")]
15712 #[serde(skip_serializing_if = "Option::is_none")]
15713 pub class_name: Option<String>,
15714 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
15715 #[serde(rename = "class_uid")]
15716 #[serde(skip_serializing_if = "Option::is_none")]
15717 pub class_uid: Option<i64>,
15718 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
15719 #[serde(rename = "cloud")]
15720 #[serde(skip_serializing_if = "Option::is_none")]
15721 pub cloud: Option<Box<Cloud>>,
15722 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15723 #[serde(rename = "confidence")]
15724 #[serde(skip_serializing_if = "Option::is_none")]
15725 pub confidence: Option<String>,
15726 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
15727 #[serde(rename = "confidence_id")]
15728 #[serde(skip_serializing_if = "Option::is_none")]
15729 pub confidence_id: Option<i64>,
15730 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
15731 #[serde(rename = "confidence_score")]
15732 #[serde(skip_serializing_if = "Option::is_none")]
15733 pub confidence_score: Option<i64>,
15734 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
15735 #[serde(rename = "count")]
15736 #[serde(skip_serializing_if = "Option::is_none")]
15737 pub count: Option<i64>,
15738 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
15739 #[serde(rename = "device")]
15740 #[serde(skip_serializing_if = "Option::is_none")]
15741 pub device: Option<Box<Device>>,
15742 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15743 #[serde(rename = "disposition")]
15744 #[serde(skip_serializing_if = "Option::is_none")]
15745 pub disposition: Option<String>,
15746 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
15747 #[serde(rename = "disposition_id")]
15748 #[serde(skip_serializing_if = "Option::is_none")]
15749 pub disposition_id: Option<i64>,
15750 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
15751 #[serde(rename = "duration")]
15752 #[serde(skip_serializing_if = "Option::is_none")]
15753 pub duration: Option<i64>,
15754 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15755 #[serde(rename = "end_time")]
15756 #[serde(skip_serializing_if = "Option::is_none")]
15757 pub end_time: Option<i64>,
15758 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15759 #[serde(rename = "end_time_dt")]
15760 #[serde(skip_serializing_if = "Option::is_none")]
15761 pub end_time_dt: Option<String>,
15762 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
15763 #[serde(rename = "enrichments")]
15764 #[serde(skip_serializing_if = "Option::is_none")]
15765 pub enrichments: Option<Vec<Enrichment>>,
15766 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
15767 #[serde(rename = "firewall_rule")]
15768 #[serde(skip_serializing_if = "Option::is_none")]
15769 pub firewall_rule: Option<Box<FirewallRule>>,
15770 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
15771 #[serde(rename = "is_alert")]
15772 #[serde(skip_serializing_if = "Option::is_none")]
15773 pub is_alert: Option<bool>,
15774 #[doc = "Job\n\nThe job object that pertains to the event.\n\nrequired"]
15775 #[serde(rename = "job")]
15776 #[serde(skip_serializing_if = "Option::is_none")]
15777 pub job: Option<Box<Job>>,
15778 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
15779 #[serde(rename = "malware")]
15780 #[serde(skip_serializing_if = "Option::is_none")]
15781 pub malware: Option<Vec<Malware>>,
15782 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
15783 #[serde(rename = "malware_scan_info")]
15784 #[serde(skip_serializing_if = "Option::is_none")]
15785 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
15786 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
15787 #[serde(rename = "message")]
15788 #[serde(skip_serializing_if = "Option::is_none")]
15789 pub message: Option<String>,
15790 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
15791 #[serde(rename = "metadata")]
15792 #[serde(skip_serializing_if = "Option::is_none")]
15793 pub metadata: Option<Box<Metadata>>,
15794 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
15795 #[serde(rename = "observables")]
15796 #[serde(skip_serializing_if = "Option::is_none")]
15797 pub observables: Option<Vec<Observable>>,
15798 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
15799 #[serde(rename = "osint")]
15800 #[serde(skip_serializing_if = "Option::is_none")]
15801 pub osint: Option<Vec<Osint>>,
15802 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
15803 #[serde(rename = "policy")]
15804 #[serde(skip_serializing_if = "Option::is_none")]
15805 pub policy: Option<Box<Policy>>,
15806 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
15807 #[serde(rename = "raw_data")]
15808 #[serde(skip_serializing_if = "Option::is_none")]
15809 pub raw_data: Option<String>,
15810 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
15811 #[serde(rename = "raw_data_hash")]
15812 #[serde(skip_serializing_if = "Option::is_none")]
15813 pub raw_data_hash: Option<Box<Fingerprint>>,
15814 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
15815 #[serde(rename = "raw_data_size")]
15816 #[serde(skip_serializing_if = "Option::is_none")]
15817 pub raw_data_size: Option<i64>,
15818 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
15819 #[serde(rename = "risk_details")]
15820 #[serde(skip_serializing_if = "Option::is_none")]
15821 pub risk_details: Option<String>,
15822 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
15823 #[serde(rename = "risk_level")]
15824 #[serde(skip_serializing_if = "Option::is_none")]
15825 pub risk_level: Option<String>,
15826 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
15827 #[serde(rename = "risk_level_id")]
15828 #[serde(skip_serializing_if = "Option::is_none")]
15829 pub risk_level_id: Option<i64>,
15830 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
15831 #[serde(rename = "risk_score")]
15832 #[serde(skip_serializing_if = "Option::is_none")]
15833 pub risk_score: Option<i64>,
15834 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
15835 #[serde(rename = "severity")]
15836 #[serde(skip_serializing_if = "Option::is_none")]
15837 pub severity: Option<String>,
15838 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
15839 #[serde(rename = "severity_id")]
15840 #[serde(skip_serializing_if = "Option::is_none")]
15841 pub severity_id: Option<i64>,
15842 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15843 #[serde(rename = "start_time")]
15844 #[serde(skip_serializing_if = "Option::is_none")]
15845 pub start_time: Option<i64>,
15846 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
15847 #[serde(rename = "start_time_dt")]
15848 #[serde(skip_serializing_if = "Option::is_none")]
15849 pub start_time_dt: Option<String>,
15850 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
15851 #[serde(rename = "status")]
15852 #[serde(skip_serializing_if = "Option::is_none")]
15853 pub status: Option<String>,
15854 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
15855 #[serde(rename = "status_code")]
15856 #[serde(skip_serializing_if = "Option::is_none")]
15857 pub status_code: Option<String>,
15858 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
15859 #[serde(rename = "status_detail")]
15860 #[serde(skip_serializing_if = "Option::is_none")]
15861 pub status_detail: Option<String>,
15862 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
15863 #[serde(rename = "status_id")]
15864 #[serde(skip_serializing_if = "Option::is_none")]
15865 pub status_id: Option<i64>,
15866 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
15867 #[serde(rename = "time")]
15868 #[serde(skip_serializing_if = "Option::is_none")]
15869 pub time: Option<i64>,
15870 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
15871 #[serde(rename = "time_dt")]
15872 #[serde(skip_serializing_if = "Option::is_none")]
15873 pub time_dt: Option<String>,
15874 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
15875 #[serde(rename = "timezone_offset")]
15876 #[serde(skip_serializing_if = "Option::is_none")]
15877 pub timezone_offset: Option<i64>,
15878 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
15879 #[serde(rename = "type_name")]
15880 #[serde(skip_serializing_if = "Option::is_none")]
15881 pub type_name: Option<String>,
15882 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
15883 #[serde(rename = "type_uid")]
15884 #[serde(skip_serializing_if = "Option::is_none")]
15885 pub type_uid: Option<i64>,
15886 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
15887 #[serde(rename = "unmapped")]
15888 #[serde(skip_serializing_if = "Option::is_none")]
15889 pub unmapped: Option<serde_json::Value>,
15890}
15891#[doc = "Script Activity\n\nScript Activity events report when a process executes a script.\n\n[UID:1009] Category: system | Name: script_activity"]
15892#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
15893#[serde(default)]
15894#[non_exhaustive]
15895pub struct ScriptActivity {
15896 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
15897 #[serde(rename = "action")]
15898 #[serde(skip_serializing_if = "Option::is_none")]
15899 pub action: Option<String>,
15900 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
15901 #[serde(rename = "action_id")]
15902 #[serde(skip_serializing_if = "Option::is_none")]
15903 pub action_id: Option<i64>,
15904 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
15905 #[serde(rename = "activity_id")]
15906 #[serde(skip_serializing_if = "Option::is_none")]
15907 pub activity_id: Option<i64>,
15908 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
15909 #[serde(rename = "activity_name")]
15910 #[serde(skip_serializing_if = "Option::is_none")]
15911 pub activity_name: Option<String>,
15912 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
15913 #[serde(rename = "actor")]
15914 #[serde(skip_serializing_if = "Option::is_none")]
15915 pub actor: Option<Box<Actor>>,
15916 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
15917 #[serde(rename = "api")]
15918 #[serde(skip_serializing_if = "Option::is_none")]
15919 pub api: Option<Box<Api>>,
15920 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
15921 #[serde(rename = "attacks")]
15922 #[serde(skip_serializing_if = "Option::is_none")]
15923 pub attacks: Option<Vec<Attack>>,
15924 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
15925 #[serde(rename = "authorizations")]
15926 #[serde(skip_serializing_if = "Option::is_none")]
15927 pub authorizations: Option<Vec<Authorization>>,
15928 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
15929 #[serde(rename = "category_name")]
15930 #[serde(skip_serializing_if = "Option::is_none")]
15931 pub category_name: Option<String>,
15932 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
15933 #[serde(rename = "category_uid")]
15934 #[serde(skip_serializing_if = "Option::is_none")]
15935 pub category_uid: Option<i64>,
15936 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Script Activity</code>.\n\noptional"]
15937 #[serde(rename = "class_name")]
15938 #[serde(skip_serializing_if = "Option::is_none")]
15939 pub class_name: Option<String>,
15940 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
15941 #[serde(rename = "class_uid")]
15942 #[serde(skip_serializing_if = "Option::is_none")]
15943 pub class_uid: Option<i64>,
15944 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
15945 #[serde(rename = "cloud")]
15946 #[serde(skip_serializing_if = "Option::is_none")]
15947 pub cloud: Option<Box<Cloud>>,
15948 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15949 #[serde(rename = "confidence")]
15950 #[serde(skip_serializing_if = "Option::is_none")]
15951 pub confidence: Option<String>,
15952 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
15953 #[serde(rename = "confidence_id")]
15954 #[serde(skip_serializing_if = "Option::is_none")]
15955 pub confidence_id: Option<i64>,
15956 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
15957 #[serde(rename = "confidence_score")]
15958 #[serde(skip_serializing_if = "Option::is_none")]
15959 pub confidence_score: Option<i64>,
15960 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
15961 #[serde(rename = "count")]
15962 #[serde(skip_serializing_if = "Option::is_none")]
15963 pub count: Option<i64>,
15964 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
15965 #[serde(rename = "device")]
15966 #[serde(skip_serializing_if = "Option::is_none")]
15967 pub device: Option<Box<Device>>,
15968 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
15969 #[serde(rename = "disposition")]
15970 #[serde(skip_serializing_if = "Option::is_none")]
15971 pub disposition: Option<String>,
15972 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
15973 #[serde(rename = "disposition_id")]
15974 #[serde(skip_serializing_if = "Option::is_none")]
15975 pub disposition_id: Option<i64>,
15976 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
15977 #[serde(rename = "duration")]
15978 #[serde(skip_serializing_if = "Option::is_none")]
15979 pub duration: Option<i64>,
15980 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15981 #[serde(rename = "end_time")]
15982 #[serde(skip_serializing_if = "Option::is_none")]
15983 pub end_time: Option<i64>,
15984 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
15985 #[serde(rename = "end_time_dt")]
15986 #[serde(skip_serializing_if = "Option::is_none")]
15987 pub end_time_dt: Option<String>,
15988 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
15989 #[serde(rename = "enrichments")]
15990 #[serde(skip_serializing_if = "Option::is_none")]
15991 pub enrichments: Option<Vec<Enrichment>>,
15992 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
15993 #[serde(rename = "firewall_rule")]
15994 #[serde(skip_serializing_if = "Option::is_none")]
15995 pub firewall_rule: Option<Box<FirewallRule>>,
15996 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
15997 #[serde(rename = "is_alert")]
15998 #[serde(skip_serializing_if = "Option::is_none")]
15999 pub is_alert: Option<bool>,
16000 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
16001 #[serde(rename = "malware")]
16002 #[serde(skip_serializing_if = "Option::is_none")]
16003 pub malware: Option<Vec<Malware>>,
16004 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
16005 #[serde(rename = "malware_scan_info")]
16006 #[serde(skip_serializing_if = "Option::is_none")]
16007 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
16008 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
16009 #[serde(rename = "message")]
16010 #[serde(skip_serializing_if = "Option::is_none")]
16011 pub message: Option<String>,
16012 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
16013 #[serde(rename = "metadata")]
16014 #[serde(skip_serializing_if = "Option::is_none")]
16015 pub metadata: Option<Box<Metadata>>,
16016 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
16017 #[serde(rename = "observables")]
16018 #[serde(skip_serializing_if = "Option::is_none")]
16019 pub observables: Option<Vec<Observable>>,
16020 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
16021 #[serde(rename = "osint")]
16022 #[serde(skip_serializing_if = "Option::is_none")]
16023 pub osint: Option<Vec<Osint>>,
16024 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
16025 #[serde(rename = "policy")]
16026 #[serde(skip_serializing_if = "Option::is_none")]
16027 pub policy: Option<Box<Policy>>,
16028 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
16029 #[serde(rename = "raw_data")]
16030 #[serde(skip_serializing_if = "Option::is_none")]
16031 pub raw_data: Option<String>,
16032 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
16033 #[serde(rename = "raw_data_hash")]
16034 #[serde(skip_serializing_if = "Option::is_none")]
16035 pub raw_data_hash: Option<Box<Fingerprint>>,
16036 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
16037 #[serde(rename = "raw_data_size")]
16038 #[serde(skip_serializing_if = "Option::is_none")]
16039 pub raw_data_size: Option<i64>,
16040 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
16041 #[serde(rename = "risk_details")]
16042 #[serde(skip_serializing_if = "Option::is_none")]
16043 pub risk_details: Option<String>,
16044 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
16045 #[serde(rename = "risk_level")]
16046 #[serde(skip_serializing_if = "Option::is_none")]
16047 pub risk_level: Option<String>,
16048 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
16049 #[serde(rename = "risk_level_id")]
16050 #[serde(skip_serializing_if = "Option::is_none")]
16051 pub risk_level_id: Option<i64>,
16052 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
16053 #[serde(rename = "risk_score")]
16054 #[serde(skip_serializing_if = "Option::is_none")]
16055 pub risk_score: Option<i64>,
16056 #[doc = "Script\n\nThe script that was the target of the activity.\n\nrequired"]
16057 #[serde(rename = "script")]
16058 #[serde(skip_serializing_if = "Option::is_none")]
16059 pub script: Option<Box<Script>>,
16060 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
16061 #[serde(rename = "severity")]
16062 #[serde(skip_serializing_if = "Option::is_none")]
16063 pub severity: Option<String>,
16064 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
16065 #[serde(rename = "severity_id")]
16066 #[serde(skip_serializing_if = "Option::is_none")]
16067 pub severity_id: Option<i64>,
16068 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16069 #[serde(rename = "start_time")]
16070 #[serde(skip_serializing_if = "Option::is_none")]
16071 pub start_time: Option<i64>,
16072 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16073 #[serde(rename = "start_time_dt")]
16074 #[serde(skip_serializing_if = "Option::is_none")]
16075 pub start_time_dt: Option<String>,
16076 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16077 #[serde(rename = "status")]
16078 #[serde(skip_serializing_if = "Option::is_none")]
16079 pub status: Option<String>,
16080 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
16081 #[serde(rename = "status_code")]
16082 #[serde(skip_serializing_if = "Option::is_none")]
16083 pub status_code: Option<String>,
16084 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
16085 #[serde(rename = "status_detail")]
16086 #[serde(skip_serializing_if = "Option::is_none")]
16087 pub status_detail: Option<String>,
16088 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
16089 #[serde(rename = "status_id")]
16090 #[serde(skip_serializing_if = "Option::is_none")]
16091 pub status_id: Option<i64>,
16092 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
16093 #[serde(rename = "time")]
16094 #[serde(skip_serializing_if = "Option::is_none")]
16095 pub time: Option<i64>,
16096 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
16097 #[serde(rename = "time_dt")]
16098 #[serde(skip_serializing_if = "Option::is_none")]
16099 pub time_dt: Option<String>,
16100 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
16101 #[serde(rename = "timezone_offset")]
16102 #[serde(skip_serializing_if = "Option::is_none")]
16103 pub timezone_offset: Option<i64>,
16104 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
16105 #[serde(rename = "type_name")]
16106 #[serde(skip_serializing_if = "Option::is_none")]
16107 pub type_name: Option<String>,
16108 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
16109 #[serde(rename = "type_uid")]
16110 #[serde(skip_serializing_if = "Option::is_none")]
16111 pub type_uid: Option<i64>,
16112 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
16113 #[serde(rename = "unmapped")]
16114 #[serde(skip_serializing_if = "Option::is_none")]
16115 pub unmapped: Option<serde_json::Value>,
16116}
16117#[doc = "Security Finding\n\nSecurity Finding events describe findings, detections, anomalies, alerts and/or actions performed by security products\n\n[UID:2001] Category: findings | Name: security_finding"]
16118#[deprecated(
16119 note = "Use the new specific classes according to the use-case: <code>Vulnerability Finding, Compliance Finding, Detection Finding, Incident Finding, Data Security Finding.</code> (Since 1.1.0)"
16120)]
16121#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
16122#[serde(default)]
16123#[non_exhaustive]
16124pub struct SecurityFinding {
16125 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
16126 #[serde(rename = "action")]
16127 #[serde(skip_serializing_if = "Option::is_none")]
16128 pub action: Option<String>,
16129 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
16130 #[serde(rename = "action_id")]
16131 #[serde(skip_serializing_if = "Option::is_none")]
16132 pub action_id: Option<i64>,
16133 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
16134 #[serde(rename = "activity_id")]
16135 #[serde(skip_serializing_if = "Option::is_none")]
16136 pub activity_id: Option<i64>,
16137 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
16138 #[serde(rename = "activity_name")]
16139 #[serde(skip_serializing_if = "Option::is_none")]
16140 pub activity_name: Option<String>,
16141 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
16142 #[serde(rename = "actor")]
16143 #[serde(skip_serializing_if = "Option::is_none")]
16144 pub actor: Option<Box<Actor>>,
16145 #[doc = "Analytic\n\nThe analytic technique used to analyze and derive insights from the data or information that led to the finding or conclusion.\n\nrecommended"]
16146 #[serde(rename = "analytic")]
16147 #[serde(skip_serializing_if = "Option::is_none")]
16148 pub analytic: Option<Box<Analytic>>,
16149 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
16150 #[serde(rename = "api")]
16151 #[serde(skip_serializing_if = "Option::is_none")]
16152 pub api: Option<Box<Api>>,
16153 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of <a target='_blank' href='https://attack.mitre.org'>MITRE ATT&CK®</a> objects describing the tactics, techniques & sub-techniques associated to the Finding.\n\noptional"]
16154 #[serde(rename = "attacks")]
16155 #[serde(skip_serializing_if = "Option::is_none")]
16156 pub attacks: Option<Vec<Attack>>,
16157 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
16158 #[serde(rename = "authorizations")]
16159 #[serde(skip_serializing_if = "Option::is_none")]
16160 pub authorizations: Option<Vec<Authorization>>,
16161 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
16162 #[serde(rename = "category_name")]
16163 #[serde(skip_serializing_if = "Option::is_none")]
16164 pub category_name: Option<String>,
16165 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
16166 #[serde(rename = "category_uid")]
16167 #[serde(skip_serializing_if = "Option::is_none")]
16168 pub category_uid: Option<i64>,
16169 #[doc = "CIS CSC\n\nThe CIS Critical Security Controls is a list of top 20 actions and practices an organization’s security team can take on such that cyber attacks or malware, are minimized and prevented.\n\noptional"]
16170 #[serde(rename = "cis_csc")]
16171 #[serde(skip_serializing_if = "Option::is_none")]
16172 pub cis_csc: Option<Vec<CisCsc>>,
16173 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Security Finding</code>.\n\noptional"]
16174 #[serde(rename = "class_name")]
16175 #[serde(skip_serializing_if = "Option::is_none")]
16176 pub class_name: Option<String>,
16177 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
16178 #[serde(rename = "class_uid")]
16179 #[serde(skip_serializing_if = "Option::is_none")]
16180 pub class_uid: Option<i64>,
16181 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
16182 #[serde(rename = "cloud")]
16183 #[serde(skip_serializing_if = "Option::is_none")]
16184 pub cloud: Option<Box<Cloud>>,
16185 #[doc = "Compliance\n\nThe compliance object provides context to compliance findings (e.g., a check against a specific regulatory or best practice framework such as CIS, NIST etc.) and contains compliance related details.\n\noptional"]
16186 #[serde(rename = "compliance")]
16187 #[serde(skip_serializing_if = "Option::is_none")]
16188 pub compliance: Option<Box<Compliance>>,
16189 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16190 #[serde(rename = "confidence")]
16191 #[serde(skip_serializing_if = "Option::is_none")]
16192 pub confidence: Option<String>,
16193 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
16194 #[serde(rename = "confidence_id")]
16195 #[serde(skip_serializing_if = "Option::is_none")]
16196 pub confidence_id: Option<i64>,
16197 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\nrecommended"]
16198 #[serde(rename = "confidence_score")]
16199 #[serde(skip_serializing_if = "Option::is_none")]
16200 pub confidence_score: Option<i64>,
16201 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
16202 #[serde(rename = "count")]
16203 #[serde(skip_serializing_if = "Option::is_none")]
16204 pub count: Option<i64>,
16205 #[doc = "Data Sources\n\nA list of data sources utilized in generation of the finding.\n\noptional"]
16206 #[serde(rename = "data_sources")]
16207 #[serde(skip_serializing_if = "Option::is_none")]
16208 pub data_sources: Option<Vec<String>>,
16209 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
16210 #[serde(rename = "device")]
16211 #[serde(skip_serializing_if = "Option::is_none")]
16212 pub device: Option<Box<Device>>,
16213 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16214 #[serde(rename = "disposition")]
16215 #[serde(skip_serializing_if = "Option::is_none")]
16216 pub disposition: Option<String>,
16217 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
16218 #[serde(rename = "disposition_id")]
16219 #[serde(skip_serializing_if = "Option::is_none")]
16220 pub disposition_id: Option<i64>,
16221 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
16222 #[serde(rename = "duration")]
16223 #[serde(skip_serializing_if = "Option::is_none")]
16224 pub duration: Option<i64>,
16225 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16226 #[serde(rename = "end_time")]
16227 #[serde(skip_serializing_if = "Option::is_none")]
16228 pub end_time: Option<i64>,
16229 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16230 #[serde(rename = "end_time_dt")]
16231 #[serde(skip_serializing_if = "Option::is_none")]
16232 pub end_time_dt: Option<String>,
16233 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
16234 #[serde(rename = "enrichments")]
16235 #[serde(skip_serializing_if = "Option::is_none")]
16236 pub enrichments: Option<Vec<Enrichment>>,
16237 #[doc = "Evidence\n\nThe data the finding exposes to the analyst.\n\noptional"]
16238 #[serde(rename = "evidence")]
16239 #[serde(skip_serializing_if = "Option::is_none")]
16240 pub evidence: Option<serde_json::Value>,
16241 #[doc = "Finding\n\nThe Finding object provides details about a finding/detection generated by a security tool.\n\nrequired"]
16242 #[serde(rename = "finding")]
16243 #[serde(skip_serializing_if = "Option::is_none")]
16244 pub finding: Option<Box<Finding>>,
16245 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
16246 #[serde(rename = "firewall_rule")]
16247 #[serde(skip_serializing_if = "Option::is_none")]
16248 pub firewall_rule: Option<Box<FirewallRule>>,
16249 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16250 #[serde(rename = "impact")]
16251 #[serde(skip_serializing_if = "Option::is_none")]
16252 pub impact: Option<String>,
16253 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
16254 #[serde(rename = "impact_id")]
16255 #[serde(skip_serializing_if = "Option::is_none")]
16256 pub impact_id: Option<i64>,
16257 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
16258 #[serde(rename = "impact_score")]
16259 #[serde(skip_serializing_if = "Option::is_none")]
16260 pub impact_score: Option<i64>,
16261 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
16262 #[serde(rename = "is_alert")]
16263 #[serde(skip_serializing_if = "Option::is_none")]
16264 pub is_alert: Option<bool>,
16265 #[doc = "Kill Chain\n\nThe <a target='_blank' href='https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html'>Cyber Kill Chain®</a> provides a detailed description of each phase and its associated activities within the broader context of a cyber attack.\n\noptional"]
16266 #[serde(rename = "kill_chain")]
16267 #[serde(skip_serializing_if = "Option::is_none")]
16268 pub kill_chain: Option<Vec<KillChainPhase>>,
16269 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
16270 #[serde(rename = "malware")]
16271 #[serde(skip_serializing_if = "Option::is_none")]
16272 pub malware: Option<Vec<Malware>>,
16273 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
16274 #[serde(rename = "malware_scan_info")]
16275 #[serde(skip_serializing_if = "Option::is_none")]
16276 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
16277 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
16278 #[serde(rename = "message")]
16279 #[serde(skip_serializing_if = "Option::is_none")]
16280 pub message: Option<String>,
16281 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
16282 #[serde(rename = "metadata")]
16283 #[serde(skip_serializing_if = "Option::is_none")]
16284 pub metadata: Option<Box<Metadata>>,
16285 #[doc = "NIST List\n\nThe NIST Cybersecurity Framework recommendations for managing the cybersecurity risk.\n\noptional"]
16286 #[serde(rename = "nist")]
16287 #[serde(skip_serializing_if = "Option::is_none")]
16288 pub nist: Option<Vec<String>>,
16289 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
16290 #[serde(rename = "observables")]
16291 #[serde(skip_serializing_if = "Option::is_none")]
16292 pub observables: Option<Vec<Observable>>,
16293 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
16294 #[serde(rename = "osint")]
16295 #[serde(skip_serializing_if = "Option::is_none")]
16296 pub osint: Option<Vec<Osint>>,
16297 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
16298 #[serde(rename = "policy")]
16299 #[serde(skip_serializing_if = "Option::is_none")]
16300 pub policy: Option<Box<Policy>>,
16301 #[doc = "Process\n\nThe process object.\n\noptional"]
16302 #[serde(rename = "process")]
16303 #[serde(skip_serializing_if = "Option::is_none")]
16304 pub process: Option<Box<Process>>,
16305 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
16306 #[serde(rename = "raw_data")]
16307 #[serde(skip_serializing_if = "Option::is_none")]
16308 pub raw_data: Option<String>,
16309 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
16310 #[serde(rename = "raw_data_hash")]
16311 #[serde(skip_serializing_if = "Option::is_none")]
16312 pub raw_data_hash: Option<Box<Fingerprint>>,
16313 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
16314 #[serde(rename = "raw_data_size")]
16315 #[serde(skip_serializing_if = "Option::is_none")]
16316 pub raw_data_size: Option<i64>,
16317 #[doc = "Resources Array\n\nDescribes details about resources that were affected by the activity/event.\n\nrecommended"]
16318 #[serde(rename = "resources")]
16319 #[serde(skip_serializing_if = "Option::is_none")]
16320 pub resources: Option<Vec<ResourceDetails>>,
16321 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
16322 #[serde(rename = "risk_details")]
16323 #[serde(skip_serializing_if = "Option::is_none")]
16324 pub risk_details: Option<String>,
16325 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\nrecommended"]
16326 #[serde(rename = "risk_level")]
16327 #[serde(skip_serializing_if = "Option::is_none")]
16328 pub risk_level: Option<String>,
16329 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\nrecommended"]
16330 #[serde(rename = "risk_level_id")]
16331 #[serde(skip_serializing_if = "Option::is_none")]
16332 pub risk_level_id: Option<i64>,
16333 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\nrecommended"]
16334 #[serde(rename = "risk_score")]
16335 #[serde(skip_serializing_if = "Option::is_none")]
16336 pub risk_score: Option<i64>,
16337 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
16338 #[serde(rename = "severity")]
16339 #[serde(skip_serializing_if = "Option::is_none")]
16340 pub severity: Option<String>,
16341 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
16342 #[serde(rename = "severity_id")]
16343 #[serde(skip_serializing_if = "Option::is_none")]
16344 pub severity_id: Option<i64>,
16345 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16346 #[serde(rename = "start_time")]
16347 #[serde(skip_serializing_if = "Option::is_none")]
16348 pub start_time: Option<i64>,
16349 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16350 #[serde(rename = "start_time_dt")]
16351 #[serde(skip_serializing_if = "Option::is_none")]
16352 pub start_time_dt: Option<String>,
16353 #[doc = "State\n\nThe normalized state of a security finding.\n\noptional"]
16354 #[serde(rename = "state")]
16355 #[serde(skip_serializing_if = "Option::is_none")]
16356 pub state: Option<String>,
16357 #[doc = "State ID\n\nThe normalized state identifier of a security finding.\n\nrequired"]
16358 #[serde(rename = "state_id")]
16359 #[serde(skip_serializing_if = "Option::is_none")]
16360 pub state_id: Option<i64>,
16361 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16362 #[serde(rename = "status")]
16363 #[serde(skip_serializing_if = "Option::is_none")]
16364 pub status: Option<String>,
16365 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
16366 #[serde(rename = "status_code")]
16367 #[serde(skip_serializing_if = "Option::is_none")]
16368 pub status_code: Option<String>,
16369 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
16370 #[serde(rename = "status_detail")]
16371 #[serde(skip_serializing_if = "Option::is_none")]
16372 pub status_detail: Option<String>,
16373 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
16374 #[serde(rename = "status_id")]
16375 #[serde(skip_serializing_if = "Option::is_none")]
16376 pub status_id: Option<i64>,
16377 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
16378 #[serde(rename = "time")]
16379 #[serde(skip_serializing_if = "Option::is_none")]
16380 pub time: Option<i64>,
16381 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
16382 #[serde(rename = "time_dt")]
16383 #[serde(skip_serializing_if = "Option::is_none")]
16384 pub time_dt: Option<String>,
16385 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
16386 #[serde(rename = "timezone_offset")]
16387 #[serde(skip_serializing_if = "Option::is_none")]
16388 pub timezone_offset: Option<i64>,
16389 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
16390 #[serde(rename = "type_name")]
16391 #[serde(skip_serializing_if = "Option::is_none")]
16392 pub type_name: Option<String>,
16393 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
16394 #[serde(rename = "type_uid")]
16395 #[serde(skip_serializing_if = "Option::is_none")]
16396 pub type_uid: Option<i64>,
16397 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
16398 #[serde(rename = "unmapped")]
16399 #[serde(skip_serializing_if = "Option::is_none")]
16400 pub unmapped: Option<serde_json::Value>,
16401 #[doc = "Vulnerabilities\n\nThis object describes vulnerabilities reported in a security finding.\n\noptional"]
16402 #[serde(rename = "vulnerabilities")]
16403 #[serde(skip_serializing_if = "Option::is_none")]
16404 pub vulnerabilities: Option<Vec<Vulnerability>>,
16405}
16406#[doc = "Service Query\n\nService Query events report information about running services.\n\n[UID:5016] Category: discovery | Name: service_query"]
16407#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
16408#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
16409#[serde(default)]
16410#[non_exhaustive]
16411pub struct ServiceQuery {
16412 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
16413 #[serde(rename = "action")]
16414 #[serde(skip_serializing_if = "Option::is_none")]
16415 pub action: Option<String>,
16416 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
16417 #[serde(rename = "action_id")]
16418 #[serde(skip_serializing_if = "Option::is_none")]
16419 pub action_id: Option<i64>,
16420 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
16421 #[serde(rename = "activity_id")]
16422 #[serde(skip_serializing_if = "Option::is_none")]
16423 pub activity_id: Option<i64>,
16424 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
16425 #[serde(rename = "activity_name")]
16426 #[serde(skip_serializing_if = "Option::is_none")]
16427 pub activity_name: Option<String>,
16428 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
16429 #[serde(rename = "actor")]
16430 #[serde(skip_serializing_if = "Option::is_none")]
16431 pub actor: Option<Box<Actor>>,
16432 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
16433 #[serde(rename = "api")]
16434 #[serde(skip_serializing_if = "Option::is_none")]
16435 pub api: Option<Box<Api>>,
16436 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
16437 #[serde(rename = "attacks")]
16438 #[serde(skip_serializing_if = "Option::is_none")]
16439 pub attacks: Option<Vec<Attack>>,
16440 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
16441 #[serde(rename = "authorizations")]
16442 #[serde(skip_serializing_if = "Option::is_none")]
16443 pub authorizations: Option<Vec<Authorization>>,
16444 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
16445 #[serde(rename = "category_name")]
16446 #[serde(skip_serializing_if = "Option::is_none")]
16447 pub category_name: Option<String>,
16448 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
16449 #[serde(rename = "category_uid")]
16450 #[serde(skip_serializing_if = "Option::is_none")]
16451 pub category_uid: Option<i64>,
16452 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Service Query</code>.\n\noptional"]
16453 #[serde(rename = "class_name")]
16454 #[serde(skip_serializing_if = "Option::is_none")]
16455 pub class_name: Option<String>,
16456 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
16457 #[serde(rename = "class_uid")]
16458 #[serde(skip_serializing_if = "Option::is_none")]
16459 pub class_uid: Option<i64>,
16460 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
16461 #[serde(rename = "cloud")]
16462 #[serde(skip_serializing_if = "Option::is_none")]
16463 pub cloud: Option<Box<Cloud>>,
16464 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16465 #[serde(rename = "confidence")]
16466 #[serde(skip_serializing_if = "Option::is_none")]
16467 pub confidence: Option<String>,
16468 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
16469 #[serde(rename = "confidence_id")]
16470 #[serde(skip_serializing_if = "Option::is_none")]
16471 pub confidence_id: Option<i64>,
16472 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
16473 #[serde(rename = "confidence_score")]
16474 #[serde(skip_serializing_if = "Option::is_none")]
16475 pub confidence_score: Option<i64>,
16476 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
16477 #[serde(rename = "count")]
16478 #[serde(skip_serializing_if = "Option::is_none")]
16479 pub count: Option<i64>,
16480 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
16481 #[serde(rename = "device")]
16482 #[serde(skip_serializing_if = "Option::is_none")]
16483 pub device: Option<Box<Device>>,
16484 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16485 #[serde(rename = "disposition")]
16486 #[serde(skip_serializing_if = "Option::is_none")]
16487 pub disposition: Option<String>,
16488 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
16489 #[serde(rename = "disposition_id")]
16490 #[serde(skip_serializing_if = "Option::is_none")]
16491 pub disposition_id: Option<i64>,
16492 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
16493 #[serde(rename = "duration")]
16494 #[serde(skip_serializing_if = "Option::is_none")]
16495 pub duration: Option<i64>,
16496 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16497 #[serde(rename = "end_time")]
16498 #[serde(skip_serializing_if = "Option::is_none")]
16499 pub end_time: Option<i64>,
16500 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16501 #[serde(rename = "end_time_dt")]
16502 #[serde(skip_serializing_if = "Option::is_none")]
16503 pub end_time_dt: Option<String>,
16504 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
16505 #[serde(rename = "enrichments")]
16506 #[serde(skip_serializing_if = "Option::is_none")]
16507 pub enrichments: Option<Vec<Enrichment>>,
16508 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
16509 #[serde(rename = "firewall_rule")]
16510 #[serde(skip_serializing_if = "Option::is_none")]
16511 pub firewall_rule: Option<Box<FirewallRule>>,
16512 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
16513 #[serde(rename = "is_alert")]
16514 #[serde(skip_serializing_if = "Option::is_none")]
16515 pub is_alert: Option<bool>,
16516 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
16517 #[serde(rename = "malware")]
16518 #[serde(skip_serializing_if = "Option::is_none")]
16519 pub malware: Option<Vec<Malware>>,
16520 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
16521 #[serde(rename = "malware_scan_info")]
16522 #[serde(skip_serializing_if = "Option::is_none")]
16523 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
16524 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
16525 #[serde(rename = "message")]
16526 #[serde(skip_serializing_if = "Option::is_none")]
16527 pub message: Option<String>,
16528 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
16529 #[serde(rename = "metadata")]
16530 #[serde(skip_serializing_if = "Option::is_none")]
16531 pub metadata: Option<Box<Metadata>>,
16532 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
16533 #[serde(rename = "observables")]
16534 #[serde(skip_serializing_if = "Option::is_none")]
16535 pub observables: Option<Vec<Observable>>,
16536 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
16537 #[serde(rename = "osint")]
16538 #[serde(skip_serializing_if = "Option::is_none")]
16539 pub osint: Option<Vec<Osint>>,
16540 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
16541 #[serde(rename = "policy")]
16542 #[serde(skip_serializing_if = "Option::is_none")]
16543 pub policy: Option<Box<Policy>>,
16544 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
16545 #[serde(rename = "query_info")]
16546 #[serde(skip_serializing_if = "Option::is_none")]
16547 pub query_info: Option<Box<QueryInfo>>,
16548 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
16549 #[serde(rename = "query_result")]
16550 #[serde(skip_serializing_if = "Option::is_none")]
16551 pub query_result: Option<String>,
16552 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
16553 #[serde(rename = "query_result_id")]
16554 #[serde(skip_serializing_if = "Option::is_none")]
16555 pub query_result_id: Option<i64>,
16556 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
16557 #[serde(rename = "raw_data")]
16558 #[serde(skip_serializing_if = "Option::is_none")]
16559 pub raw_data: Option<String>,
16560 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
16561 #[serde(rename = "raw_data_hash")]
16562 #[serde(skip_serializing_if = "Option::is_none")]
16563 pub raw_data_hash: Option<Box<Fingerprint>>,
16564 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
16565 #[serde(rename = "raw_data_size")]
16566 #[serde(skip_serializing_if = "Option::is_none")]
16567 pub raw_data_size: Option<i64>,
16568 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
16569 #[serde(rename = "risk_details")]
16570 #[serde(skip_serializing_if = "Option::is_none")]
16571 pub risk_details: Option<String>,
16572 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
16573 #[serde(rename = "risk_level")]
16574 #[serde(skip_serializing_if = "Option::is_none")]
16575 pub risk_level: Option<String>,
16576 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
16577 #[serde(rename = "risk_level_id")]
16578 #[serde(skip_serializing_if = "Option::is_none")]
16579 pub risk_level_id: Option<i64>,
16580 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
16581 #[serde(rename = "risk_score")]
16582 #[serde(skip_serializing_if = "Option::is_none")]
16583 pub risk_score: Option<i64>,
16584 #[doc = "Service\n\nThe service that pertains to the event.\n\nrequired"]
16585 #[serde(rename = "service")]
16586 #[serde(skip_serializing_if = "Option::is_none")]
16587 pub service: Option<Box<Service>>,
16588 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
16589 #[serde(rename = "severity")]
16590 #[serde(skip_serializing_if = "Option::is_none")]
16591 pub severity: Option<String>,
16592 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
16593 #[serde(rename = "severity_id")]
16594 #[serde(skip_serializing_if = "Option::is_none")]
16595 pub severity_id: Option<i64>,
16596 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16597 #[serde(rename = "start_time")]
16598 #[serde(skip_serializing_if = "Option::is_none")]
16599 pub start_time: Option<i64>,
16600 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16601 #[serde(rename = "start_time_dt")]
16602 #[serde(skip_serializing_if = "Option::is_none")]
16603 pub start_time_dt: Option<String>,
16604 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16605 #[serde(rename = "status")]
16606 #[serde(skip_serializing_if = "Option::is_none")]
16607 pub status: Option<String>,
16608 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
16609 #[serde(rename = "status_code")]
16610 #[serde(skip_serializing_if = "Option::is_none")]
16611 pub status_code: Option<String>,
16612 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
16613 #[serde(rename = "status_detail")]
16614 #[serde(skip_serializing_if = "Option::is_none")]
16615 pub status_detail: Option<String>,
16616 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
16617 #[serde(rename = "status_id")]
16618 #[serde(skip_serializing_if = "Option::is_none")]
16619 pub status_id: Option<i64>,
16620 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
16621 #[serde(rename = "time")]
16622 #[serde(skip_serializing_if = "Option::is_none")]
16623 pub time: Option<i64>,
16624 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
16625 #[serde(rename = "time_dt")]
16626 #[serde(skip_serializing_if = "Option::is_none")]
16627 pub time_dt: Option<String>,
16628 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
16629 #[serde(rename = "timezone_offset")]
16630 #[serde(skip_serializing_if = "Option::is_none")]
16631 pub timezone_offset: Option<i64>,
16632 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
16633 #[serde(rename = "type_name")]
16634 #[serde(skip_serializing_if = "Option::is_none")]
16635 pub type_name: Option<String>,
16636 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
16637 #[serde(rename = "type_uid")]
16638 #[serde(skip_serializing_if = "Option::is_none")]
16639 pub type_uid: Option<i64>,
16640 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
16641 #[serde(rename = "unmapped")]
16642 #[serde(skip_serializing_if = "Option::is_none")]
16643 pub unmapped: Option<serde_json::Value>,
16644}
16645#[doc = "User Session Query\n\nUser Session Query events report information about existing user sessions.\n\n[UID:5017] Category: discovery | Name: session_query"]
16646#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
16647#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
16648#[serde(default)]
16649#[non_exhaustive]
16650pub struct SessionQuery {
16651 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
16652 #[serde(rename = "action")]
16653 #[serde(skip_serializing_if = "Option::is_none")]
16654 pub action: Option<String>,
16655 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
16656 #[serde(rename = "action_id")]
16657 #[serde(skip_serializing_if = "Option::is_none")]
16658 pub action_id: Option<i64>,
16659 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
16660 #[serde(rename = "activity_id")]
16661 #[serde(skip_serializing_if = "Option::is_none")]
16662 pub activity_id: Option<i64>,
16663 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
16664 #[serde(rename = "activity_name")]
16665 #[serde(skip_serializing_if = "Option::is_none")]
16666 pub activity_name: Option<String>,
16667 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
16668 #[serde(rename = "actor")]
16669 #[serde(skip_serializing_if = "Option::is_none")]
16670 pub actor: Option<Box<Actor>>,
16671 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
16672 #[serde(rename = "api")]
16673 #[serde(skip_serializing_if = "Option::is_none")]
16674 pub api: Option<Box<Api>>,
16675 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
16676 #[serde(rename = "attacks")]
16677 #[serde(skip_serializing_if = "Option::is_none")]
16678 pub attacks: Option<Vec<Attack>>,
16679 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
16680 #[serde(rename = "authorizations")]
16681 #[serde(skip_serializing_if = "Option::is_none")]
16682 pub authorizations: Option<Vec<Authorization>>,
16683 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
16684 #[serde(rename = "category_name")]
16685 #[serde(skip_serializing_if = "Option::is_none")]
16686 pub category_name: Option<String>,
16687 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
16688 #[serde(rename = "category_uid")]
16689 #[serde(skip_serializing_if = "Option::is_none")]
16690 pub category_uid: Option<i64>,
16691 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>User Session Query</code>.\n\noptional"]
16692 #[serde(rename = "class_name")]
16693 #[serde(skip_serializing_if = "Option::is_none")]
16694 pub class_name: Option<String>,
16695 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
16696 #[serde(rename = "class_uid")]
16697 #[serde(skip_serializing_if = "Option::is_none")]
16698 pub class_uid: Option<i64>,
16699 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
16700 #[serde(rename = "cloud")]
16701 #[serde(skip_serializing_if = "Option::is_none")]
16702 pub cloud: Option<Box<Cloud>>,
16703 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16704 #[serde(rename = "confidence")]
16705 #[serde(skip_serializing_if = "Option::is_none")]
16706 pub confidence: Option<String>,
16707 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
16708 #[serde(rename = "confidence_id")]
16709 #[serde(skip_serializing_if = "Option::is_none")]
16710 pub confidence_id: Option<i64>,
16711 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
16712 #[serde(rename = "confidence_score")]
16713 #[serde(skip_serializing_if = "Option::is_none")]
16714 pub confidence_score: Option<i64>,
16715 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
16716 #[serde(rename = "count")]
16717 #[serde(skip_serializing_if = "Option::is_none")]
16718 pub count: Option<i64>,
16719 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
16720 #[serde(rename = "device")]
16721 #[serde(skip_serializing_if = "Option::is_none")]
16722 pub device: Option<Box<Device>>,
16723 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16724 #[serde(rename = "disposition")]
16725 #[serde(skip_serializing_if = "Option::is_none")]
16726 pub disposition: Option<String>,
16727 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
16728 #[serde(rename = "disposition_id")]
16729 #[serde(skip_serializing_if = "Option::is_none")]
16730 pub disposition_id: Option<i64>,
16731 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
16732 #[serde(rename = "duration")]
16733 #[serde(skip_serializing_if = "Option::is_none")]
16734 pub duration: Option<i64>,
16735 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16736 #[serde(rename = "end_time")]
16737 #[serde(skip_serializing_if = "Option::is_none")]
16738 pub end_time: Option<i64>,
16739 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
16740 #[serde(rename = "end_time_dt")]
16741 #[serde(skip_serializing_if = "Option::is_none")]
16742 pub end_time_dt: Option<String>,
16743 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
16744 #[serde(rename = "enrichments")]
16745 #[serde(skip_serializing_if = "Option::is_none")]
16746 pub enrichments: Option<Vec<Enrichment>>,
16747 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
16748 #[serde(rename = "firewall_rule")]
16749 #[serde(skip_serializing_if = "Option::is_none")]
16750 pub firewall_rule: Option<Box<FirewallRule>>,
16751 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
16752 #[serde(rename = "is_alert")]
16753 #[serde(skip_serializing_if = "Option::is_none")]
16754 pub is_alert: Option<bool>,
16755 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
16756 #[serde(rename = "malware")]
16757 #[serde(skip_serializing_if = "Option::is_none")]
16758 pub malware: Option<Vec<Malware>>,
16759 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
16760 #[serde(rename = "malware_scan_info")]
16761 #[serde(skip_serializing_if = "Option::is_none")]
16762 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
16763 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
16764 #[serde(rename = "message")]
16765 #[serde(skip_serializing_if = "Option::is_none")]
16766 pub message: Option<String>,
16767 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
16768 #[serde(rename = "metadata")]
16769 #[serde(skip_serializing_if = "Option::is_none")]
16770 pub metadata: Option<Box<Metadata>>,
16771 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
16772 #[serde(rename = "observables")]
16773 #[serde(skip_serializing_if = "Option::is_none")]
16774 pub observables: Option<Vec<Observable>>,
16775 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
16776 #[serde(rename = "osint")]
16777 #[serde(skip_serializing_if = "Option::is_none")]
16778 pub osint: Option<Vec<Osint>>,
16779 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
16780 #[serde(rename = "policy")]
16781 #[serde(skip_serializing_if = "Option::is_none")]
16782 pub policy: Option<Box<Policy>>,
16783 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
16784 #[serde(rename = "query_info")]
16785 #[serde(skip_serializing_if = "Option::is_none")]
16786 pub query_info: Option<Box<QueryInfo>>,
16787 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
16788 #[serde(rename = "query_result")]
16789 #[serde(skip_serializing_if = "Option::is_none")]
16790 pub query_result: Option<String>,
16791 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
16792 #[serde(rename = "query_result_id")]
16793 #[serde(skip_serializing_if = "Option::is_none")]
16794 pub query_result_id: Option<i64>,
16795 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
16796 #[serde(rename = "raw_data")]
16797 #[serde(skip_serializing_if = "Option::is_none")]
16798 pub raw_data: Option<String>,
16799 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
16800 #[serde(rename = "raw_data_hash")]
16801 #[serde(skip_serializing_if = "Option::is_none")]
16802 pub raw_data_hash: Option<Box<Fingerprint>>,
16803 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
16804 #[serde(rename = "raw_data_size")]
16805 #[serde(skip_serializing_if = "Option::is_none")]
16806 pub raw_data_size: Option<i64>,
16807 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
16808 #[serde(rename = "risk_details")]
16809 #[serde(skip_serializing_if = "Option::is_none")]
16810 pub risk_details: Option<String>,
16811 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
16812 #[serde(rename = "risk_level")]
16813 #[serde(skip_serializing_if = "Option::is_none")]
16814 pub risk_level: Option<String>,
16815 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
16816 #[serde(rename = "risk_level_id")]
16817 #[serde(skip_serializing_if = "Option::is_none")]
16818 pub risk_level_id: Option<i64>,
16819 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
16820 #[serde(rename = "risk_score")]
16821 #[serde(skip_serializing_if = "Option::is_none")]
16822 pub risk_score: Option<i64>,
16823 #[doc = "Session\n\nThe authenticated user or service session.\n\nrequired"]
16824 #[serde(rename = "session")]
16825 #[serde(skip_serializing_if = "Option::is_none")]
16826 pub session: Option<Box<Session>>,
16827 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
16828 #[serde(rename = "severity")]
16829 #[serde(skip_serializing_if = "Option::is_none")]
16830 pub severity: Option<String>,
16831 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
16832 #[serde(rename = "severity_id")]
16833 #[serde(skip_serializing_if = "Option::is_none")]
16834 pub severity_id: Option<i64>,
16835 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16836 #[serde(rename = "start_time")]
16837 #[serde(skip_serializing_if = "Option::is_none")]
16838 pub start_time: Option<i64>,
16839 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
16840 #[serde(rename = "start_time_dt")]
16841 #[serde(skip_serializing_if = "Option::is_none")]
16842 pub start_time_dt: Option<String>,
16843 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
16844 #[serde(rename = "status")]
16845 #[serde(skip_serializing_if = "Option::is_none")]
16846 pub status: Option<String>,
16847 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
16848 #[serde(rename = "status_code")]
16849 #[serde(skip_serializing_if = "Option::is_none")]
16850 pub status_code: Option<String>,
16851 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
16852 #[serde(rename = "status_detail")]
16853 #[serde(skip_serializing_if = "Option::is_none")]
16854 pub status_detail: Option<String>,
16855 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
16856 #[serde(rename = "status_id")]
16857 #[serde(skip_serializing_if = "Option::is_none")]
16858 pub status_id: Option<i64>,
16859 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
16860 #[serde(rename = "time")]
16861 #[serde(skip_serializing_if = "Option::is_none")]
16862 pub time: Option<i64>,
16863 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
16864 #[serde(rename = "time_dt")]
16865 #[serde(skip_serializing_if = "Option::is_none")]
16866 pub time_dt: Option<String>,
16867 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
16868 #[serde(rename = "timezone_offset")]
16869 #[serde(skip_serializing_if = "Option::is_none")]
16870 pub timezone_offset: Option<i64>,
16871 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
16872 #[serde(rename = "type_name")]
16873 #[serde(skip_serializing_if = "Option::is_none")]
16874 pub type_name: Option<String>,
16875 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
16876 #[serde(rename = "type_uid")]
16877 #[serde(skip_serializing_if = "Option::is_none")]
16878 pub type_uid: Option<i64>,
16879 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
16880 #[serde(rename = "unmapped")]
16881 #[serde(skip_serializing_if = "Option::is_none")]
16882 pub unmapped: Option<serde_json::Value>,
16883}
16884#[doc = "SMB Activity\n\nServer Message Block (SMB) Protocol Activity events report client/server connections sharing resources within the network.\n\n[UID:4006] Category: network | Name: smb_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
16885#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
16886#[serde(default)]
16887#[non_exhaustive]
16888pub struct SmbActivity {
16889 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
16890 #[serde(rename = "action")]
16891 #[serde(skip_serializing_if = "Option::is_none")]
16892 pub action: Option<String>,
16893 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
16894 #[serde(rename = "action_id")]
16895 #[serde(skip_serializing_if = "Option::is_none")]
16896 pub action_id: Option<i64>,
16897 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
16898 #[serde(rename = "activity_id")]
16899 #[serde(skip_serializing_if = "Option::is_none")]
16900 pub activity_id: Option<i64>,
16901 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
16902 #[serde(rename = "activity_name")]
16903 #[serde(skip_serializing_if = "Option::is_none")]
16904 pub activity_name: Option<String>,
16905 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
16906 #[serde(rename = "actor")]
16907 #[serde(skip_serializing_if = "Option::is_none")]
16908 pub actor: Option<Box<Actor>>,
16909 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
16910 #[serde(rename = "api")]
16911 #[serde(skip_serializing_if = "Option::is_none")]
16912 pub api: Option<Box<Api>>,
16913 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
16914 #[serde(rename = "app_name")]
16915 #[serde(skip_serializing_if = "Option::is_none")]
16916 pub app_name: Option<String>,
16917 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
16918 #[serde(rename = "attacks")]
16919 #[serde(skip_serializing_if = "Option::is_none")]
16920 pub attacks: Option<Vec<Attack>>,
16921 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
16922 #[serde(rename = "authorizations")]
16923 #[serde(skip_serializing_if = "Option::is_none")]
16924 pub authorizations: Option<Vec<Authorization>>,
16925 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
16926 #[serde(rename = "category_name")]
16927 #[serde(skip_serializing_if = "Option::is_none")]
16928 pub category_name: Option<String>,
16929 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
16930 #[serde(rename = "category_uid")]
16931 #[serde(skip_serializing_if = "Option::is_none")]
16932 pub category_uid: Option<i64>,
16933 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>SMB Activity</code>.\n\noptional"]
16934 #[serde(rename = "class_name")]
16935 #[serde(skip_serializing_if = "Option::is_none")]
16936 pub class_name: Option<String>,
16937 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
16938 #[serde(rename = "class_uid")]
16939 #[serde(skip_serializing_if = "Option::is_none")]
16940 pub class_uid: Option<i64>,
16941 #[doc = "Client Dialects\n\nThe list of SMB dialects that the client speaks.\n\nrecommended"]
16942 #[serde(rename = "client_dialects")]
16943 #[serde(skip_serializing_if = "Option::is_none")]
16944 pub client_dialects: Option<Vec<String>>,
16945 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
16946 #[serde(rename = "cloud")]
16947 #[serde(skip_serializing_if = "Option::is_none")]
16948 pub cloud: Option<Box<Cloud>>,
16949 #[doc = "Command\n\nThe command name (e.g. SMB2_COMMAND_CREATE, SMB1_COMMAND_WRITE_ANDX).\n\nrecommended"]
16950 #[serde(rename = "command")]
16951 #[serde(skip_serializing_if = "Option::is_none")]
16952 pub command: Option<String>,
16953 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16954 #[serde(rename = "confidence")]
16955 #[serde(skip_serializing_if = "Option::is_none")]
16956 pub confidence: Option<String>,
16957 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
16958 #[serde(rename = "confidence_id")]
16959 #[serde(skip_serializing_if = "Option::is_none")]
16960 pub confidence_id: Option<i64>,
16961 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
16962 #[serde(rename = "confidence_score")]
16963 #[serde(skip_serializing_if = "Option::is_none")]
16964 pub confidence_score: Option<i64>,
16965 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
16966 #[serde(rename = "connection_info")]
16967 #[serde(skip_serializing_if = "Option::is_none")]
16968 pub connection_info: Option<Box<NetworkConnectionInfo>>,
16969 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
16970 #[serde(rename = "count")]
16971 #[serde(skip_serializing_if = "Option::is_none")]
16972 pub count: Option<i64>,
16973 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
16974 #[serde(rename = "cumulative_traffic")]
16975 #[serde(skip_serializing_if = "Option::is_none")]
16976 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
16977 #[doc = "Distributed Computing Environment/Remote Procedure Call (DCE/RPC)\n\nThe DCE/RPC object describes the remote procedure call system for distributed computing environments.\n\noptional"]
16978 #[serde(rename = "dce_rpc")]
16979 #[serde(skip_serializing_if = "Option::is_none")]
16980 pub dce_rpc: Option<Box<DceRpc>>,
16981 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
16982 #[serde(rename = "device")]
16983 #[serde(skip_serializing_if = "Option::is_none")]
16984 pub device: Option<Box<Device>>,
16985 #[doc = "Dialect\n\nThe negotiated protocol dialect.\n\nrecommended"]
16986 #[serde(rename = "dialect")]
16987 #[serde(skip_serializing_if = "Option::is_none")]
16988 pub dialect: Option<String>,
16989 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
16990 #[serde(rename = "disposition")]
16991 #[serde(skip_serializing_if = "Option::is_none")]
16992 pub disposition: Option<String>,
16993 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
16994 #[serde(rename = "disposition_id")]
16995 #[serde(skip_serializing_if = "Option::is_none")]
16996 pub disposition_id: Option<i64>,
16997 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
16998 #[serde(rename = "dst_endpoint")]
16999 #[serde(skip_serializing_if = "Option::is_none")]
17000 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
17001 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
17002 #[serde(rename = "duration")]
17003 #[serde(skip_serializing_if = "Option::is_none")]
17004 pub duration: Option<i64>,
17005 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17006 #[serde(rename = "end_time")]
17007 #[serde(skip_serializing_if = "Option::is_none")]
17008 pub end_time: Option<i64>,
17009 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17010 #[serde(rename = "end_time_dt")]
17011 #[serde(skip_serializing_if = "Option::is_none")]
17012 pub end_time_dt: Option<String>,
17013 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
17014 #[serde(rename = "enrichments")]
17015 #[serde(skip_serializing_if = "Option::is_none")]
17016 pub enrichments: Option<Vec<Enrichment>>,
17017 #[doc = "File\n\nThe file that is the target of the SMB activity.\n\nrecommended"]
17018 #[serde(rename = "file")]
17019 #[serde(skip_serializing_if = "Option::is_none")]
17020 pub file: Option<Box<File>>,
17021 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
17022 #[serde(rename = "firewall_rule")]
17023 #[serde(skip_serializing_if = "Option::is_none")]
17024 pub firewall_rule: Option<Box<FirewallRule>>,
17025 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
17026 #[serde(rename = "is_alert")]
17027 #[serde(skip_serializing_if = "Option::is_none")]
17028 pub is_alert: Option<bool>,
17029 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
17030 #[serde(rename = "ja4_fingerprint_list")]
17031 #[serde(skip_serializing_if = "Option::is_none")]
17032 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
17033 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
17034 #[serde(rename = "load_balancer")]
17035 #[serde(skip_serializing_if = "Option::is_none")]
17036 pub load_balancer: Option<Box<LoadBalancer>>,
17037 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
17038 #[serde(rename = "malware")]
17039 #[serde(skip_serializing_if = "Option::is_none")]
17040 pub malware: Option<Vec<Malware>>,
17041 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
17042 #[serde(rename = "malware_scan_info")]
17043 #[serde(skip_serializing_if = "Option::is_none")]
17044 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
17045 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
17046 #[serde(rename = "message")]
17047 #[serde(skip_serializing_if = "Option::is_none")]
17048 pub message: Option<String>,
17049 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
17050 #[serde(rename = "metadata")]
17051 #[serde(skip_serializing_if = "Option::is_none")]
17052 pub metadata: Option<Box<Metadata>>,
17053 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
17054 #[serde(rename = "observables")]
17055 #[serde(skip_serializing_if = "Option::is_none")]
17056 pub observables: Option<Vec<Observable>>,
17057 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
17058 #[serde(rename = "observation_point")]
17059 #[serde(skip_serializing_if = "Option::is_none")]
17060 pub observation_point: Option<String>,
17061 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
17062 #[serde(rename = "observation_point_id")]
17063 #[serde(skip_serializing_if = "Option::is_none")]
17064 pub observation_point_id: Option<i64>,
17065 #[doc = "Open Type\n\nIndicates how the file was opened (e.g. normal, delete on close).\n\nrecommended"]
17066 #[serde(rename = "open_type")]
17067 #[serde(skip_serializing_if = "Option::is_none")]
17068 pub open_type: Option<String>,
17069 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
17070 #[serde(rename = "osint")]
17071 #[serde(skip_serializing_if = "Option::is_none")]
17072 pub osint: Option<Vec<Osint>>,
17073 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
17074 #[serde(rename = "policy")]
17075 #[serde(skip_serializing_if = "Option::is_none")]
17076 pub policy: Option<Box<Policy>>,
17077 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
17078 #[serde(rename = "proxy")]
17079 #[serde(skip_serializing_if = "Option::is_none")]
17080 pub proxy: Option<Box<NetworkProxy>>,
17081 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
17082 #[serde(rename = "proxy_connection_info")]
17083 #[serde(skip_serializing_if = "Option::is_none")]
17084 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
17085 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
17086 #[serde(rename = "proxy_endpoint")]
17087 #[serde(skip_serializing_if = "Option::is_none")]
17088 pub proxy_endpoint: Option<Box<NetworkProxy>>,
17089 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
17090 #[serde(rename = "proxy_http_request")]
17091 #[serde(skip_serializing_if = "Option::is_none")]
17092 pub proxy_http_request: Option<Box<HttpRequest>>,
17093 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
17094 #[serde(rename = "proxy_http_response")]
17095 #[serde(skip_serializing_if = "Option::is_none")]
17096 pub proxy_http_response: Option<Box<HttpResponse>>,
17097 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
17098 #[serde(rename = "proxy_tls")]
17099 #[serde(skip_serializing_if = "Option::is_none")]
17100 pub proxy_tls: Option<Box<Tls>>,
17101 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
17102 #[serde(rename = "proxy_traffic")]
17103 #[serde(skip_serializing_if = "Option::is_none")]
17104 pub proxy_traffic: Option<Box<NetworkTraffic>>,
17105 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
17106 #[serde(rename = "raw_data")]
17107 #[serde(skip_serializing_if = "Option::is_none")]
17108 pub raw_data: Option<String>,
17109 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
17110 #[serde(rename = "raw_data_hash")]
17111 #[serde(skip_serializing_if = "Option::is_none")]
17112 pub raw_data_hash: Option<Box<Fingerprint>>,
17113 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
17114 #[serde(rename = "raw_data_size")]
17115 #[serde(skip_serializing_if = "Option::is_none")]
17116 pub raw_data_size: Option<i64>,
17117 #[doc = "API Response Details\n\nThe server response in an SMB network connection.\n\nrecommended"]
17118 #[serde(rename = "response")]
17119 #[serde(skip_serializing_if = "Option::is_none")]
17120 pub response: Option<Box<Response>>,
17121 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
17122 #[serde(rename = "risk_details")]
17123 #[serde(skip_serializing_if = "Option::is_none")]
17124 pub risk_details: Option<String>,
17125 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
17126 #[serde(rename = "risk_level")]
17127 #[serde(skip_serializing_if = "Option::is_none")]
17128 pub risk_level: Option<String>,
17129 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
17130 #[serde(rename = "risk_level_id")]
17131 #[serde(skip_serializing_if = "Option::is_none")]
17132 pub risk_level_id: Option<i64>,
17133 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
17134 #[serde(rename = "risk_score")]
17135 #[serde(skip_serializing_if = "Option::is_none")]
17136 pub risk_score: Option<i64>,
17137 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
17138 #[serde(rename = "severity")]
17139 #[serde(skip_serializing_if = "Option::is_none")]
17140 pub severity: Option<String>,
17141 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
17142 #[serde(rename = "severity_id")]
17143 #[serde(skip_serializing_if = "Option::is_none")]
17144 pub severity_id: Option<i64>,
17145 #[doc = "Share\n\nThe SMB share name.\n\nrecommended"]
17146 #[serde(rename = "share")]
17147 #[serde(skip_serializing_if = "Option::is_none")]
17148 pub share: Option<String>,
17149 #[doc = "Share Type\n\nThe SMB share type, normalized to the caption of the share_type_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17150 #[serde(rename = "share_type")]
17151 #[serde(skip_serializing_if = "Option::is_none")]
17152 pub share_type: Option<String>,
17153 #[doc = "Share Type ID\n\nThe normalized identifier of the SMB share type.\n\nrecommended"]
17154 #[serde(rename = "share_type_id")]
17155 #[serde(skip_serializing_if = "Option::is_none")]
17156 pub share_type_id: Option<i64>,
17157 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
17158 #[serde(rename = "src_endpoint")]
17159 #[serde(skip_serializing_if = "Option::is_none")]
17160 pub src_endpoint: Option<Box<NetworkEndpoint>>,
17161 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17162 #[serde(rename = "start_time")]
17163 #[serde(skip_serializing_if = "Option::is_none")]
17164 pub start_time: Option<i64>,
17165 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17166 #[serde(rename = "start_time_dt")]
17167 #[serde(skip_serializing_if = "Option::is_none")]
17168 pub start_time_dt: Option<String>,
17169 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17170 #[serde(rename = "status")]
17171 #[serde(skip_serializing_if = "Option::is_none")]
17172 pub status: Option<String>,
17173 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
17174 #[serde(rename = "status_code")]
17175 #[serde(skip_serializing_if = "Option::is_none")]
17176 pub status_code: Option<String>,
17177 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
17178 #[serde(rename = "status_detail")]
17179 #[serde(skip_serializing_if = "Option::is_none")]
17180 pub status_detail: Option<String>,
17181 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
17182 #[serde(rename = "status_id")]
17183 #[serde(skip_serializing_if = "Option::is_none")]
17184 pub status_id: Option<i64>,
17185 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
17186 #[serde(rename = "time")]
17187 #[serde(skip_serializing_if = "Option::is_none")]
17188 pub time: Option<i64>,
17189 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
17190 #[serde(rename = "time_dt")]
17191 #[serde(skip_serializing_if = "Option::is_none")]
17192 pub time_dt: Option<String>,
17193 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
17194 #[serde(rename = "timezone_offset")]
17195 #[serde(skip_serializing_if = "Option::is_none")]
17196 pub timezone_offset: Option<i64>,
17197 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
17198 #[serde(rename = "tls")]
17199 #[serde(skip_serializing_if = "Option::is_none")]
17200 pub tls: Option<Box<Tls>>,
17201 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
17202 #[serde(rename = "traffic")]
17203 #[serde(skip_serializing_if = "Option::is_none")]
17204 pub traffic: Option<Box<NetworkTraffic>>,
17205 #[doc = "Tree UID\n\nThe tree id is a unique SMB identifier which represents an open connection to a share.\n\nrecommended"]
17206 #[serde(rename = "tree_uid")]
17207 #[serde(skip_serializing_if = "Option::is_none")]
17208 pub tree_uid: Option<String>,
17209 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
17210 #[serde(rename = "type_name")]
17211 #[serde(skip_serializing_if = "Option::is_none")]
17212 pub type_name: Option<String>,
17213 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
17214 #[serde(rename = "type_uid")]
17215 #[serde(skip_serializing_if = "Option::is_none")]
17216 pub type_uid: Option<i64>,
17217 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
17218 #[serde(rename = "unmapped")]
17219 #[serde(skip_serializing_if = "Option::is_none")]
17220 pub unmapped: Option<serde_json::Value>,
17221}
17222#[doc = "Software Inventory Info\n\nSoftware Inventory Info events report device software inventory data that is either logged or proactively collected. For example, when collecting device information from a CMDB or running a network sweep of connected devices.\n\n[UID:5020] Category: discovery | Name: software_info"]
17223#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
17224#[serde(default)]
17225#[non_exhaustive]
17226pub struct SoftwareInfo {
17227 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
17228 #[serde(rename = "action")]
17229 #[serde(skip_serializing_if = "Option::is_none")]
17230 pub action: Option<String>,
17231 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
17232 #[serde(rename = "action_id")]
17233 #[serde(skip_serializing_if = "Option::is_none")]
17234 pub action_id: Option<i64>,
17235 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
17236 #[serde(rename = "activity_id")]
17237 #[serde(skip_serializing_if = "Option::is_none")]
17238 pub activity_id: Option<i64>,
17239 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
17240 #[serde(rename = "activity_name")]
17241 #[serde(skip_serializing_if = "Option::is_none")]
17242 pub activity_name: Option<String>,
17243 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
17244 #[serde(rename = "actor")]
17245 #[serde(skip_serializing_if = "Option::is_none")]
17246 pub actor: Option<Box<Actor>>,
17247 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
17248 #[serde(rename = "api")]
17249 #[serde(skip_serializing_if = "Option::is_none")]
17250 pub api: Option<Box<Api>>,
17251 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
17252 #[serde(rename = "attacks")]
17253 #[serde(skip_serializing_if = "Option::is_none")]
17254 pub attacks: Option<Vec<Attack>>,
17255 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
17256 #[serde(rename = "authorizations")]
17257 #[serde(skip_serializing_if = "Option::is_none")]
17258 pub authorizations: Option<Vec<Authorization>>,
17259 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
17260 #[serde(rename = "category_name")]
17261 #[serde(skip_serializing_if = "Option::is_none")]
17262 pub category_name: Option<String>,
17263 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
17264 #[serde(rename = "category_uid")]
17265 #[serde(skip_serializing_if = "Option::is_none")]
17266 pub category_uid: Option<i64>,
17267 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Software Inventory Info</code>.\n\noptional"]
17268 #[serde(rename = "class_name")]
17269 #[serde(skip_serializing_if = "Option::is_none")]
17270 pub class_name: Option<String>,
17271 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
17272 #[serde(rename = "class_uid")]
17273 #[serde(skip_serializing_if = "Option::is_none")]
17274 pub class_uid: Option<i64>,
17275 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
17276 #[serde(rename = "cloud")]
17277 #[serde(skip_serializing_if = "Option::is_none")]
17278 pub cloud: Option<Box<Cloud>>,
17279 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17280 #[serde(rename = "confidence")]
17281 #[serde(skip_serializing_if = "Option::is_none")]
17282 pub confidence: Option<String>,
17283 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
17284 #[serde(rename = "confidence_id")]
17285 #[serde(skip_serializing_if = "Option::is_none")]
17286 pub confidence_id: Option<i64>,
17287 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
17288 #[serde(rename = "confidence_score")]
17289 #[serde(skip_serializing_if = "Option::is_none")]
17290 pub confidence_score: Option<i64>,
17291 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
17292 #[serde(rename = "count")]
17293 #[serde(skip_serializing_if = "Option::is_none")]
17294 pub count: Option<i64>,
17295 #[doc = "Device\n\nThe device that is being discovered by an inventory process.\n\nrequired"]
17296 #[serde(rename = "device")]
17297 #[serde(skip_serializing_if = "Option::is_none")]
17298 pub device: Option<Box<Device>>,
17299 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17300 #[serde(rename = "disposition")]
17301 #[serde(skip_serializing_if = "Option::is_none")]
17302 pub disposition: Option<String>,
17303 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
17304 #[serde(rename = "disposition_id")]
17305 #[serde(skip_serializing_if = "Option::is_none")]
17306 pub disposition_id: Option<i64>,
17307 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
17308 #[serde(rename = "duration")]
17309 #[serde(skip_serializing_if = "Option::is_none")]
17310 pub duration: Option<i64>,
17311 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17312 #[serde(rename = "end_time")]
17313 #[serde(skip_serializing_if = "Option::is_none")]
17314 pub end_time: Option<i64>,
17315 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17316 #[serde(rename = "end_time_dt")]
17317 #[serde(skip_serializing_if = "Option::is_none")]
17318 pub end_time_dt: Option<String>,
17319 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
17320 #[serde(rename = "enrichments")]
17321 #[serde(skip_serializing_if = "Option::is_none")]
17322 pub enrichments: Option<Vec<Enrichment>>,
17323 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
17324 #[serde(rename = "firewall_rule")]
17325 #[serde(skip_serializing_if = "Option::is_none")]
17326 pub firewall_rule: Option<Box<FirewallRule>>,
17327 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
17328 #[serde(rename = "is_alert")]
17329 #[serde(skip_serializing_if = "Option::is_none")]
17330 pub is_alert: Option<bool>,
17331 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
17332 #[serde(rename = "malware")]
17333 #[serde(skip_serializing_if = "Option::is_none")]
17334 pub malware: Option<Vec<Malware>>,
17335 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
17336 #[serde(rename = "malware_scan_info")]
17337 #[serde(skip_serializing_if = "Option::is_none")]
17338 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
17339 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
17340 #[serde(rename = "message")]
17341 #[serde(skip_serializing_if = "Option::is_none")]
17342 pub message: Option<String>,
17343 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
17344 #[serde(rename = "metadata")]
17345 #[serde(skip_serializing_if = "Option::is_none")]
17346 pub metadata: Option<Box<Metadata>>,
17347 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
17348 #[serde(rename = "observables")]
17349 #[serde(skip_serializing_if = "Option::is_none")]
17350 pub observables: Option<Vec<Observable>>,
17351 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
17352 #[serde(rename = "osint")]
17353 #[serde(skip_serializing_if = "Option::is_none")]
17354 pub osint: Option<Vec<Osint>>,
17355 #[doc = "Software Package\n\nThe device software that is being discovered by an inventory process.\n\nrecommended"]
17356 #[serde(rename = "package")]
17357 #[serde(skip_serializing_if = "Option::is_none")]
17358 pub package: Option<Box<Package>>,
17359 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
17360 #[serde(rename = "policy")]
17361 #[serde(skip_serializing_if = "Option::is_none")]
17362 pub policy: Option<Box<Policy>>,
17363 #[doc = "Product\n\nAdditional product attributes that have been discovered or enriched from a catalog or other external source.\n\noptional"]
17364 #[serde(rename = "product")]
17365 #[serde(skip_serializing_if = "Option::is_none")]
17366 pub product: Option<Box<Product>>,
17367 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
17368 #[serde(rename = "raw_data")]
17369 #[serde(skip_serializing_if = "Option::is_none")]
17370 pub raw_data: Option<String>,
17371 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
17372 #[serde(rename = "raw_data_hash")]
17373 #[serde(skip_serializing_if = "Option::is_none")]
17374 pub raw_data_hash: Option<Box<Fingerprint>>,
17375 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
17376 #[serde(rename = "raw_data_size")]
17377 #[serde(skip_serializing_if = "Option::is_none")]
17378 pub raw_data_size: Option<i64>,
17379 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
17380 #[serde(rename = "risk_details")]
17381 #[serde(skip_serializing_if = "Option::is_none")]
17382 pub risk_details: Option<String>,
17383 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
17384 #[serde(rename = "risk_level")]
17385 #[serde(skip_serializing_if = "Option::is_none")]
17386 pub risk_level: Option<String>,
17387 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
17388 #[serde(rename = "risk_level_id")]
17389 #[serde(skip_serializing_if = "Option::is_none")]
17390 pub risk_level_id: Option<i64>,
17391 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
17392 #[serde(rename = "risk_score")]
17393 #[serde(skip_serializing_if = "Option::is_none")]
17394 pub risk_score: Option<i64>,
17395 #[doc = "Software Bill Of Materials\n\nThe Software Bill of Materials (SBOM) of the device software that is being discovered by an inventory process.\n\nrecommended"]
17396 #[serde(rename = "sbom")]
17397 #[serde(skip_serializing_if = "Option::is_none")]
17398 pub sbom: Option<Box<Sbom>>,
17399 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
17400 #[serde(rename = "severity")]
17401 #[serde(skip_serializing_if = "Option::is_none")]
17402 pub severity: Option<String>,
17403 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
17404 #[serde(rename = "severity_id")]
17405 #[serde(skip_serializing_if = "Option::is_none")]
17406 pub severity_id: Option<i64>,
17407 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17408 #[serde(rename = "start_time")]
17409 #[serde(skip_serializing_if = "Option::is_none")]
17410 pub start_time: Option<i64>,
17411 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17412 #[serde(rename = "start_time_dt")]
17413 #[serde(skip_serializing_if = "Option::is_none")]
17414 pub start_time_dt: Option<String>,
17415 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17416 #[serde(rename = "status")]
17417 #[serde(skip_serializing_if = "Option::is_none")]
17418 pub status: Option<String>,
17419 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
17420 #[serde(rename = "status_code")]
17421 #[serde(skip_serializing_if = "Option::is_none")]
17422 pub status_code: Option<String>,
17423 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
17424 #[serde(rename = "status_detail")]
17425 #[serde(skip_serializing_if = "Option::is_none")]
17426 pub status_detail: Option<String>,
17427 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
17428 #[serde(rename = "status_id")]
17429 #[serde(skip_serializing_if = "Option::is_none")]
17430 pub status_id: Option<i64>,
17431 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
17432 #[serde(rename = "time")]
17433 #[serde(skip_serializing_if = "Option::is_none")]
17434 pub time: Option<i64>,
17435 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
17436 #[serde(rename = "time_dt")]
17437 #[serde(skip_serializing_if = "Option::is_none")]
17438 pub time_dt: Option<String>,
17439 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
17440 #[serde(rename = "timezone_offset")]
17441 #[serde(skip_serializing_if = "Option::is_none")]
17442 pub timezone_offset: Option<i64>,
17443 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
17444 #[serde(rename = "type_name")]
17445 #[serde(skip_serializing_if = "Option::is_none")]
17446 pub type_name: Option<String>,
17447 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
17448 #[serde(rename = "type_uid")]
17449 #[serde(skip_serializing_if = "Option::is_none")]
17450 pub type_uid: Option<i64>,
17451 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
17452 #[serde(rename = "unmapped")]
17453 #[serde(skip_serializing_if = "Option::is_none")]
17454 pub unmapped: Option<serde_json::Value>,
17455}
17456#[doc = "SSH Activity\n\nSSH Activity events report remote client connections to a server using the Secure Shell (SSH) Protocol.\n\n[UID:4007] Category: network | Name: ssh_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
17457#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
17458#[serde(default)]
17459#[non_exhaustive]
17460pub struct SshActivity {
17461 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
17462 #[serde(rename = "action")]
17463 #[serde(skip_serializing_if = "Option::is_none")]
17464 pub action: Option<String>,
17465 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
17466 #[serde(rename = "action_id")]
17467 #[serde(skip_serializing_if = "Option::is_none")]
17468 pub action_id: Option<i64>,
17469 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
17470 #[serde(rename = "activity_id")]
17471 #[serde(skip_serializing_if = "Option::is_none")]
17472 pub activity_id: Option<i64>,
17473 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
17474 #[serde(rename = "activity_name")]
17475 #[serde(skip_serializing_if = "Option::is_none")]
17476 pub activity_name: Option<String>,
17477 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
17478 #[serde(rename = "actor")]
17479 #[serde(skip_serializing_if = "Option::is_none")]
17480 pub actor: Option<Box<Actor>>,
17481 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
17482 #[serde(rename = "api")]
17483 #[serde(skip_serializing_if = "Option::is_none")]
17484 pub api: Option<Box<Api>>,
17485 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
17486 #[serde(rename = "app_name")]
17487 #[serde(skip_serializing_if = "Option::is_none")]
17488 pub app_name: Option<String>,
17489 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
17490 #[serde(rename = "attacks")]
17491 #[serde(skip_serializing_if = "Option::is_none")]
17492 pub attacks: Option<Vec<Attack>>,
17493 #[doc = "Authentication Type\n\nThe SSH authentication type, normalized to the caption of 'auth_type_id'. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17494 #[serde(rename = "auth_type")]
17495 #[serde(skip_serializing_if = "Option::is_none")]
17496 pub auth_type: Option<String>,
17497 #[doc = "Authentication Type ID\n\nThe normalized identifier of the SSH authentication type.\n\nrecommended"]
17498 #[serde(rename = "auth_type_id")]
17499 #[serde(skip_serializing_if = "Option::is_none")]
17500 pub auth_type_id: Option<i64>,
17501 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
17502 #[serde(rename = "authorizations")]
17503 #[serde(skip_serializing_if = "Option::is_none")]
17504 pub authorizations: Option<Vec<Authorization>>,
17505 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
17506 #[serde(rename = "category_name")]
17507 #[serde(skip_serializing_if = "Option::is_none")]
17508 pub category_name: Option<String>,
17509 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
17510 #[serde(rename = "category_uid")]
17511 #[serde(skip_serializing_if = "Option::is_none")]
17512 pub category_uid: Option<i64>,
17513 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>SSH Activity</code>.\n\noptional"]
17514 #[serde(rename = "class_name")]
17515 #[serde(skip_serializing_if = "Option::is_none")]
17516 pub class_name: Option<String>,
17517 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
17518 #[serde(rename = "class_uid")]
17519 #[serde(skip_serializing_if = "Option::is_none")]
17520 pub class_uid: Option<i64>,
17521 #[doc = "Client HASSH\n\nThe Client HASSH fingerprinting object.\n\nrecommended"]
17522 #[serde(rename = "client_hassh")]
17523 #[serde(skip_serializing_if = "Option::is_none")]
17524 pub client_hassh: Option<Box<Hassh>>,
17525 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
17526 #[serde(rename = "cloud")]
17527 #[serde(skip_serializing_if = "Option::is_none")]
17528 pub cloud: Option<Box<Cloud>>,
17529 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17530 #[serde(rename = "confidence")]
17531 #[serde(skip_serializing_if = "Option::is_none")]
17532 pub confidence: Option<String>,
17533 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
17534 #[serde(rename = "confidence_id")]
17535 #[serde(skip_serializing_if = "Option::is_none")]
17536 pub confidence_id: Option<i64>,
17537 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
17538 #[serde(rename = "confidence_score")]
17539 #[serde(skip_serializing_if = "Option::is_none")]
17540 pub confidence_score: Option<i64>,
17541 #[doc = "Connection Info\n\nThe network connection information.\n\nrecommended"]
17542 #[serde(rename = "connection_info")]
17543 #[serde(skip_serializing_if = "Option::is_none")]
17544 pub connection_info: Option<Box<NetworkConnectionInfo>>,
17545 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
17546 #[serde(rename = "count")]
17547 #[serde(skip_serializing_if = "Option::is_none")]
17548 pub count: Option<i64>,
17549 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
17550 #[serde(rename = "cumulative_traffic")]
17551 #[serde(skip_serializing_if = "Option::is_none")]
17552 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
17553 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
17554 #[serde(rename = "device")]
17555 #[serde(skip_serializing_if = "Option::is_none")]
17556 pub device: Option<Box<Device>>,
17557 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17558 #[serde(rename = "disposition")]
17559 #[serde(skip_serializing_if = "Option::is_none")]
17560 pub disposition: Option<String>,
17561 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
17562 #[serde(rename = "disposition_id")]
17563 #[serde(skip_serializing_if = "Option::is_none")]
17564 pub disposition_id: Option<i64>,
17565 #[doc = "Destination Endpoint\n\nThe responder (server) in a network connection.\n\nrecommended"]
17566 #[serde(rename = "dst_endpoint")]
17567 #[serde(skip_serializing_if = "Option::is_none")]
17568 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
17569 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
17570 #[serde(rename = "duration")]
17571 #[serde(skip_serializing_if = "Option::is_none")]
17572 pub duration: Option<i64>,
17573 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17574 #[serde(rename = "end_time")]
17575 #[serde(skip_serializing_if = "Option::is_none")]
17576 pub end_time: Option<i64>,
17577 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17578 #[serde(rename = "end_time_dt")]
17579 #[serde(skip_serializing_if = "Option::is_none")]
17580 pub end_time_dt: Option<String>,
17581 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
17582 #[serde(rename = "enrichments")]
17583 #[serde(skip_serializing_if = "Option::is_none")]
17584 pub enrichments: Option<Vec<Enrichment>>,
17585 #[doc = "File\n\nThe file that is the target of the SSH activity.\n\noptional"]
17586 #[serde(rename = "file")]
17587 #[serde(skip_serializing_if = "Option::is_none")]
17588 pub file: Option<Box<File>>,
17589 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
17590 #[serde(rename = "firewall_rule")]
17591 #[serde(skip_serializing_if = "Option::is_none")]
17592 pub firewall_rule: Option<Box<FirewallRule>>,
17593 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
17594 #[serde(rename = "is_alert")]
17595 #[serde(skip_serializing_if = "Option::is_none")]
17596 pub is_alert: Option<bool>,
17597 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
17598 #[serde(rename = "ja4_fingerprint_list")]
17599 #[serde(skip_serializing_if = "Option::is_none")]
17600 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
17601 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
17602 #[serde(rename = "load_balancer")]
17603 #[serde(skip_serializing_if = "Option::is_none")]
17604 pub load_balancer: Option<Box<LoadBalancer>>,
17605 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
17606 #[serde(rename = "malware")]
17607 #[serde(skip_serializing_if = "Option::is_none")]
17608 pub malware: Option<Vec<Malware>>,
17609 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
17610 #[serde(rename = "malware_scan_info")]
17611 #[serde(skip_serializing_if = "Option::is_none")]
17612 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
17613 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
17614 #[serde(rename = "message")]
17615 #[serde(skip_serializing_if = "Option::is_none")]
17616 pub message: Option<String>,
17617 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
17618 #[serde(rename = "metadata")]
17619 #[serde(skip_serializing_if = "Option::is_none")]
17620 pub metadata: Option<Box<Metadata>>,
17621 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
17622 #[serde(rename = "observables")]
17623 #[serde(skip_serializing_if = "Option::is_none")]
17624 pub observables: Option<Vec<Observable>>,
17625 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
17626 #[serde(rename = "observation_point")]
17627 #[serde(skip_serializing_if = "Option::is_none")]
17628 pub observation_point: Option<String>,
17629 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
17630 #[serde(rename = "observation_point_id")]
17631 #[serde(skip_serializing_if = "Option::is_none")]
17632 pub observation_point_id: Option<i64>,
17633 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
17634 #[serde(rename = "osint")]
17635 #[serde(skip_serializing_if = "Option::is_none")]
17636 pub osint: Option<Vec<Osint>>,
17637 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
17638 #[serde(rename = "policy")]
17639 #[serde(skip_serializing_if = "Option::is_none")]
17640 pub policy: Option<Box<Policy>>,
17641 #[doc = "SSH Version\n\nThe Secure Shell Protocol version.\n\nrecommended"]
17642 #[serde(rename = "protocol_ver")]
17643 #[serde(skip_serializing_if = "Option::is_none")]
17644 pub protocol_ver: Option<String>,
17645 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
17646 #[serde(rename = "proxy")]
17647 #[serde(skip_serializing_if = "Option::is_none")]
17648 pub proxy: Option<Box<NetworkProxy>>,
17649 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
17650 #[serde(rename = "proxy_connection_info")]
17651 #[serde(skip_serializing_if = "Option::is_none")]
17652 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
17653 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
17654 #[serde(rename = "proxy_endpoint")]
17655 #[serde(skip_serializing_if = "Option::is_none")]
17656 pub proxy_endpoint: Option<Box<NetworkProxy>>,
17657 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
17658 #[serde(rename = "proxy_http_request")]
17659 #[serde(skip_serializing_if = "Option::is_none")]
17660 pub proxy_http_request: Option<Box<HttpRequest>>,
17661 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
17662 #[serde(rename = "proxy_http_response")]
17663 #[serde(skip_serializing_if = "Option::is_none")]
17664 pub proxy_http_response: Option<Box<HttpResponse>>,
17665 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
17666 #[serde(rename = "proxy_tls")]
17667 #[serde(skip_serializing_if = "Option::is_none")]
17668 pub proxy_tls: Option<Box<Tls>>,
17669 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
17670 #[serde(rename = "proxy_traffic")]
17671 #[serde(skip_serializing_if = "Option::is_none")]
17672 pub proxy_traffic: Option<Box<NetworkTraffic>>,
17673 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
17674 #[serde(rename = "raw_data")]
17675 #[serde(skip_serializing_if = "Option::is_none")]
17676 pub raw_data: Option<String>,
17677 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
17678 #[serde(rename = "raw_data_hash")]
17679 #[serde(skip_serializing_if = "Option::is_none")]
17680 pub raw_data_hash: Option<Box<Fingerprint>>,
17681 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
17682 #[serde(rename = "raw_data_size")]
17683 #[serde(skip_serializing_if = "Option::is_none")]
17684 pub raw_data_size: Option<i64>,
17685 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
17686 #[serde(rename = "risk_details")]
17687 #[serde(skip_serializing_if = "Option::is_none")]
17688 pub risk_details: Option<String>,
17689 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
17690 #[serde(rename = "risk_level")]
17691 #[serde(skip_serializing_if = "Option::is_none")]
17692 pub risk_level: Option<String>,
17693 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
17694 #[serde(rename = "risk_level_id")]
17695 #[serde(skip_serializing_if = "Option::is_none")]
17696 pub risk_level_id: Option<i64>,
17697 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
17698 #[serde(rename = "risk_score")]
17699 #[serde(skip_serializing_if = "Option::is_none")]
17700 pub risk_score: Option<i64>,
17701 #[doc = "Server HASSH\n\nThe Server HASSH fingerprinting object.\n\nrecommended"]
17702 #[serde(rename = "server_hassh")]
17703 #[serde(skip_serializing_if = "Option::is_none")]
17704 pub server_hassh: Option<Box<Hassh>>,
17705 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
17706 #[serde(rename = "severity")]
17707 #[serde(skip_serializing_if = "Option::is_none")]
17708 pub severity: Option<String>,
17709 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
17710 #[serde(rename = "severity_id")]
17711 #[serde(skip_serializing_if = "Option::is_none")]
17712 pub severity_id: Option<i64>,
17713 #[doc = "Source Endpoint\n\nThe initiator (client) of the network connection.\n\nrecommended"]
17714 #[serde(rename = "src_endpoint")]
17715 #[serde(skip_serializing_if = "Option::is_none")]
17716 pub src_endpoint: Option<Box<NetworkEndpoint>>,
17717 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17718 #[serde(rename = "start_time")]
17719 #[serde(skip_serializing_if = "Option::is_none")]
17720 pub start_time: Option<i64>,
17721 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17722 #[serde(rename = "start_time_dt")]
17723 #[serde(skip_serializing_if = "Option::is_none")]
17724 pub start_time_dt: Option<String>,
17725 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17726 #[serde(rename = "status")]
17727 #[serde(skip_serializing_if = "Option::is_none")]
17728 pub status: Option<String>,
17729 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
17730 #[serde(rename = "status_code")]
17731 #[serde(skip_serializing_if = "Option::is_none")]
17732 pub status_code: Option<String>,
17733 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
17734 #[serde(rename = "status_detail")]
17735 #[serde(skip_serializing_if = "Option::is_none")]
17736 pub status_detail: Option<String>,
17737 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
17738 #[serde(rename = "status_id")]
17739 #[serde(skip_serializing_if = "Option::is_none")]
17740 pub status_id: Option<i64>,
17741 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
17742 #[serde(rename = "time")]
17743 #[serde(skip_serializing_if = "Option::is_none")]
17744 pub time: Option<i64>,
17745 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
17746 #[serde(rename = "time_dt")]
17747 #[serde(skip_serializing_if = "Option::is_none")]
17748 pub time_dt: Option<String>,
17749 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
17750 #[serde(rename = "timezone_offset")]
17751 #[serde(skip_serializing_if = "Option::is_none")]
17752 pub timezone_offset: Option<i64>,
17753 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
17754 #[serde(rename = "tls")]
17755 #[serde(skip_serializing_if = "Option::is_none")]
17756 pub tls: Option<Box<Tls>>,
17757 #[doc = "Traffic\n\nThe network traffic for this observation period. Use when reporting: (1) delta values (bytes/packets transferred since the last observation), (2) instantaneous measurements at a specific point in time, or (3) standalone single-event metrics. This attribute represents a point-in-time measurement or incremental change, not a running total. For accumulated totals across multiple observations or the lifetime of a flow, use <code>cumulative_traffic</code> instead.\n\nrecommended"]
17758 #[serde(rename = "traffic")]
17759 #[serde(skip_serializing_if = "Option::is_none")]
17760 pub traffic: Option<Box<NetworkTraffic>>,
17761 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
17762 #[serde(rename = "type_name")]
17763 #[serde(skip_serializing_if = "Option::is_none")]
17764 pub type_name: Option<String>,
17765 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
17766 #[serde(rename = "type_uid")]
17767 #[serde(skip_serializing_if = "Option::is_none")]
17768 pub type_uid: Option<i64>,
17769 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
17770 #[serde(rename = "unmapped")]
17771 #[serde(skip_serializing_if = "Option::is_none")]
17772 pub unmapped: Option<serde_json::Value>,
17773}
17774#[doc = "Startup Item Query\n\nStartup Item Query events report information about discovered items, e.g., application components that are generally configured to run automatically.\n\n[UID:5022] Category: discovery | Name: startup_item_query"]
17775#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
17776#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
17777#[serde(default)]
17778#[non_exhaustive]
17779pub struct StartupItemQuery {
17780 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
17781 #[serde(rename = "action")]
17782 #[serde(skip_serializing_if = "Option::is_none")]
17783 pub action: Option<String>,
17784 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
17785 #[serde(rename = "action_id")]
17786 #[serde(skip_serializing_if = "Option::is_none")]
17787 pub action_id: Option<i64>,
17788 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
17789 #[serde(rename = "activity_id")]
17790 #[serde(skip_serializing_if = "Option::is_none")]
17791 pub activity_id: Option<i64>,
17792 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
17793 #[serde(rename = "activity_name")]
17794 #[serde(skip_serializing_if = "Option::is_none")]
17795 pub activity_name: Option<String>,
17796 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
17797 #[serde(rename = "actor")]
17798 #[serde(skip_serializing_if = "Option::is_none")]
17799 pub actor: Option<Box<Actor>>,
17800 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
17801 #[serde(rename = "api")]
17802 #[serde(skip_serializing_if = "Option::is_none")]
17803 pub api: Option<Box<Api>>,
17804 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
17805 #[serde(rename = "attacks")]
17806 #[serde(skip_serializing_if = "Option::is_none")]
17807 pub attacks: Option<Vec<Attack>>,
17808 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
17809 #[serde(rename = "authorizations")]
17810 #[serde(skip_serializing_if = "Option::is_none")]
17811 pub authorizations: Option<Vec<Authorization>>,
17812 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
17813 #[serde(rename = "category_name")]
17814 #[serde(skip_serializing_if = "Option::is_none")]
17815 pub category_name: Option<String>,
17816 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
17817 #[serde(rename = "category_uid")]
17818 #[serde(skip_serializing_if = "Option::is_none")]
17819 pub category_uid: Option<i64>,
17820 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Startup Item Query</code>.\n\noptional"]
17821 #[serde(rename = "class_name")]
17822 #[serde(skip_serializing_if = "Option::is_none")]
17823 pub class_name: Option<String>,
17824 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
17825 #[serde(rename = "class_uid")]
17826 #[serde(skip_serializing_if = "Option::is_none")]
17827 pub class_uid: Option<i64>,
17828 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
17829 #[serde(rename = "cloud")]
17830 #[serde(skip_serializing_if = "Option::is_none")]
17831 pub cloud: Option<Box<Cloud>>,
17832 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17833 #[serde(rename = "confidence")]
17834 #[serde(skip_serializing_if = "Option::is_none")]
17835 pub confidence: Option<String>,
17836 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
17837 #[serde(rename = "confidence_id")]
17838 #[serde(skip_serializing_if = "Option::is_none")]
17839 pub confidence_id: Option<i64>,
17840 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
17841 #[serde(rename = "confidence_score")]
17842 #[serde(skip_serializing_if = "Option::is_none")]
17843 pub confidence_score: Option<i64>,
17844 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
17845 #[serde(rename = "count")]
17846 #[serde(skip_serializing_if = "Option::is_none")]
17847 pub count: Option<i64>,
17848 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
17849 #[serde(rename = "device")]
17850 #[serde(skip_serializing_if = "Option::is_none")]
17851 pub device: Option<Box<Device>>,
17852 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
17853 #[serde(rename = "disposition")]
17854 #[serde(skip_serializing_if = "Option::is_none")]
17855 pub disposition: Option<String>,
17856 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
17857 #[serde(rename = "disposition_id")]
17858 #[serde(skip_serializing_if = "Option::is_none")]
17859 pub disposition_id: Option<i64>,
17860 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
17861 #[serde(rename = "duration")]
17862 #[serde(skip_serializing_if = "Option::is_none")]
17863 pub duration: Option<i64>,
17864 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17865 #[serde(rename = "end_time")]
17866 #[serde(skip_serializing_if = "Option::is_none")]
17867 pub end_time: Option<i64>,
17868 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
17869 #[serde(rename = "end_time_dt")]
17870 #[serde(skip_serializing_if = "Option::is_none")]
17871 pub end_time_dt: Option<String>,
17872 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
17873 #[serde(rename = "enrichments")]
17874 #[serde(skip_serializing_if = "Option::is_none")]
17875 pub enrichments: Option<Vec<Enrichment>>,
17876 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
17877 #[serde(rename = "firewall_rule")]
17878 #[serde(skip_serializing_if = "Option::is_none")]
17879 pub firewall_rule: Option<Box<FirewallRule>>,
17880 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
17881 #[serde(rename = "is_alert")]
17882 #[serde(skip_serializing_if = "Option::is_none")]
17883 pub is_alert: Option<bool>,
17884 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
17885 #[serde(rename = "malware")]
17886 #[serde(skip_serializing_if = "Option::is_none")]
17887 pub malware: Option<Vec<Malware>>,
17888 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
17889 #[serde(rename = "malware_scan_info")]
17890 #[serde(skip_serializing_if = "Option::is_none")]
17891 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
17892 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
17893 #[serde(rename = "message")]
17894 #[serde(skip_serializing_if = "Option::is_none")]
17895 pub message: Option<String>,
17896 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
17897 #[serde(rename = "metadata")]
17898 #[serde(skip_serializing_if = "Option::is_none")]
17899 pub metadata: Option<Box<Metadata>>,
17900 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
17901 #[serde(rename = "observables")]
17902 #[serde(skip_serializing_if = "Option::is_none")]
17903 pub observables: Option<Vec<Observable>>,
17904 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
17905 #[serde(rename = "osint")]
17906 #[serde(skip_serializing_if = "Option::is_none")]
17907 pub osint: Option<Vec<Osint>>,
17908 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
17909 #[serde(rename = "policy")]
17910 #[serde(skip_serializing_if = "Option::is_none")]
17911 pub policy: Option<Box<Policy>>,
17912 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
17913 #[serde(rename = "query_info")]
17914 #[serde(skip_serializing_if = "Option::is_none")]
17915 pub query_info: Option<Box<QueryInfo>>,
17916 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
17917 #[serde(rename = "query_result")]
17918 #[serde(skip_serializing_if = "Option::is_none")]
17919 pub query_result: Option<String>,
17920 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
17921 #[serde(rename = "query_result_id")]
17922 #[serde(skip_serializing_if = "Option::is_none")]
17923 pub query_result_id: Option<i64>,
17924 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
17925 #[serde(rename = "raw_data")]
17926 #[serde(skip_serializing_if = "Option::is_none")]
17927 pub raw_data: Option<String>,
17928 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
17929 #[serde(rename = "raw_data_hash")]
17930 #[serde(skip_serializing_if = "Option::is_none")]
17931 pub raw_data_hash: Option<Box<Fingerprint>>,
17932 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
17933 #[serde(rename = "raw_data_size")]
17934 #[serde(skip_serializing_if = "Option::is_none")]
17935 pub raw_data_size: Option<i64>,
17936 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
17937 #[serde(rename = "risk_details")]
17938 #[serde(skip_serializing_if = "Option::is_none")]
17939 pub risk_details: Option<String>,
17940 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
17941 #[serde(rename = "risk_level")]
17942 #[serde(skip_serializing_if = "Option::is_none")]
17943 pub risk_level: Option<String>,
17944 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
17945 #[serde(rename = "risk_level_id")]
17946 #[serde(skip_serializing_if = "Option::is_none")]
17947 pub risk_level_id: Option<i64>,
17948 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
17949 #[serde(rename = "risk_score")]
17950 #[serde(skip_serializing_if = "Option::is_none")]
17951 pub risk_score: Option<i64>,
17952 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
17953 #[serde(rename = "severity")]
17954 #[serde(skip_serializing_if = "Option::is_none")]
17955 pub severity: Option<String>,
17956 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
17957 #[serde(rename = "severity_id")]
17958 #[serde(skip_serializing_if = "Option::is_none")]
17959 pub severity_id: Option<i64>,
17960 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17961 #[serde(rename = "start_time")]
17962 #[serde(skip_serializing_if = "Option::is_none")]
17963 pub start_time: Option<i64>,
17964 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
17965 #[serde(rename = "start_time_dt")]
17966 #[serde(skip_serializing_if = "Option::is_none")]
17967 pub start_time_dt: Option<String>,
17968 #[doc = "Startup Item\n\nThe startup item object describes an application component that has associated startup criteria and configurations.\n\nrequired"]
17969 #[serde(rename = "startup_item")]
17970 #[serde(skip_serializing_if = "Option::is_none")]
17971 pub startup_item: Option<Box<StartupItem>>,
17972 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
17973 #[serde(rename = "status")]
17974 #[serde(skip_serializing_if = "Option::is_none")]
17975 pub status: Option<String>,
17976 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
17977 #[serde(rename = "status_code")]
17978 #[serde(skip_serializing_if = "Option::is_none")]
17979 pub status_code: Option<String>,
17980 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
17981 #[serde(rename = "status_detail")]
17982 #[serde(skip_serializing_if = "Option::is_none")]
17983 pub status_detail: Option<String>,
17984 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
17985 #[serde(rename = "status_id")]
17986 #[serde(skip_serializing_if = "Option::is_none")]
17987 pub status_id: Option<i64>,
17988 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
17989 #[serde(rename = "time")]
17990 #[serde(skip_serializing_if = "Option::is_none")]
17991 pub time: Option<i64>,
17992 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
17993 #[serde(rename = "time_dt")]
17994 #[serde(skip_serializing_if = "Option::is_none")]
17995 pub time_dt: Option<String>,
17996 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
17997 #[serde(rename = "timezone_offset")]
17998 #[serde(skip_serializing_if = "Option::is_none")]
17999 pub timezone_offset: Option<i64>,
18000 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
18001 #[serde(rename = "type_name")]
18002 #[serde(skip_serializing_if = "Option::is_none")]
18003 pub type_name: Option<String>,
18004 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
18005 #[serde(rename = "type_uid")]
18006 #[serde(skip_serializing_if = "Option::is_none")]
18007 pub type_uid: Option<i64>,
18008 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
18009 #[serde(rename = "unmapped")]
18010 #[serde(skip_serializing_if = "Option::is_none")]
18011 pub unmapped: Option<serde_json::Value>,
18012}
18013#[doc = "Tunnel Activity\n\nTunnel Activity events report secure tunnel establishment (such as VPN), teardowns, renewals, and other network tunnel specific actions.\n\n[UID:4014] Category: network | Name: tunnel_activity\n\n**Constraints:**\n* at_least_one: `[dst_endpoint`,`src_endpoint]`\n"]
18014#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
18015#[serde(default)]
18016#[non_exhaustive]
18017pub struct TunnelActivity {
18018 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
18019 #[serde(rename = "action")]
18020 #[serde(skip_serializing_if = "Option::is_none")]
18021 pub action: Option<String>,
18022 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
18023 #[serde(rename = "action_id")]
18024 #[serde(skip_serializing_if = "Option::is_none")]
18025 pub action_id: Option<i64>,
18026 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
18027 #[serde(rename = "activity_id")]
18028 #[serde(skip_serializing_if = "Option::is_none")]
18029 pub activity_id: Option<i64>,
18030 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
18031 #[serde(rename = "activity_name")]
18032 #[serde(skip_serializing_if = "Option::is_none")]
18033 pub activity_name: Option<String>,
18034 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
18035 #[serde(rename = "actor")]
18036 #[serde(skip_serializing_if = "Option::is_none")]
18037 pub actor: Option<Box<Actor>>,
18038 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
18039 #[serde(rename = "api")]
18040 #[serde(skip_serializing_if = "Option::is_none")]
18041 pub api: Option<Box<Api>>,
18042 #[doc = "Application Name\n\nThe name of the application associated with the event or object.\n\noptional"]
18043 #[serde(rename = "app_name")]
18044 #[serde(skip_serializing_if = "Option::is_none")]
18045 pub app_name: Option<String>,
18046 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
18047 #[serde(rename = "attacks")]
18048 #[serde(skip_serializing_if = "Option::is_none")]
18049 pub attacks: Option<Vec<Attack>>,
18050 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
18051 #[serde(rename = "authorizations")]
18052 #[serde(skip_serializing_if = "Option::is_none")]
18053 pub authorizations: Option<Vec<Authorization>>,
18054 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Network Activity</code>.\n\noptional"]
18055 #[serde(rename = "category_name")]
18056 #[serde(skip_serializing_if = "Option::is_none")]
18057 pub category_name: Option<String>,
18058 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
18059 #[serde(rename = "category_uid")]
18060 #[serde(skip_serializing_if = "Option::is_none")]
18061 pub category_uid: Option<i64>,
18062 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Tunnel Activity</code>.\n\noptional"]
18063 #[serde(rename = "class_name")]
18064 #[serde(skip_serializing_if = "Option::is_none")]
18065 pub class_name: Option<String>,
18066 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
18067 #[serde(rename = "class_uid")]
18068 #[serde(skip_serializing_if = "Option::is_none")]
18069 pub class_uid: Option<i64>,
18070 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
18071 #[serde(rename = "cloud")]
18072 #[serde(skip_serializing_if = "Option::is_none")]
18073 pub cloud: Option<Box<Cloud>>,
18074 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18075 #[serde(rename = "confidence")]
18076 #[serde(skip_serializing_if = "Option::is_none")]
18077 pub confidence: Option<String>,
18078 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
18079 #[serde(rename = "confidence_id")]
18080 #[serde(skip_serializing_if = "Option::is_none")]
18081 pub confidence_id: Option<i64>,
18082 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
18083 #[serde(rename = "confidence_score")]
18084 #[serde(skip_serializing_if = "Option::is_none")]
18085 pub confidence_score: Option<i64>,
18086 #[doc = "Connection Info\n\nThe tunnel connection information.\n\noptional"]
18087 #[serde(rename = "connection_info")]
18088 #[serde(skip_serializing_if = "Option::is_none")]
18089 pub connection_info: Option<Box<NetworkConnectionInfo>>,
18090 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
18091 #[serde(rename = "count")]
18092 #[serde(skip_serializing_if = "Option::is_none")]
18093 pub count: Option<i64>,
18094 #[doc = "Cumulative Traffic\n\nThe cumulative (running total) network traffic aggregated from the start of a flow or session. Use when reporting: (1) total accumulated bytes/packets since flow initiation, (2) combined aggregation models where both incremental deltas and running totals are reported together (populate both <code>traffic</code> for the delta and this attribute for the cumulative total), or (3) final summary metrics when a long-lived connection closes. This represents the sum of all activity from flow start to the current observation, not a delta or point-in-time value.\n\noptional"]
18095 #[serde(rename = "cumulative_traffic")]
18096 #[serde(skip_serializing_if = "Option::is_none")]
18097 pub cumulative_traffic: Option<Box<NetworkTraffic>>,
18098 #[doc = "Device\n\nThe device that reported the event.\n\nrecommended"]
18099 #[serde(rename = "device")]
18100 #[serde(skip_serializing_if = "Option::is_none")]
18101 pub device: Option<Box<Device>>,
18102 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18103 #[serde(rename = "disposition")]
18104 #[serde(skip_serializing_if = "Option::is_none")]
18105 pub disposition: Option<String>,
18106 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
18107 #[serde(rename = "disposition_id")]
18108 #[serde(skip_serializing_if = "Option::is_none")]
18109 pub disposition_id: Option<i64>,
18110 #[doc = "Destination Endpoint\n\nThe server responding to the tunnel connection.\n\nrecommended"]
18111 #[serde(rename = "dst_endpoint")]
18112 #[serde(skip_serializing_if = "Option::is_none")]
18113 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
18114 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
18115 #[serde(rename = "duration")]
18116 #[serde(skip_serializing_if = "Option::is_none")]
18117 pub duration: Option<i64>,
18118 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18119 #[serde(rename = "end_time")]
18120 #[serde(skip_serializing_if = "Option::is_none")]
18121 pub end_time: Option<i64>,
18122 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18123 #[serde(rename = "end_time_dt")]
18124 #[serde(skip_serializing_if = "Option::is_none")]
18125 pub end_time_dt: Option<String>,
18126 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
18127 #[serde(rename = "enrichments")]
18128 #[serde(skip_serializing_if = "Option::is_none")]
18129 pub enrichments: Option<Vec<Enrichment>>,
18130 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
18131 #[serde(rename = "firewall_rule")]
18132 #[serde(skip_serializing_if = "Option::is_none")]
18133 pub firewall_rule: Option<Box<FirewallRule>>,
18134 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
18135 #[serde(rename = "is_alert")]
18136 #[serde(skip_serializing_if = "Option::is_none")]
18137 pub is_alert: Option<bool>,
18138 #[doc = "JA4+ Fingerprints\n\nA list of the JA4+ network fingerprints.\n\noptional"]
18139 #[serde(rename = "ja4_fingerprint_list")]
18140 #[serde(skip_serializing_if = "Option::is_none")]
18141 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
18142 #[doc = "Load Balancer\n\nThe Load Balancer object contains information related to the device that is distributing incoming traffic to specified destinations.\n\nrecommended"]
18143 #[serde(rename = "load_balancer")]
18144 #[serde(skip_serializing_if = "Option::is_none")]
18145 pub load_balancer: Option<Box<LoadBalancer>>,
18146 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
18147 #[serde(rename = "malware")]
18148 #[serde(skip_serializing_if = "Option::is_none")]
18149 pub malware: Option<Vec<Malware>>,
18150 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
18151 #[serde(rename = "malware_scan_info")]
18152 #[serde(skip_serializing_if = "Option::is_none")]
18153 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
18154 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
18155 #[serde(rename = "message")]
18156 #[serde(skip_serializing_if = "Option::is_none")]
18157 pub message: Option<String>,
18158 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
18159 #[serde(rename = "metadata")]
18160 #[serde(skip_serializing_if = "Option::is_none")]
18161 pub metadata: Option<Box<Metadata>>,
18162 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
18163 #[serde(rename = "observables")]
18164 #[serde(skip_serializing_if = "Option::is_none")]
18165 pub observables: Option<Vec<Observable>>,
18166 #[doc = "Observation Point\n\nIndicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity. The value is normalized to the caption of the <code>observation_point_id</code>.\n\noptional"]
18167 #[serde(rename = "observation_point")]
18168 #[serde(skip_serializing_if = "Option::is_none")]
18169 pub observation_point: Option<String>,
18170 #[doc = "Observation Point ID\n\nThe normalized identifier of the observation point. The observation point identifier indicates whether the source network endpoint, destination network endpoint, or neither served as the observation point for the activity.\n\noptional"]
18171 #[serde(rename = "observation_point_id")]
18172 #[serde(skip_serializing_if = "Option::is_none")]
18173 pub observation_point_id: Option<i64>,
18174 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
18175 #[serde(rename = "osint")]
18176 #[serde(skip_serializing_if = "Option::is_none")]
18177 pub osint: Option<Vec<Osint>>,
18178 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
18179 #[serde(rename = "policy")]
18180 #[serde(skip_serializing_if = "Option::is_none")]
18181 pub policy: Option<Box<Policy>>,
18182 #[doc = "Tunnel Protocol\n\nThe networking protocol associated with the tunnel. E.g. <code>IPSec</code>, <code>SSL</code>, <code>GRE</code>.\n\noptional"]
18183 #[serde(rename = "protocol_name")]
18184 #[serde(skip_serializing_if = "Option::is_none")]
18185 pub protocol_name: Option<String>,
18186 #[doc = "Proxy\n\nThe proxy (server) in a network connection.\n\nrecommended"]
18187 #[serde(rename = "proxy")]
18188 #[serde(skip_serializing_if = "Option::is_none")]
18189 pub proxy: Option<Box<NetworkProxy>>,
18190 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
18191 #[serde(rename = "proxy_connection_info")]
18192 #[serde(skip_serializing_if = "Option::is_none")]
18193 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
18194 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
18195 #[serde(rename = "proxy_endpoint")]
18196 #[serde(skip_serializing_if = "Option::is_none")]
18197 pub proxy_endpoint: Option<Box<NetworkProxy>>,
18198 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
18199 #[serde(rename = "proxy_http_request")]
18200 #[serde(skip_serializing_if = "Option::is_none")]
18201 pub proxy_http_request: Option<Box<HttpRequest>>,
18202 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
18203 #[serde(rename = "proxy_http_response")]
18204 #[serde(skip_serializing_if = "Option::is_none")]
18205 pub proxy_http_response: Option<Box<HttpResponse>>,
18206 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
18207 #[serde(rename = "proxy_tls")]
18208 #[serde(skip_serializing_if = "Option::is_none")]
18209 pub proxy_tls: Option<Box<Tls>>,
18210 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
18211 #[serde(rename = "proxy_traffic")]
18212 #[serde(skip_serializing_if = "Option::is_none")]
18213 pub proxy_traffic: Option<Box<NetworkTraffic>>,
18214 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
18215 #[serde(rename = "raw_data")]
18216 #[serde(skip_serializing_if = "Option::is_none")]
18217 pub raw_data: Option<String>,
18218 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
18219 #[serde(rename = "raw_data_hash")]
18220 #[serde(skip_serializing_if = "Option::is_none")]
18221 pub raw_data_hash: Option<Box<Fingerprint>>,
18222 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
18223 #[serde(rename = "raw_data_size")]
18224 #[serde(skip_serializing_if = "Option::is_none")]
18225 pub raw_data_size: Option<i64>,
18226 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
18227 #[serde(rename = "risk_details")]
18228 #[serde(skip_serializing_if = "Option::is_none")]
18229 pub risk_details: Option<String>,
18230 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
18231 #[serde(rename = "risk_level")]
18232 #[serde(skip_serializing_if = "Option::is_none")]
18233 pub risk_level: Option<String>,
18234 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
18235 #[serde(rename = "risk_level_id")]
18236 #[serde(skip_serializing_if = "Option::is_none")]
18237 pub risk_level_id: Option<i64>,
18238 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
18239 #[serde(rename = "risk_score")]
18240 #[serde(skip_serializing_if = "Option::is_none")]
18241 pub risk_score: Option<i64>,
18242 #[doc = "Tunnel Session\n\nThe session associated with the tunnel.\n\nrecommended"]
18243 #[serde(rename = "session")]
18244 #[serde(skip_serializing_if = "Option::is_none")]
18245 pub session: Option<Box<Session>>,
18246 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
18247 #[serde(rename = "severity")]
18248 #[serde(skip_serializing_if = "Option::is_none")]
18249 pub severity: Option<String>,
18250 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
18251 #[serde(rename = "severity_id")]
18252 #[serde(skip_serializing_if = "Option::is_none")]
18253 pub severity_id: Option<i64>,
18254 #[doc = "Source Endpoint\n\nThe initiator (client) of the tunnel connection.\n\nrecommended"]
18255 #[serde(rename = "src_endpoint")]
18256 #[serde(skip_serializing_if = "Option::is_none")]
18257 pub src_endpoint: Option<Box<NetworkEndpoint>>,
18258 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18259 #[serde(rename = "start_time")]
18260 #[serde(skip_serializing_if = "Option::is_none")]
18261 pub start_time: Option<i64>,
18262 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18263 #[serde(rename = "start_time_dt")]
18264 #[serde(skip_serializing_if = "Option::is_none")]
18265 pub start_time_dt: Option<String>,
18266 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
18267 #[serde(rename = "status")]
18268 #[serde(skip_serializing_if = "Option::is_none")]
18269 pub status: Option<String>,
18270 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
18271 #[serde(rename = "status_code")]
18272 #[serde(skip_serializing_if = "Option::is_none")]
18273 pub status_code: Option<String>,
18274 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
18275 #[serde(rename = "status_detail")]
18276 #[serde(skip_serializing_if = "Option::is_none")]
18277 pub status_detail: Option<String>,
18278 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
18279 #[serde(rename = "status_id")]
18280 #[serde(skip_serializing_if = "Option::is_none")]
18281 pub status_id: Option<i64>,
18282 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
18283 #[serde(rename = "time")]
18284 #[serde(skip_serializing_if = "Option::is_none")]
18285 pub time: Option<i64>,
18286 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
18287 #[serde(rename = "time_dt")]
18288 #[serde(skip_serializing_if = "Option::is_none")]
18289 pub time_dt: Option<String>,
18290 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
18291 #[serde(rename = "timezone_offset")]
18292 #[serde(skip_serializing_if = "Option::is_none")]
18293 pub timezone_offset: Option<i64>,
18294 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes.\n\noptional"]
18295 #[serde(rename = "tls")]
18296 #[serde(skip_serializing_if = "Option::is_none")]
18297 pub tls: Option<Box<Tls>>,
18298 #[doc = "Traffic\n\nTraffic refers to the amount of data moving across the tunnel at a given point of time. Ex: <code>bytes_in</code> and <code>bytes_out</code>.\n\noptional"]
18299 #[serde(rename = "traffic")]
18300 #[serde(skip_serializing_if = "Option::is_none")]
18301 pub traffic: Option<Box<NetworkTraffic>>,
18302 #[doc = "Tunnel Interface\n\nThe information about the virtual tunnel interface, e.g. <code>utun0</code>. This is usually associated with the private (rfc-1918) ip of the tunnel.\n\nrecommended"]
18303 #[serde(rename = "tunnel_interface")]
18304 #[serde(skip_serializing_if = "Option::is_none")]
18305 pub tunnel_interface: Option<Box<NetworkInterface>>,
18306 #[doc = "Type\n\nThe tunnel type. Example: <code>Split</code> or <code>Full</code>.\n\nrecommended"]
18307 #[serde(rename = "tunnel_type")]
18308 #[serde(skip_serializing_if = "Option::is_none")]
18309 pub tunnel_type: Option<String>,
18310 #[doc = "Type\n\nThe normalized tunnel type ID.\n\nrecommended"]
18311 #[serde(rename = "tunnel_type_id")]
18312 #[serde(skip_serializing_if = "Option::is_none")]
18313 pub tunnel_type_id: Option<i64>,
18314 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
18315 #[serde(rename = "type_name")]
18316 #[serde(skip_serializing_if = "Option::is_none")]
18317 pub type_name: Option<String>,
18318 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
18319 #[serde(rename = "type_uid")]
18320 #[serde(skip_serializing_if = "Option::is_none")]
18321 pub type_uid: Option<i64>,
18322 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
18323 #[serde(rename = "unmapped")]
18324 #[serde(skip_serializing_if = "Option::is_none")]
18325 pub unmapped: Option<serde_json::Value>,
18326 #[doc = "User\n\nThe user associated with the tunnel activity.\n\nrecommended"]
18327 #[serde(rename = "user")]
18328 #[serde(skip_serializing_if = "Option::is_none")]
18329 pub user: Option<Box<User>>,
18330}
18331#[doc = "User Access Management\n\nUser Access Management events report management updates to a user's privileges.\n\n[UID:3005] Category: iam | Name: user_access"]
18332#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
18333#[serde(default)]
18334#[non_exhaustive]
18335pub struct UserAccess {
18336 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
18337 #[serde(rename = "action")]
18338 #[serde(skip_serializing_if = "Option::is_none")]
18339 pub action: Option<String>,
18340 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
18341 #[serde(rename = "action_id")]
18342 #[serde(skip_serializing_if = "Option::is_none")]
18343 pub action_id: Option<i64>,
18344 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
18345 #[serde(rename = "activity_id")]
18346 #[serde(skip_serializing_if = "Option::is_none")]
18347 pub activity_id: Option<i64>,
18348 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
18349 #[serde(rename = "activity_name")]
18350 #[serde(skip_serializing_if = "Option::is_none")]
18351 pub activity_name: Option<String>,
18352 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrecommended"]
18353 #[serde(rename = "actor")]
18354 #[serde(skip_serializing_if = "Option::is_none")]
18355 pub actor: Option<Box<Actor>>,
18356 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
18357 #[serde(rename = "api")]
18358 #[serde(skip_serializing_if = "Option::is_none")]
18359 pub api: Option<Box<Api>>,
18360 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
18361 #[serde(rename = "attacks")]
18362 #[serde(skip_serializing_if = "Option::is_none")]
18363 pub attacks: Option<Vec<Attack>>,
18364 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
18365 #[serde(rename = "authorizations")]
18366 #[serde(skip_serializing_if = "Option::is_none")]
18367 pub authorizations: Option<Vec<Authorization>>,
18368 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Identity & Access Management</code>.\n\noptional"]
18369 #[serde(rename = "category_name")]
18370 #[serde(skip_serializing_if = "Option::is_none")]
18371 pub category_name: Option<String>,
18372 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
18373 #[serde(rename = "category_uid")]
18374 #[serde(skip_serializing_if = "Option::is_none")]
18375 pub category_uid: Option<i64>,
18376 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>User Access Management</code>.\n\noptional"]
18377 #[serde(rename = "class_name")]
18378 #[serde(skip_serializing_if = "Option::is_none")]
18379 pub class_name: Option<String>,
18380 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
18381 #[serde(rename = "class_uid")]
18382 #[serde(skip_serializing_if = "Option::is_none")]
18383 pub class_uid: Option<i64>,
18384 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
18385 #[serde(rename = "cloud")]
18386 #[serde(skip_serializing_if = "Option::is_none")]
18387 pub cloud: Option<Box<Cloud>>,
18388 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18389 #[serde(rename = "confidence")]
18390 #[serde(skip_serializing_if = "Option::is_none")]
18391 pub confidence: Option<String>,
18392 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
18393 #[serde(rename = "confidence_id")]
18394 #[serde(skip_serializing_if = "Option::is_none")]
18395 pub confidence_id: Option<i64>,
18396 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
18397 #[serde(rename = "confidence_score")]
18398 #[serde(skip_serializing_if = "Option::is_none")]
18399 pub confidence_score: Option<i64>,
18400 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
18401 #[serde(rename = "count")]
18402 #[serde(skip_serializing_if = "Option::is_none")]
18403 pub count: Option<i64>,
18404 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
18405 #[serde(rename = "device")]
18406 #[serde(skip_serializing_if = "Option::is_none")]
18407 pub device: Option<Box<Device>>,
18408 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18409 #[serde(rename = "disposition")]
18410 #[serde(skip_serializing_if = "Option::is_none")]
18411 pub disposition: Option<String>,
18412 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
18413 #[serde(rename = "disposition_id")]
18414 #[serde(skip_serializing_if = "Option::is_none")]
18415 pub disposition_id: Option<i64>,
18416 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
18417 #[serde(rename = "duration")]
18418 #[serde(skip_serializing_if = "Option::is_none")]
18419 pub duration: Option<i64>,
18420 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18421 #[serde(rename = "end_time")]
18422 #[serde(skip_serializing_if = "Option::is_none")]
18423 pub end_time: Option<i64>,
18424 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18425 #[serde(rename = "end_time_dt")]
18426 #[serde(skip_serializing_if = "Option::is_none")]
18427 pub end_time_dt: Option<String>,
18428 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
18429 #[serde(rename = "enrichments")]
18430 #[serde(skip_serializing_if = "Option::is_none")]
18431 pub enrichments: Option<Vec<Enrichment>>,
18432 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
18433 #[serde(rename = "firewall_rule")]
18434 #[serde(skip_serializing_if = "Option::is_none")]
18435 pub firewall_rule: Option<Box<FirewallRule>>,
18436 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\noptional"]
18437 #[serde(rename = "http_request")]
18438 #[serde(skip_serializing_if = "Option::is_none")]
18439 pub http_request: Option<Box<HttpRequest>>,
18440 #[doc = "HTTP Response\n\nDetails about the underlying HTTP response.\n\noptional"]
18441 #[serde(rename = "http_response")]
18442 #[serde(skip_serializing_if = "Option::is_none")]
18443 pub http_response: Option<Box<HttpResponse>>,
18444 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
18445 #[serde(rename = "is_alert")]
18446 #[serde(skip_serializing_if = "Option::is_none")]
18447 pub is_alert: Option<bool>,
18448 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
18449 #[serde(rename = "malware")]
18450 #[serde(skip_serializing_if = "Option::is_none")]
18451 pub malware: Option<Vec<Malware>>,
18452 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
18453 #[serde(rename = "malware_scan_info")]
18454 #[serde(skip_serializing_if = "Option::is_none")]
18455 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
18456 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
18457 #[serde(rename = "message")]
18458 #[serde(skip_serializing_if = "Option::is_none")]
18459 pub message: Option<String>,
18460 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
18461 #[serde(rename = "metadata")]
18462 #[serde(skip_serializing_if = "Option::is_none")]
18463 pub metadata: Option<Box<Metadata>>,
18464 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
18465 #[serde(rename = "observables")]
18466 #[serde(skip_serializing_if = "Option::is_none")]
18467 pub observables: Option<Vec<Observable>>,
18468 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
18469 #[serde(rename = "osint")]
18470 #[serde(skip_serializing_if = "Option::is_none")]
18471 pub osint: Option<Vec<Osint>>,
18472 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
18473 #[serde(rename = "policy")]
18474 #[serde(skip_serializing_if = "Option::is_none")]
18475 pub policy: Option<Box<Policy>>,
18476 #[doc = "Privileges\n\nList of privileges assigned to a user.\n\nrequired"]
18477 #[serde(rename = "privileges")]
18478 #[serde(skip_serializing_if = "Option::is_none")]
18479 pub privileges: Option<Vec<String>>,
18480 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
18481 #[serde(rename = "raw_data")]
18482 #[serde(skip_serializing_if = "Option::is_none")]
18483 pub raw_data: Option<String>,
18484 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
18485 #[serde(rename = "raw_data_hash")]
18486 #[serde(skip_serializing_if = "Option::is_none")]
18487 pub raw_data_hash: Option<Box<Fingerprint>>,
18488 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
18489 #[serde(rename = "raw_data_size")]
18490 #[serde(skip_serializing_if = "Option::is_none")]
18491 pub raw_data_size: Option<i64>,
18492 #[doc = "Resource\n\nResource that the privileges give access to.\n\nrecommended"]
18493 #[serde(rename = "resource")]
18494 #[serde(skip_serializing_if = "Option::is_none")]
18495 pub resource: Option<Box<ResourceDetails>>,
18496 #[doc = "Resources Array\n\nResources that the privileges give access to.\n\nrecommended"]
18497 #[serde(rename = "resources")]
18498 #[serde(skip_serializing_if = "Option::is_none")]
18499 pub resources: Option<Vec<ResourceDetails>>,
18500 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
18501 #[serde(rename = "risk_details")]
18502 #[serde(skip_serializing_if = "Option::is_none")]
18503 pub risk_details: Option<String>,
18504 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
18505 #[serde(rename = "risk_level")]
18506 #[serde(skip_serializing_if = "Option::is_none")]
18507 pub risk_level: Option<String>,
18508 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
18509 #[serde(rename = "risk_level_id")]
18510 #[serde(skip_serializing_if = "Option::is_none")]
18511 pub risk_level_id: Option<i64>,
18512 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
18513 #[serde(rename = "risk_score")]
18514 #[serde(skip_serializing_if = "Option::is_none")]
18515 pub risk_score: Option<i64>,
18516 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
18517 #[serde(rename = "severity")]
18518 #[serde(skip_serializing_if = "Option::is_none")]
18519 pub severity: Option<String>,
18520 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
18521 #[serde(rename = "severity_id")]
18522 #[serde(skip_serializing_if = "Option::is_none")]
18523 pub severity_id: Option<i64>,
18524 #[doc = "Source Endpoint\n\nDetails about the source of the IAM activity.\n\nrecommended"]
18525 #[serde(rename = "src_endpoint")]
18526 #[serde(skip_serializing_if = "Option::is_none")]
18527 pub src_endpoint: Option<Box<NetworkEndpoint>>,
18528 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18529 #[serde(rename = "start_time")]
18530 #[serde(skip_serializing_if = "Option::is_none")]
18531 pub start_time: Option<i64>,
18532 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18533 #[serde(rename = "start_time_dt")]
18534 #[serde(skip_serializing_if = "Option::is_none")]
18535 pub start_time_dt: Option<String>,
18536 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
18537 #[serde(rename = "status")]
18538 #[serde(skip_serializing_if = "Option::is_none")]
18539 pub status: Option<String>,
18540 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
18541 #[serde(rename = "status_code")]
18542 #[serde(skip_serializing_if = "Option::is_none")]
18543 pub status_code: Option<String>,
18544 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
18545 #[serde(rename = "status_detail")]
18546 #[serde(skip_serializing_if = "Option::is_none")]
18547 pub status_detail: Option<String>,
18548 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
18549 #[serde(rename = "status_id")]
18550 #[serde(skip_serializing_if = "Option::is_none")]
18551 pub status_id: Option<i64>,
18552 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
18553 #[serde(rename = "time")]
18554 #[serde(skip_serializing_if = "Option::is_none")]
18555 pub time: Option<i64>,
18556 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
18557 #[serde(rename = "time_dt")]
18558 #[serde(skip_serializing_if = "Option::is_none")]
18559 pub time_dt: Option<String>,
18560 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
18561 #[serde(rename = "timezone_offset")]
18562 #[serde(skip_serializing_if = "Option::is_none")]
18563 pub timezone_offset: Option<i64>,
18564 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
18565 #[serde(rename = "type_name")]
18566 #[serde(skip_serializing_if = "Option::is_none")]
18567 pub type_name: Option<String>,
18568 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
18569 #[serde(rename = "type_uid")]
18570 #[serde(skip_serializing_if = "Option::is_none")]
18571 pub type_uid: Option<i64>,
18572 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
18573 #[serde(rename = "unmapped")]
18574 #[serde(skip_serializing_if = "Option::is_none")]
18575 pub unmapped: Option<serde_json::Value>,
18576 #[doc = "User\n\nUser to which privileges were assigned.\n\nrequired"]
18577 #[serde(rename = "user")]
18578 #[serde(skip_serializing_if = "Option::is_none")]
18579 pub user: Option<Box<User>>,
18580}
18581#[doc = "User Inventory Info\n\nUser Inventory Info events report user inventory data that is either logged or proactively collected. For example, when collecting user information from Active Directory entries.\n\n[UID:5003] Category: discovery | Name: user_inventory"]
18582#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
18583#[serde(default)]
18584#[non_exhaustive]
18585pub struct UserInventory {
18586 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
18587 #[serde(rename = "action")]
18588 #[serde(skip_serializing_if = "Option::is_none")]
18589 pub action: Option<String>,
18590 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
18591 #[serde(rename = "action_id")]
18592 #[serde(skip_serializing_if = "Option::is_none")]
18593 pub action_id: Option<i64>,
18594 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
18595 #[serde(rename = "activity_id")]
18596 #[serde(skip_serializing_if = "Option::is_none")]
18597 pub activity_id: Option<i64>,
18598 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
18599 #[serde(rename = "activity_name")]
18600 #[serde(skip_serializing_if = "Option::is_none")]
18601 pub activity_name: Option<String>,
18602 #[doc = "Actor\n\nThe actor describes the process that was the source of the inventory activity. In the case of user inventory data, that could be a particular process or script that is run to scrape the user data. For example, it could be a powershell process that runs to pull data from the Azure AD graph API.\n\noptional"]
18603 #[serde(rename = "actor")]
18604 #[serde(skip_serializing_if = "Option::is_none")]
18605 pub actor: Option<Box<Actor>>,
18606 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
18607 #[serde(rename = "api")]
18608 #[serde(skip_serializing_if = "Option::is_none")]
18609 pub api: Option<Box<Api>>,
18610 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
18611 #[serde(rename = "attacks")]
18612 #[serde(skip_serializing_if = "Option::is_none")]
18613 pub attacks: Option<Vec<Attack>>,
18614 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
18615 #[serde(rename = "authorizations")]
18616 #[serde(skip_serializing_if = "Option::is_none")]
18617 pub authorizations: Option<Vec<Authorization>>,
18618 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
18619 #[serde(rename = "category_name")]
18620 #[serde(skip_serializing_if = "Option::is_none")]
18621 pub category_name: Option<String>,
18622 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
18623 #[serde(rename = "category_uid")]
18624 #[serde(skip_serializing_if = "Option::is_none")]
18625 pub category_uid: Option<i64>,
18626 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>User Inventory Info</code>.\n\noptional"]
18627 #[serde(rename = "class_name")]
18628 #[serde(skip_serializing_if = "Option::is_none")]
18629 pub class_name: Option<String>,
18630 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
18631 #[serde(rename = "class_uid")]
18632 #[serde(skip_serializing_if = "Option::is_none")]
18633 pub class_uid: Option<i64>,
18634 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
18635 #[serde(rename = "cloud")]
18636 #[serde(skip_serializing_if = "Option::is_none")]
18637 pub cloud: Option<Box<Cloud>>,
18638 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18639 #[serde(rename = "confidence")]
18640 #[serde(skip_serializing_if = "Option::is_none")]
18641 pub confidence: Option<String>,
18642 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
18643 #[serde(rename = "confidence_id")]
18644 #[serde(skip_serializing_if = "Option::is_none")]
18645 pub confidence_id: Option<i64>,
18646 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
18647 #[serde(rename = "confidence_score")]
18648 #[serde(skip_serializing_if = "Option::is_none")]
18649 pub confidence_score: Option<i64>,
18650 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
18651 #[serde(rename = "count")]
18652 #[serde(skip_serializing_if = "Option::is_none")]
18653 pub count: Option<i64>,
18654 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
18655 #[serde(rename = "device")]
18656 #[serde(skip_serializing_if = "Option::is_none")]
18657 pub device: Option<Box<Device>>,
18658 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18659 #[serde(rename = "disposition")]
18660 #[serde(skip_serializing_if = "Option::is_none")]
18661 pub disposition: Option<String>,
18662 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
18663 #[serde(rename = "disposition_id")]
18664 #[serde(skip_serializing_if = "Option::is_none")]
18665 pub disposition_id: Option<i64>,
18666 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
18667 #[serde(rename = "duration")]
18668 #[serde(skip_serializing_if = "Option::is_none")]
18669 pub duration: Option<i64>,
18670 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18671 #[serde(rename = "end_time")]
18672 #[serde(skip_serializing_if = "Option::is_none")]
18673 pub end_time: Option<i64>,
18674 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18675 #[serde(rename = "end_time_dt")]
18676 #[serde(skip_serializing_if = "Option::is_none")]
18677 pub end_time_dt: Option<String>,
18678 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
18679 #[serde(rename = "enrichments")]
18680 #[serde(skip_serializing_if = "Option::is_none")]
18681 pub enrichments: Option<Vec<Enrichment>>,
18682 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
18683 #[serde(rename = "firewall_rule")]
18684 #[serde(skip_serializing_if = "Option::is_none")]
18685 pub firewall_rule: Option<Box<FirewallRule>>,
18686 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
18687 #[serde(rename = "is_alert")]
18688 #[serde(skip_serializing_if = "Option::is_none")]
18689 pub is_alert: Option<bool>,
18690 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
18691 #[serde(rename = "malware")]
18692 #[serde(skip_serializing_if = "Option::is_none")]
18693 pub malware: Option<Vec<Malware>>,
18694 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
18695 #[serde(rename = "malware_scan_info")]
18696 #[serde(skip_serializing_if = "Option::is_none")]
18697 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
18698 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
18699 #[serde(rename = "message")]
18700 #[serde(skip_serializing_if = "Option::is_none")]
18701 pub message: Option<String>,
18702 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
18703 #[serde(rename = "metadata")]
18704 #[serde(skip_serializing_if = "Option::is_none")]
18705 pub metadata: Option<Box<Metadata>>,
18706 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
18707 #[serde(rename = "observables")]
18708 #[serde(skip_serializing_if = "Option::is_none")]
18709 pub observables: Option<Vec<Observable>>,
18710 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
18711 #[serde(rename = "osint")]
18712 #[serde(skip_serializing_if = "Option::is_none")]
18713 pub osint: Option<Vec<Osint>>,
18714 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
18715 #[serde(rename = "policy")]
18716 #[serde(skip_serializing_if = "Option::is_none")]
18717 pub policy: Option<Box<Policy>>,
18718 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
18719 #[serde(rename = "raw_data")]
18720 #[serde(skip_serializing_if = "Option::is_none")]
18721 pub raw_data: Option<String>,
18722 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
18723 #[serde(rename = "raw_data_hash")]
18724 #[serde(skip_serializing_if = "Option::is_none")]
18725 pub raw_data_hash: Option<Box<Fingerprint>>,
18726 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
18727 #[serde(rename = "raw_data_size")]
18728 #[serde(skip_serializing_if = "Option::is_none")]
18729 pub raw_data_size: Option<i64>,
18730 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
18731 #[serde(rename = "risk_details")]
18732 #[serde(skip_serializing_if = "Option::is_none")]
18733 pub risk_details: Option<String>,
18734 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
18735 #[serde(rename = "risk_level")]
18736 #[serde(skip_serializing_if = "Option::is_none")]
18737 pub risk_level: Option<String>,
18738 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
18739 #[serde(rename = "risk_level_id")]
18740 #[serde(skip_serializing_if = "Option::is_none")]
18741 pub risk_level_id: Option<i64>,
18742 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
18743 #[serde(rename = "risk_score")]
18744 #[serde(skip_serializing_if = "Option::is_none")]
18745 pub risk_score: Option<i64>,
18746 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
18747 #[serde(rename = "severity")]
18748 #[serde(skip_serializing_if = "Option::is_none")]
18749 pub severity: Option<String>,
18750 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
18751 #[serde(rename = "severity_id")]
18752 #[serde(skip_serializing_if = "Option::is_none")]
18753 pub severity_id: Option<i64>,
18754 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18755 #[serde(rename = "start_time")]
18756 #[serde(skip_serializing_if = "Option::is_none")]
18757 pub start_time: Option<i64>,
18758 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18759 #[serde(rename = "start_time_dt")]
18760 #[serde(skip_serializing_if = "Option::is_none")]
18761 pub start_time_dt: Option<String>,
18762 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
18763 #[serde(rename = "status")]
18764 #[serde(skip_serializing_if = "Option::is_none")]
18765 pub status: Option<String>,
18766 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
18767 #[serde(rename = "status_code")]
18768 #[serde(skip_serializing_if = "Option::is_none")]
18769 pub status_code: Option<String>,
18770 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
18771 #[serde(rename = "status_detail")]
18772 #[serde(skip_serializing_if = "Option::is_none")]
18773 pub status_detail: Option<String>,
18774 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
18775 #[serde(rename = "status_id")]
18776 #[serde(skip_serializing_if = "Option::is_none")]
18777 pub status_id: Option<i64>,
18778 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
18779 #[serde(rename = "time")]
18780 #[serde(skip_serializing_if = "Option::is_none")]
18781 pub time: Option<i64>,
18782 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
18783 #[serde(rename = "time_dt")]
18784 #[serde(skip_serializing_if = "Option::is_none")]
18785 pub time_dt: Option<String>,
18786 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
18787 #[serde(rename = "timezone_offset")]
18788 #[serde(skip_serializing_if = "Option::is_none")]
18789 pub timezone_offset: Option<i64>,
18790 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
18791 #[serde(rename = "type_name")]
18792 #[serde(skip_serializing_if = "Option::is_none")]
18793 pub type_name: Option<String>,
18794 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
18795 #[serde(rename = "type_uid")]
18796 #[serde(skip_serializing_if = "Option::is_none")]
18797 pub type_uid: Option<i64>,
18798 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
18799 #[serde(rename = "unmapped")]
18800 #[serde(skip_serializing_if = "Option::is_none")]
18801 pub unmapped: Option<serde_json::Value>,
18802 #[doc = "User\n\nThe user that is being discovered by an inventory process.\n\nrequired"]
18803 #[serde(rename = "user")]
18804 #[serde(skip_serializing_if = "Option::is_none")]
18805 pub user: Option<Box<User>>,
18806}
18807#[doc = "User Query\n\nUser Query events report user data that have been discovered, queried, polled or searched. This event differs from User Inventory as it describes the result of a targeted search by filtering a subset of user attributes.\n\n[UID:5018] Category: discovery | Name: user_query"]
18808#[deprecated(note = "Use the <code>Live Evidence Info</code> class. (Since 1.5.0)")]
18809#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
18810#[serde(default)]
18811#[non_exhaustive]
18812pub struct UserQuery {
18813 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
18814 #[serde(rename = "action")]
18815 #[serde(skip_serializing_if = "Option::is_none")]
18816 pub action: Option<String>,
18817 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
18818 #[serde(rename = "action_id")]
18819 #[serde(skip_serializing_if = "Option::is_none")]
18820 pub action_id: Option<i64>,
18821 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
18822 #[serde(rename = "activity_id")]
18823 #[serde(skip_serializing_if = "Option::is_none")]
18824 pub activity_id: Option<i64>,
18825 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
18826 #[serde(rename = "activity_name")]
18827 #[serde(skip_serializing_if = "Option::is_none")]
18828 pub activity_name: Option<String>,
18829 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
18830 #[serde(rename = "actor")]
18831 #[serde(skip_serializing_if = "Option::is_none")]
18832 pub actor: Option<Box<Actor>>,
18833 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
18834 #[serde(rename = "api")]
18835 #[serde(skip_serializing_if = "Option::is_none")]
18836 pub api: Option<Box<Api>>,
18837 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
18838 #[serde(rename = "attacks")]
18839 #[serde(skip_serializing_if = "Option::is_none")]
18840 pub attacks: Option<Vec<Attack>>,
18841 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
18842 #[serde(rename = "authorizations")]
18843 #[serde(skip_serializing_if = "Option::is_none")]
18844 pub authorizations: Option<Vec<Authorization>>,
18845 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
18846 #[serde(rename = "category_name")]
18847 #[serde(skip_serializing_if = "Option::is_none")]
18848 pub category_name: Option<String>,
18849 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
18850 #[serde(rename = "category_uid")]
18851 #[serde(skip_serializing_if = "Option::is_none")]
18852 pub category_uid: Option<i64>,
18853 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>User Query</code>.\n\noptional"]
18854 #[serde(rename = "class_name")]
18855 #[serde(skip_serializing_if = "Option::is_none")]
18856 pub class_name: Option<String>,
18857 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
18858 #[serde(rename = "class_uid")]
18859 #[serde(skip_serializing_if = "Option::is_none")]
18860 pub class_uid: Option<i64>,
18861 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
18862 #[serde(rename = "cloud")]
18863 #[serde(skip_serializing_if = "Option::is_none")]
18864 pub cloud: Option<Box<Cloud>>,
18865 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18866 #[serde(rename = "confidence")]
18867 #[serde(skip_serializing_if = "Option::is_none")]
18868 pub confidence: Option<String>,
18869 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
18870 #[serde(rename = "confidence_id")]
18871 #[serde(skip_serializing_if = "Option::is_none")]
18872 pub confidence_id: Option<i64>,
18873 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
18874 #[serde(rename = "confidence_score")]
18875 #[serde(skip_serializing_if = "Option::is_none")]
18876 pub confidence_score: Option<i64>,
18877 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
18878 #[serde(rename = "count")]
18879 #[serde(skip_serializing_if = "Option::is_none")]
18880 pub count: Option<i64>,
18881 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
18882 #[serde(rename = "device")]
18883 #[serde(skip_serializing_if = "Option::is_none")]
18884 pub device: Option<Box<Device>>,
18885 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
18886 #[serde(rename = "disposition")]
18887 #[serde(skip_serializing_if = "Option::is_none")]
18888 pub disposition: Option<String>,
18889 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
18890 #[serde(rename = "disposition_id")]
18891 #[serde(skip_serializing_if = "Option::is_none")]
18892 pub disposition_id: Option<i64>,
18893 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
18894 #[serde(rename = "duration")]
18895 #[serde(skip_serializing_if = "Option::is_none")]
18896 pub duration: Option<i64>,
18897 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18898 #[serde(rename = "end_time")]
18899 #[serde(skip_serializing_if = "Option::is_none")]
18900 pub end_time: Option<i64>,
18901 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
18902 #[serde(rename = "end_time_dt")]
18903 #[serde(skip_serializing_if = "Option::is_none")]
18904 pub end_time_dt: Option<String>,
18905 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
18906 #[serde(rename = "enrichments")]
18907 #[serde(skip_serializing_if = "Option::is_none")]
18908 pub enrichments: Option<Vec<Enrichment>>,
18909 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
18910 #[serde(rename = "firewall_rule")]
18911 #[serde(skip_serializing_if = "Option::is_none")]
18912 pub firewall_rule: Option<Box<FirewallRule>>,
18913 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
18914 #[serde(rename = "is_alert")]
18915 #[serde(skip_serializing_if = "Option::is_none")]
18916 pub is_alert: Option<bool>,
18917 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
18918 #[serde(rename = "malware")]
18919 #[serde(skip_serializing_if = "Option::is_none")]
18920 pub malware: Option<Vec<Malware>>,
18921 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
18922 #[serde(rename = "malware_scan_info")]
18923 #[serde(skip_serializing_if = "Option::is_none")]
18924 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
18925 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
18926 #[serde(rename = "message")]
18927 #[serde(skip_serializing_if = "Option::is_none")]
18928 pub message: Option<String>,
18929 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
18930 #[serde(rename = "metadata")]
18931 #[serde(skip_serializing_if = "Option::is_none")]
18932 pub metadata: Option<Box<Metadata>>,
18933 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
18934 #[serde(rename = "observables")]
18935 #[serde(skip_serializing_if = "Option::is_none")]
18936 pub observables: Option<Vec<Observable>>,
18937 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
18938 #[serde(rename = "osint")]
18939 #[serde(skip_serializing_if = "Option::is_none")]
18940 pub osint: Option<Vec<Osint>>,
18941 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
18942 #[serde(rename = "policy")]
18943 #[serde(skip_serializing_if = "Option::is_none")]
18944 pub policy: Option<Box<Policy>>,
18945 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
18946 #[serde(rename = "query_info")]
18947 #[serde(skip_serializing_if = "Option::is_none")]
18948 pub query_info: Option<Box<QueryInfo>>,
18949 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
18950 #[serde(rename = "query_result")]
18951 #[serde(skip_serializing_if = "Option::is_none")]
18952 pub query_result: Option<String>,
18953 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
18954 #[serde(rename = "query_result_id")]
18955 #[serde(skip_serializing_if = "Option::is_none")]
18956 pub query_result_id: Option<i64>,
18957 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
18958 #[serde(rename = "raw_data")]
18959 #[serde(skip_serializing_if = "Option::is_none")]
18960 pub raw_data: Option<String>,
18961 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
18962 #[serde(rename = "raw_data_hash")]
18963 #[serde(skip_serializing_if = "Option::is_none")]
18964 pub raw_data_hash: Option<Box<Fingerprint>>,
18965 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
18966 #[serde(rename = "raw_data_size")]
18967 #[serde(skip_serializing_if = "Option::is_none")]
18968 pub raw_data_size: Option<i64>,
18969 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
18970 #[serde(rename = "risk_details")]
18971 #[serde(skip_serializing_if = "Option::is_none")]
18972 pub risk_details: Option<String>,
18973 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
18974 #[serde(rename = "risk_level")]
18975 #[serde(skip_serializing_if = "Option::is_none")]
18976 pub risk_level: Option<String>,
18977 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
18978 #[serde(rename = "risk_level_id")]
18979 #[serde(skip_serializing_if = "Option::is_none")]
18980 pub risk_level_id: Option<i64>,
18981 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
18982 #[serde(rename = "risk_score")]
18983 #[serde(skip_serializing_if = "Option::is_none")]
18984 pub risk_score: Option<i64>,
18985 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
18986 #[serde(rename = "severity")]
18987 #[serde(skip_serializing_if = "Option::is_none")]
18988 pub severity: Option<String>,
18989 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
18990 #[serde(rename = "severity_id")]
18991 #[serde(skip_serializing_if = "Option::is_none")]
18992 pub severity_id: Option<i64>,
18993 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18994 #[serde(rename = "start_time")]
18995 #[serde(skip_serializing_if = "Option::is_none")]
18996 pub start_time: Option<i64>,
18997 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
18998 #[serde(rename = "start_time_dt")]
18999 #[serde(skip_serializing_if = "Option::is_none")]
19000 pub start_time_dt: Option<String>,
19001 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
19002 #[serde(rename = "status")]
19003 #[serde(skip_serializing_if = "Option::is_none")]
19004 pub status: Option<String>,
19005 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
19006 #[serde(rename = "status_code")]
19007 #[serde(skip_serializing_if = "Option::is_none")]
19008 pub status_code: Option<String>,
19009 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
19010 #[serde(rename = "status_detail")]
19011 #[serde(skip_serializing_if = "Option::is_none")]
19012 pub status_detail: Option<String>,
19013 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
19014 #[serde(rename = "status_id")]
19015 #[serde(skip_serializing_if = "Option::is_none")]
19016 pub status_id: Option<i64>,
19017 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
19018 #[serde(rename = "time")]
19019 #[serde(skip_serializing_if = "Option::is_none")]
19020 pub time: Option<i64>,
19021 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
19022 #[serde(rename = "time_dt")]
19023 #[serde(skip_serializing_if = "Option::is_none")]
19024 pub time_dt: Option<String>,
19025 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
19026 #[serde(rename = "timezone_offset")]
19027 #[serde(skip_serializing_if = "Option::is_none")]
19028 pub timezone_offset: Option<i64>,
19029 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
19030 #[serde(rename = "type_name")]
19031 #[serde(skip_serializing_if = "Option::is_none")]
19032 pub type_name: Option<String>,
19033 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
19034 #[serde(rename = "type_uid")]
19035 #[serde(skip_serializing_if = "Option::is_none")]
19036 pub type_uid: Option<i64>,
19037 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
19038 #[serde(rename = "unmapped")]
19039 #[serde(skip_serializing_if = "Option::is_none")]
19040 pub unmapped: Option<serde_json::Value>,
19041 #[doc = "User\n\nThe user that pertains to the event or object.\n\nrequired"]
19042 #[serde(rename = "user")]
19043 #[serde(skip_serializing_if = "Option::is_none")]
19044 pub user: Option<Box<User>>,
19045}
19046#[doc = "Vulnerability Finding\n\nThe Vulnerability Finding event is a notification about weakness in an information system, system security procedures, internal controls, or implementation that could be exploited or triggered by a threat source. Note: if the event producer is a security control, the <code>security_control</code> profile should be applied and its <code>attacks</code> information, if present, should be duplicated into the <code>finding_info</code> object. <br><strong>Note: </strong>If the Finding is an incident, i.e. requires incident workflow, also apply the <code>incident</code> profile or aggregate this finding into an <code>Incident Finding</code>.\n\n[UID:2002] Category: findings | Name: vulnerability_finding"]
19047#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
19048#[serde(default)]
19049#[non_exhaustive]
19050pub struct VulnerabilityFinding {
19051 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
19052 #[serde(rename = "action")]
19053 #[serde(skip_serializing_if = "Option::is_none")]
19054 pub action: Option<String>,
19055 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
19056 #[serde(rename = "action_id")]
19057 #[serde(skip_serializing_if = "Option::is_none")]
19058 pub action_id: Option<i64>,
19059 #[doc = "Activity ID\n\nThe normalized identifier of the finding activity.\n\nrequired"]
19060 #[serde(rename = "activity_id")]
19061 #[serde(skip_serializing_if = "Option::is_none")]
19062 pub activity_id: Option<i64>,
19063 #[doc = "Activity\n\nThe finding activity name, as defined by the <code>activity_id</code>.\n\noptional"]
19064 #[serde(rename = "activity_name")]
19065 #[serde(skip_serializing_if = "Option::is_none")]
19066 pub activity_name: Option<String>,
19067 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
19068 #[serde(rename = "actor")]
19069 #[serde(skip_serializing_if = "Option::is_none")]
19070 pub actor: Option<Box<Actor>>,
19071 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
19072 #[serde(rename = "api")]
19073 #[serde(skip_serializing_if = "Option::is_none")]
19074 pub api: Option<Box<Api>>,
19075 #[doc = "Assignee\n\nThe details of the user assigned to an Incident.\n\noptional"]
19076 #[serde(rename = "assignee")]
19077 #[serde(skip_serializing_if = "Option::is_none")]
19078 pub assignee: Option<Box<User>>,
19079 #[doc = "Assignee Group\n\nThe details of the group assigned to an Incident.\n\noptional"]
19080 #[serde(rename = "assignee_group")]
19081 #[serde(skip_serializing_if = "Option::is_none")]
19082 pub assignee_group: Option<Box<Group>>,
19083 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
19084 #[serde(rename = "attacks")]
19085 #[serde(skip_serializing_if = "Option::is_none")]
19086 pub attacks: Option<Vec<Attack>>,
19087 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
19088 #[serde(rename = "authorizations")]
19089 #[serde(skip_serializing_if = "Option::is_none")]
19090 pub authorizations: Option<Vec<Authorization>>,
19091 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Findings</code>.\n\noptional"]
19092 #[serde(rename = "category_name")]
19093 #[serde(skip_serializing_if = "Option::is_none")]
19094 pub category_name: Option<String>,
19095 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
19096 #[serde(rename = "category_uid")]
19097 #[serde(skip_serializing_if = "Option::is_none")]
19098 pub category_uid: Option<i64>,
19099 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Vulnerability Finding</code>.\n\noptional"]
19100 #[serde(rename = "class_name")]
19101 #[serde(skip_serializing_if = "Option::is_none")]
19102 pub class_name: Option<String>,
19103 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
19104 #[serde(rename = "class_uid")]
19105 #[serde(skip_serializing_if = "Option::is_none")]
19106 pub class_uid: Option<i64>,
19107 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
19108 #[serde(rename = "cloud")]
19109 #[serde(skip_serializing_if = "Option::is_none")]
19110 pub cloud: Option<Box<Cloud>>,
19111 #[doc = "Comment\n\nA user provided comment about the finding.\n\noptional"]
19112 #[serde(rename = "comment")]
19113 #[serde(skip_serializing_if = "Option::is_none")]
19114 pub comment: Option<String>,
19115 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19116 #[serde(rename = "confidence")]
19117 #[serde(skip_serializing_if = "Option::is_none")]
19118 pub confidence: Option<String>,
19119 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
19120 #[serde(rename = "confidence_id")]
19121 #[serde(skip_serializing_if = "Option::is_none")]
19122 pub confidence_id: Option<i64>,
19123 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
19124 #[serde(rename = "confidence_score")]
19125 #[serde(skip_serializing_if = "Option::is_none")]
19126 pub confidence_score: Option<i64>,
19127 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
19128 #[serde(rename = "count")]
19129 #[serde(skip_serializing_if = "Option::is_none")]
19130 pub count: Option<i64>,
19131 #[doc = "Device\n\nDescribes the affected device/host. If applicable, it can be used in conjunction with <code>Resource(s)</code>. <p> e.g. Specific details about an AWS EC2 instance, that is affected by the Finding.</p>\n\noptional"]
19132 #[serde(rename = "device")]
19133 #[serde(skip_serializing_if = "Option::is_none")]
19134 pub device: Option<Box<Device>>,
19135 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19136 #[serde(rename = "disposition")]
19137 #[serde(skip_serializing_if = "Option::is_none")]
19138 pub disposition: Option<String>,
19139 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
19140 #[serde(rename = "disposition_id")]
19141 #[serde(skip_serializing_if = "Option::is_none")]
19142 pub disposition_id: Option<i64>,
19143 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
19144 #[serde(rename = "duration")]
19145 #[serde(skip_serializing_if = "Option::is_none")]
19146 pub duration: Option<i64>,
19147 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
19148 #[serde(rename = "end_time")]
19149 #[serde(skip_serializing_if = "Option::is_none")]
19150 pub end_time: Option<i64>,
19151 #[doc = "End Time\n\nThe time of the most recent event included in the finding.\n\noptional"]
19152 #[serde(rename = "end_time_dt")]
19153 #[serde(skip_serializing_if = "Option::is_none")]
19154 pub end_time_dt: Option<String>,
19155 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
19156 #[serde(rename = "enrichments")]
19157 #[serde(skip_serializing_if = "Option::is_none")]
19158 pub enrichments: Option<Vec<Enrichment>>,
19159 #[doc = "Finding Information\n\nDescribes the supporting information about a generated finding.\n\nrequired"]
19160 #[serde(rename = "finding_info")]
19161 #[serde(skip_serializing_if = "Option::is_none")]
19162 pub finding_info: Option<Box<FindingInfo>>,
19163 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
19164 #[serde(rename = "firewall_rule")]
19165 #[serde(skip_serializing_if = "Option::is_none")]
19166 pub firewall_rule: Option<Box<FirewallRule>>,
19167 #[doc = "Impact\n\nThe impact , normalized to the caption of the impact_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
19168 #[serde(rename = "impact")]
19169 #[serde(skip_serializing_if = "Option::is_none")]
19170 pub impact: Option<String>,
19171 #[doc = "Impact ID\n\nThe normalized impact of the incident or finding. Per NIST, this is the magnitude of harm that can be expected to result from the consequences of unauthorized disclosure, modification, destruction, or loss of information or information system availability.\n\nrecommended"]
19172 #[serde(rename = "impact_id")]
19173 #[serde(skip_serializing_if = "Option::is_none")]
19174 pub impact_id: Option<i64>,
19175 #[doc = "Impact Score\n\nThe impact as an integer value of the finding, valid range 0-100.\n\nrecommended"]
19176 #[serde(rename = "impact_score")]
19177 #[serde(skip_serializing_if = "Option::is_none")]
19178 pub impact_score: Option<i64>,
19179 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
19180 #[serde(rename = "is_alert")]
19181 #[serde(skip_serializing_if = "Option::is_none")]
19182 pub is_alert: Option<bool>,
19183 #[doc = "Suspected Breach\n\nA determination based on analytics as to whether a potential breach was found.\n\noptional"]
19184 #[serde(rename = "is_suspected_breach")]
19185 #[serde(skip_serializing_if = "Option::is_none")]
19186 pub is_suspected_breach: Option<bool>,
19187 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
19188 #[serde(rename = "malware")]
19189 #[serde(skip_serializing_if = "Option::is_none")]
19190 pub malware: Option<Vec<Malware>>,
19191 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
19192 #[serde(rename = "malware_scan_info")]
19193 #[serde(skip_serializing_if = "Option::is_none")]
19194 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
19195 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
19196 #[serde(rename = "message")]
19197 #[serde(skip_serializing_if = "Option::is_none")]
19198 pub message: Option<String>,
19199 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
19200 #[serde(rename = "metadata")]
19201 #[serde(skip_serializing_if = "Option::is_none")]
19202 pub metadata: Option<Box<Metadata>>,
19203 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
19204 #[serde(rename = "observables")]
19205 #[serde(skip_serializing_if = "Option::is_none")]
19206 pub observables: Option<Vec<Observable>>,
19207 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
19208 #[serde(rename = "osint")]
19209 #[serde(skip_serializing_if = "Option::is_none")]
19210 pub osint: Option<Vec<Osint>>,
19211 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
19212 #[serde(rename = "policy")]
19213 #[serde(skip_serializing_if = "Option::is_none")]
19214 pub policy: Option<Box<Policy>>,
19215 #[doc = "Priority\n\nThe priority, normalized to the caption of the priority_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19216 #[serde(rename = "priority")]
19217 #[serde(skip_serializing_if = "Option::is_none")]
19218 pub priority: Option<String>,
19219 #[doc = "Priority ID\n\nThe normalized priority. Priority identifies the relative importance of the incident or finding. It is a measurement of urgency.\n\nrecommended"]
19220 #[serde(rename = "priority_id")]
19221 #[serde(skip_serializing_if = "Option::is_none")]
19222 pub priority_id: Option<i64>,
19223 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
19224 #[serde(rename = "raw_data")]
19225 #[serde(skip_serializing_if = "Option::is_none")]
19226 pub raw_data: Option<String>,
19227 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
19228 #[serde(rename = "raw_data_hash")]
19229 #[serde(skip_serializing_if = "Option::is_none")]
19230 pub raw_data_hash: Option<Box<Fingerprint>>,
19231 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
19232 #[serde(rename = "raw_data_size")]
19233 #[serde(skip_serializing_if = "Option::is_none")]
19234 pub raw_data_size: Option<i64>,
19235 #[doc = "Resource\n\nDescribes details about the resource that is affected by the vulnerability/vulnerabilities.\n\nrecommended"]
19236 #[serde(rename = "resource")]
19237 #[serde(skip_serializing_if = "Option::is_none")]
19238 pub resource: Option<Box<ResourceDetails>>,
19239 #[doc = "Affected Resources\n\nDescribes details about the resource/resources that are affected by the vulnerability/vulnerabilities.\n\nrecommended"]
19240 #[serde(rename = "resources")]
19241 #[serde(skip_serializing_if = "Option::is_none")]
19242 pub resources: Option<Vec<ResourceDetails>>,
19243 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
19244 #[serde(rename = "risk_details")]
19245 #[serde(skip_serializing_if = "Option::is_none")]
19246 pub risk_details: Option<String>,
19247 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
19248 #[serde(rename = "risk_level")]
19249 #[serde(skip_serializing_if = "Option::is_none")]
19250 pub risk_level: Option<String>,
19251 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
19252 #[serde(rename = "risk_level_id")]
19253 #[serde(skip_serializing_if = "Option::is_none")]
19254 pub risk_level_id: Option<i64>,
19255 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
19256 #[serde(rename = "risk_score")]
19257 #[serde(skip_serializing_if = "Option::is_none")]
19258 pub risk_score: Option<i64>,
19259 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
19260 #[serde(rename = "severity")]
19261 #[serde(skip_serializing_if = "Option::is_none")]
19262 pub severity: Option<String>,
19263 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
19264 #[serde(rename = "severity_id")]
19265 #[serde(skip_serializing_if = "Option::is_none")]
19266 pub severity_id: Option<i64>,
19267 #[doc = "Source URL\n\nA Url link used to access the original incident.\n\nrecommended"]
19268 #[serde(rename = "src_url")]
19269 #[serde(skip_serializing_if = "Option::is_none")]
19270 pub src_url: Option<String>,
19271 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
19272 #[serde(rename = "start_time")]
19273 #[serde(skip_serializing_if = "Option::is_none")]
19274 pub start_time: Option<i64>,
19275 #[doc = "Start Time\n\nThe time of the least recent event included in the finding.\n\noptional"]
19276 #[serde(rename = "start_time_dt")]
19277 #[serde(skip_serializing_if = "Option::is_none")]
19278 pub start_time_dt: Option<String>,
19279 #[doc = "Status\n\nThe normalized status of the Finding set by the consumer normalized to the caption of the status_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
19280 #[serde(rename = "status")]
19281 #[serde(skip_serializing_if = "Option::is_none")]
19282 pub status: Option<String>,
19283 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
19284 #[serde(rename = "status_code")]
19285 #[serde(skip_serializing_if = "Option::is_none")]
19286 pub status_code: Option<String>,
19287 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
19288 #[serde(rename = "status_detail")]
19289 #[serde(skip_serializing_if = "Option::is_none")]
19290 pub status_detail: Option<String>,
19291 #[doc = "Status ID\n\nThe normalized status identifier of the Finding, set by the consumer.\n\nrecommended"]
19292 #[serde(rename = "status_id")]
19293 #[serde(skip_serializing_if = "Option::is_none")]
19294 pub status_id: Option<i64>,
19295 #[doc = "Ticket\n\nThe linked ticket in the ticketing system.\n\noptional"]
19296 #[serde(rename = "ticket")]
19297 #[serde(skip_serializing_if = "Option::is_none")]
19298 pub ticket: Option<Box<Ticket>>,
19299 #[doc = "Tickets\n\nThe associated ticket(s) in the ticketing system. Each ticket contains details like ticket ID, status, etc.\n\noptional"]
19300 #[serde(rename = "tickets")]
19301 #[serde(skip_serializing_if = "Option::is_none")]
19302 pub tickets: Option<Vec<Ticket>>,
19303 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
19304 #[serde(rename = "time")]
19305 #[serde(skip_serializing_if = "Option::is_none")]
19306 pub time: Option<i64>,
19307 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
19308 #[serde(rename = "time_dt")]
19309 #[serde(skip_serializing_if = "Option::is_none")]
19310 pub time_dt: Option<String>,
19311 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
19312 #[serde(rename = "timezone_offset")]
19313 #[serde(skip_serializing_if = "Option::is_none")]
19314 pub timezone_offset: Option<i64>,
19315 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
19316 #[serde(rename = "type_name")]
19317 #[serde(skip_serializing_if = "Option::is_none")]
19318 pub type_name: Option<String>,
19319 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
19320 #[serde(rename = "type_uid")]
19321 #[serde(skip_serializing_if = "Option::is_none")]
19322 pub type_uid: Option<i64>,
19323 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
19324 #[serde(rename = "unmapped")]
19325 #[serde(skip_serializing_if = "Option::is_none")]
19326 pub unmapped: Option<serde_json::Value>,
19327 #[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\noptional"]
19328 #[serde(rename = "vendor_attributes")]
19329 #[serde(skip_serializing_if = "Option::is_none")]
19330 pub vendor_attributes: Option<Box<VendorAttributes>>,
19331 #[doc = "Verdict\n\nThe verdict assigned to an Incident finding.\n\nrecommended"]
19332 #[serde(rename = "verdict")]
19333 #[serde(skip_serializing_if = "Option::is_none")]
19334 pub verdict: Option<String>,
19335 #[doc = "Verdict ID\n\nThe normalized verdict of an Incident.\n\nrecommended"]
19336 #[serde(rename = "verdict_id")]
19337 #[serde(skip_serializing_if = "Option::is_none")]
19338 pub verdict_id: Option<i64>,
19339 #[doc = "Vulnerabilities\n\nThis object describes vulnerabilities reported in a security finding.\n\nrequired"]
19340 #[serde(rename = "vulnerabilities")]
19341 #[serde(skip_serializing_if = "Option::is_none")]
19342 pub vulnerabilities: Option<Vec<Vulnerability>>,
19343}
19344#[doc = "Web Resource Access Activity\n\nWeb Resource Access Activity events describe successful/failed attempts to access a web resource over HTTP.\n\n[UID:6004] Category: application | Name: web_resource_access_activity"]
19345#[deprecated(
19346 note = "Use the <code>Web Resources Activity</code> class with the <code>Security Control</code> and/or <code>Network Proxy</code> profile instead. (Since 1.1.0)"
19347)]
19348#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
19349#[serde(default)]
19350#[non_exhaustive]
19351pub struct WebResourceAccessActivity {
19352 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
19353 #[serde(rename = "action")]
19354 #[serde(skip_serializing_if = "Option::is_none")]
19355 pub action: Option<String>,
19356 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
19357 #[serde(rename = "action_id")]
19358 #[serde(skip_serializing_if = "Option::is_none")]
19359 pub action_id: Option<i64>,
19360 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
19361 #[serde(rename = "activity_id")]
19362 #[serde(skip_serializing_if = "Option::is_none")]
19363 pub activity_id: Option<i64>,
19364 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
19365 #[serde(rename = "activity_name")]
19366 #[serde(skip_serializing_if = "Option::is_none")]
19367 pub activity_name: Option<String>,
19368 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
19369 #[serde(rename = "actor")]
19370 #[serde(skip_serializing_if = "Option::is_none")]
19371 pub actor: Option<Box<Actor>>,
19372 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
19373 #[serde(rename = "api")]
19374 #[serde(skip_serializing_if = "Option::is_none")]
19375 pub api: Option<Box<Api>>,
19376 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
19377 #[serde(rename = "attacks")]
19378 #[serde(skip_serializing_if = "Option::is_none")]
19379 pub attacks: Option<Vec<Attack>>,
19380 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
19381 #[serde(rename = "authorizations")]
19382 #[serde(skip_serializing_if = "Option::is_none")]
19383 pub authorizations: Option<Vec<Authorization>>,
19384 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
19385 #[serde(rename = "category_name")]
19386 #[serde(skip_serializing_if = "Option::is_none")]
19387 pub category_name: Option<String>,
19388 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
19389 #[serde(rename = "category_uid")]
19390 #[serde(skip_serializing_if = "Option::is_none")]
19391 pub category_uid: Option<i64>,
19392 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Web Resource Access Activity</code>.\n\noptional"]
19393 #[serde(rename = "class_name")]
19394 #[serde(skip_serializing_if = "Option::is_none")]
19395 pub class_name: Option<String>,
19396 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
19397 #[serde(rename = "class_uid")]
19398 #[serde(skip_serializing_if = "Option::is_none")]
19399 pub class_uid: Option<i64>,
19400 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
19401 #[serde(rename = "cloud")]
19402 #[serde(skip_serializing_if = "Option::is_none")]
19403 pub cloud: Option<Box<Cloud>>,
19404 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19405 #[serde(rename = "confidence")]
19406 #[serde(skip_serializing_if = "Option::is_none")]
19407 pub confidence: Option<String>,
19408 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
19409 #[serde(rename = "confidence_id")]
19410 #[serde(skip_serializing_if = "Option::is_none")]
19411 pub confidence_id: Option<i64>,
19412 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
19413 #[serde(rename = "confidence_score")]
19414 #[serde(skip_serializing_if = "Option::is_none")]
19415 pub confidence_score: Option<i64>,
19416 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
19417 #[serde(rename = "count")]
19418 #[serde(skip_serializing_if = "Option::is_none")]
19419 pub count: Option<i64>,
19420 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
19421 #[serde(rename = "device")]
19422 #[serde(skip_serializing_if = "Option::is_none")]
19423 pub device: Option<Box<Device>>,
19424 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19425 #[serde(rename = "disposition")]
19426 #[serde(skip_serializing_if = "Option::is_none")]
19427 pub disposition: Option<String>,
19428 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
19429 #[serde(rename = "disposition_id")]
19430 #[serde(skip_serializing_if = "Option::is_none")]
19431 pub disposition_id: Option<i64>,
19432 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
19433 #[serde(rename = "duration")]
19434 #[serde(skip_serializing_if = "Option::is_none")]
19435 pub duration: Option<i64>,
19436 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19437 #[serde(rename = "end_time")]
19438 #[serde(skip_serializing_if = "Option::is_none")]
19439 pub end_time: Option<i64>,
19440 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19441 #[serde(rename = "end_time_dt")]
19442 #[serde(skip_serializing_if = "Option::is_none")]
19443 pub end_time_dt: Option<String>,
19444 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
19445 #[serde(rename = "enrichments")]
19446 #[serde(skip_serializing_if = "Option::is_none")]
19447 pub enrichments: Option<Vec<Enrichment>>,
19448 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
19449 #[serde(rename = "firewall_rule")]
19450 #[serde(skip_serializing_if = "Option::is_none")]
19451 pub firewall_rule: Option<Box<FirewallRule>>,
19452 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\nrequired"]
19453 #[serde(rename = "http_request")]
19454 #[serde(skip_serializing_if = "Option::is_none")]
19455 pub http_request: Option<Box<HttpRequest>>,
19456 #[doc = "HTTP Response\n\nDetails about the HTTP response, if available.\n\noptional"]
19457 #[serde(rename = "http_response")]
19458 #[serde(skip_serializing_if = "Option::is_none")]
19459 pub http_response: Option<Box<HttpResponse>>,
19460 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
19461 #[serde(rename = "is_alert")]
19462 #[serde(skip_serializing_if = "Option::is_none")]
19463 pub is_alert: Option<bool>,
19464 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
19465 #[serde(rename = "malware")]
19466 #[serde(skip_serializing_if = "Option::is_none")]
19467 pub malware: Option<Vec<Malware>>,
19468 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
19469 #[serde(rename = "malware_scan_info")]
19470 #[serde(skip_serializing_if = "Option::is_none")]
19471 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
19472 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
19473 #[serde(rename = "message")]
19474 #[serde(skip_serializing_if = "Option::is_none")]
19475 pub message: Option<String>,
19476 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
19477 #[serde(rename = "metadata")]
19478 #[serde(skip_serializing_if = "Option::is_none")]
19479 pub metadata: Option<Box<Metadata>>,
19480 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
19481 #[serde(rename = "observables")]
19482 #[serde(skip_serializing_if = "Option::is_none")]
19483 pub observables: Option<Vec<Observable>>,
19484 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
19485 #[serde(rename = "osint")]
19486 #[serde(skip_serializing_if = "Option::is_none")]
19487 pub osint: Option<Vec<Osint>>,
19488 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
19489 #[serde(rename = "policy")]
19490 #[serde(skip_serializing_if = "Option::is_none")]
19491 pub policy: Option<Box<Policy>>,
19492 #[doc = "Proxy\n\nDetails about the proxy service, if available.\n\noptional"]
19493 #[serde(rename = "proxy")]
19494 #[serde(skip_serializing_if = "Option::is_none")]
19495 pub proxy: Option<Box<NetworkProxy>>,
19496 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
19497 #[serde(rename = "proxy_connection_info")]
19498 #[serde(skip_serializing_if = "Option::is_none")]
19499 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
19500 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
19501 #[serde(rename = "proxy_endpoint")]
19502 #[serde(skip_serializing_if = "Option::is_none")]
19503 pub proxy_endpoint: Option<Box<NetworkProxy>>,
19504 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
19505 #[serde(rename = "proxy_http_request")]
19506 #[serde(skip_serializing_if = "Option::is_none")]
19507 pub proxy_http_request: Option<Box<HttpRequest>>,
19508 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
19509 #[serde(rename = "proxy_http_response")]
19510 #[serde(skip_serializing_if = "Option::is_none")]
19511 pub proxy_http_response: Option<Box<HttpResponse>>,
19512 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
19513 #[serde(rename = "proxy_tls")]
19514 #[serde(skip_serializing_if = "Option::is_none")]
19515 pub proxy_tls: Option<Box<Tls>>,
19516 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
19517 #[serde(rename = "proxy_traffic")]
19518 #[serde(skip_serializing_if = "Option::is_none")]
19519 pub proxy_traffic: Option<Box<NetworkTraffic>>,
19520 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
19521 #[serde(rename = "raw_data")]
19522 #[serde(skip_serializing_if = "Option::is_none")]
19523 pub raw_data: Option<String>,
19524 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
19525 #[serde(rename = "raw_data_hash")]
19526 #[serde(skip_serializing_if = "Option::is_none")]
19527 pub raw_data_hash: Option<Box<Fingerprint>>,
19528 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
19529 #[serde(rename = "raw_data_size")]
19530 #[serde(skip_serializing_if = "Option::is_none")]
19531 pub raw_data_size: Option<i64>,
19532 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
19533 #[serde(rename = "risk_details")]
19534 #[serde(skip_serializing_if = "Option::is_none")]
19535 pub risk_details: Option<String>,
19536 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
19537 #[serde(rename = "risk_level")]
19538 #[serde(skip_serializing_if = "Option::is_none")]
19539 pub risk_level: Option<String>,
19540 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
19541 #[serde(rename = "risk_level_id")]
19542 #[serde(skip_serializing_if = "Option::is_none")]
19543 pub risk_level_id: Option<i64>,
19544 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
19545 #[serde(rename = "risk_score")]
19546 #[serde(skip_serializing_if = "Option::is_none")]
19547 pub risk_score: Option<i64>,
19548 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
19549 #[serde(rename = "severity")]
19550 #[serde(skip_serializing_if = "Option::is_none")]
19551 pub severity: Option<String>,
19552 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
19553 #[serde(rename = "severity_id")]
19554 #[serde(skip_serializing_if = "Option::is_none")]
19555 pub severity_id: Option<i64>,
19556 #[doc = "Source Endpoint\n\nDetails about the source endpoint of the request.\n\nrecommended"]
19557 #[serde(rename = "src_endpoint")]
19558 #[serde(skip_serializing_if = "Option::is_none")]
19559 pub src_endpoint: Option<Box<NetworkEndpoint>>,
19560 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
19561 #[serde(rename = "start_time")]
19562 #[serde(skip_serializing_if = "Option::is_none")]
19563 pub start_time: Option<i64>,
19564 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
19565 #[serde(rename = "start_time_dt")]
19566 #[serde(skip_serializing_if = "Option::is_none")]
19567 pub start_time_dt: Option<String>,
19568 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
19569 #[serde(rename = "status")]
19570 #[serde(skip_serializing_if = "Option::is_none")]
19571 pub status: Option<String>,
19572 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
19573 #[serde(rename = "status_code")]
19574 #[serde(skip_serializing_if = "Option::is_none")]
19575 pub status_code: Option<String>,
19576 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
19577 #[serde(rename = "status_detail")]
19578 #[serde(skip_serializing_if = "Option::is_none")]
19579 pub status_detail: Option<String>,
19580 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
19581 #[serde(rename = "status_id")]
19582 #[serde(skip_serializing_if = "Option::is_none")]
19583 pub status_id: Option<i64>,
19584 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
19585 #[serde(rename = "time")]
19586 #[serde(skip_serializing_if = "Option::is_none")]
19587 pub time: Option<i64>,
19588 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
19589 #[serde(rename = "time_dt")]
19590 #[serde(skip_serializing_if = "Option::is_none")]
19591 pub time_dt: Option<String>,
19592 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
19593 #[serde(rename = "timezone_offset")]
19594 #[serde(skip_serializing_if = "Option::is_none")]
19595 pub timezone_offset: Option<i64>,
19596 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes, if available.\n\noptional"]
19597 #[serde(rename = "tls")]
19598 #[serde(skip_serializing_if = "Option::is_none")]
19599 pub tls: Option<Box<Tls>>,
19600 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
19601 #[serde(rename = "type_name")]
19602 #[serde(skip_serializing_if = "Option::is_none")]
19603 pub type_name: Option<String>,
19604 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
19605 #[serde(rename = "type_uid")]
19606 #[serde(skip_serializing_if = "Option::is_none")]
19607 pub type_uid: Option<i64>,
19608 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
19609 #[serde(rename = "unmapped")]
19610 #[serde(skip_serializing_if = "Option::is_none")]
19611 pub unmapped: Option<serde_json::Value>,
19612 #[doc = "Web Resources\n\nDetails about the resource that is the target of the activity.\n\nrequired"]
19613 #[serde(rename = "web_resources")]
19614 #[serde(skip_serializing_if = "Option::is_none")]
19615 pub web_resources: Option<Vec<WebResource>>,
19616}
19617#[doc = "Web Resources Activity\n\nWeb Resources Activity events describe actions executed on a set of Web Resources.\n\n[UID:6001] Category: application | Name: web_resources_activity"]
19618#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
19619#[serde(default)]
19620#[non_exhaustive]
19621pub struct WebResourcesActivity {
19622 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
19623 #[serde(rename = "action")]
19624 #[serde(skip_serializing_if = "Option::is_none")]
19625 pub action: Option<String>,
19626 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
19627 #[serde(rename = "action_id")]
19628 #[serde(skip_serializing_if = "Option::is_none")]
19629 pub action_id: Option<i64>,
19630 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
19631 #[serde(rename = "activity_id")]
19632 #[serde(skip_serializing_if = "Option::is_none")]
19633 pub activity_id: Option<i64>,
19634 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
19635 #[serde(rename = "activity_name")]
19636 #[serde(skip_serializing_if = "Option::is_none")]
19637 pub activity_name: Option<String>,
19638 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
19639 #[serde(rename = "actor")]
19640 #[serde(skip_serializing_if = "Option::is_none")]
19641 pub actor: Option<Box<Actor>>,
19642 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
19643 #[serde(rename = "api")]
19644 #[serde(skip_serializing_if = "Option::is_none")]
19645 pub api: Option<Box<Api>>,
19646 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
19647 #[serde(rename = "attacks")]
19648 #[serde(skip_serializing_if = "Option::is_none")]
19649 pub attacks: Option<Vec<Attack>>,
19650 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
19651 #[serde(rename = "authorizations")]
19652 #[serde(skip_serializing_if = "Option::is_none")]
19653 pub authorizations: Option<Vec<Authorization>>,
19654 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Application Activity</code>.\n\noptional"]
19655 #[serde(rename = "category_name")]
19656 #[serde(skip_serializing_if = "Option::is_none")]
19657 pub category_name: Option<String>,
19658 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
19659 #[serde(rename = "category_uid")]
19660 #[serde(skip_serializing_if = "Option::is_none")]
19661 pub category_uid: Option<i64>,
19662 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Web Resources Activity</code>.\n\noptional"]
19663 #[serde(rename = "class_name")]
19664 #[serde(skip_serializing_if = "Option::is_none")]
19665 pub class_name: Option<String>,
19666 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
19667 #[serde(rename = "class_uid")]
19668 #[serde(skip_serializing_if = "Option::is_none")]
19669 pub class_uid: Option<i64>,
19670 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
19671 #[serde(rename = "cloud")]
19672 #[serde(skip_serializing_if = "Option::is_none")]
19673 pub cloud: Option<Box<Cloud>>,
19674 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19675 #[serde(rename = "confidence")]
19676 #[serde(skip_serializing_if = "Option::is_none")]
19677 pub confidence: Option<String>,
19678 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
19679 #[serde(rename = "confidence_id")]
19680 #[serde(skip_serializing_if = "Option::is_none")]
19681 pub confidence_id: Option<i64>,
19682 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
19683 #[serde(rename = "confidence_score")]
19684 #[serde(skip_serializing_if = "Option::is_none")]
19685 pub confidence_score: Option<i64>,
19686 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
19687 #[serde(rename = "count")]
19688 #[serde(skip_serializing_if = "Option::is_none")]
19689 pub count: Option<i64>,
19690 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
19691 #[serde(rename = "device")]
19692 #[serde(skip_serializing_if = "Option::is_none")]
19693 pub device: Option<Box<Device>>,
19694 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19695 #[serde(rename = "disposition")]
19696 #[serde(skip_serializing_if = "Option::is_none")]
19697 pub disposition: Option<String>,
19698 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
19699 #[serde(rename = "disposition_id")]
19700 #[serde(skip_serializing_if = "Option::is_none")]
19701 pub disposition_id: Option<i64>,
19702 #[doc = "Destination Endpoint\n\nDetails about server providing the web resources.\n\nrecommended"]
19703 #[serde(rename = "dst_endpoint")]
19704 #[serde(skip_serializing_if = "Option::is_none")]
19705 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
19706 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
19707 #[serde(rename = "duration")]
19708 #[serde(skip_serializing_if = "Option::is_none")]
19709 pub duration: Option<i64>,
19710 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19711 #[serde(rename = "end_time")]
19712 #[serde(skip_serializing_if = "Option::is_none")]
19713 pub end_time: Option<i64>,
19714 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19715 #[serde(rename = "end_time_dt")]
19716 #[serde(skip_serializing_if = "Option::is_none")]
19717 pub end_time_dt: Option<String>,
19718 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
19719 #[serde(rename = "enrichments")]
19720 #[serde(skip_serializing_if = "Option::is_none")]
19721 pub enrichments: Option<Vec<Enrichment>>,
19722 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
19723 #[serde(rename = "firewall_rule")]
19724 #[serde(skip_serializing_if = "Option::is_none")]
19725 pub firewall_rule: Option<Box<FirewallRule>>,
19726 #[doc = "HTTP Request\n\nDetails about the underlying HTTP request.\n\nrecommended"]
19727 #[serde(rename = "http_request")]
19728 #[serde(skip_serializing_if = "Option::is_none")]
19729 pub http_request: Option<Box<HttpRequest>>,
19730 #[doc = "HTTP Response\n\nDetails about the HTTP response, if available.\n\noptional"]
19731 #[serde(rename = "http_response")]
19732 #[serde(skip_serializing_if = "Option::is_none")]
19733 pub http_response: Option<Box<HttpResponse>>,
19734 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
19735 #[serde(rename = "is_alert")]
19736 #[serde(skip_serializing_if = "Option::is_none")]
19737 pub is_alert: Option<bool>,
19738 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
19739 #[serde(rename = "malware")]
19740 #[serde(skip_serializing_if = "Option::is_none")]
19741 pub malware: Option<Vec<Malware>>,
19742 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
19743 #[serde(rename = "malware_scan_info")]
19744 #[serde(skip_serializing_if = "Option::is_none")]
19745 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
19746 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
19747 #[serde(rename = "message")]
19748 #[serde(skip_serializing_if = "Option::is_none")]
19749 pub message: Option<String>,
19750 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
19751 #[serde(rename = "metadata")]
19752 #[serde(skip_serializing_if = "Option::is_none")]
19753 pub metadata: Option<Box<Metadata>>,
19754 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
19755 #[serde(rename = "observables")]
19756 #[serde(skip_serializing_if = "Option::is_none")]
19757 pub observables: Option<Vec<Observable>>,
19758 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
19759 #[serde(rename = "osint")]
19760 #[serde(skip_serializing_if = "Option::is_none")]
19761 pub osint: Option<Vec<Osint>>,
19762 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
19763 #[serde(rename = "policy")]
19764 #[serde(skip_serializing_if = "Option::is_none")]
19765 pub policy: Option<Box<Policy>>,
19766 #[doc = "Proxy Connection Info\n\nThe connection information from the proxy server to the remote server.\n\nrecommended"]
19767 #[serde(rename = "proxy_connection_info")]
19768 #[serde(skip_serializing_if = "Option::is_none")]
19769 pub proxy_connection_info: Option<Box<NetworkConnectionInfo>>,
19770 #[doc = "Proxy Endpoint\n\nThe proxy (server) in a network connection.\n\noptional"]
19771 #[serde(rename = "proxy_endpoint")]
19772 #[serde(skip_serializing_if = "Option::is_none")]
19773 pub proxy_endpoint: Option<Box<NetworkProxy>>,
19774 #[doc = "Proxy HTTP Request\n\nThe HTTP Request from the proxy server to the remote server.\n\noptional"]
19775 #[serde(rename = "proxy_http_request")]
19776 #[serde(skip_serializing_if = "Option::is_none")]
19777 pub proxy_http_request: Option<Box<HttpRequest>>,
19778 #[doc = "Proxy HTTP Response\n\nThe HTTP Response from the remote server to the proxy server.\n\noptional"]
19779 #[serde(rename = "proxy_http_response")]
19780 #[serde(skip_serializing_if = "Option::is_none")]
19781 pub proxy_http_response: Option<Box<HttpResponse>>,
19782 #[doc = "Proxy TLS\n\nThe TLS protocol negotiated between the proxy server and the remote server.\n\nrecommended"]
19783 #[serde(rename = "proxy_tls")]
19784 #[serde(skip_serializing_if = "Option::is_none")]
19785 pub proxy_tls: Option<Box<Tls>>,
19786 #[doc = "Proxy Traffic\n\nThe network traffic refers to the amount of data moving across a network, from proxy to remote server at a given point of time.\n\nrecommended"]
19787 #[serde(rename = "proxy_traffic")]
19788 #[serde(skip_serializing_if = "Option::is_none")]
19789 pub proxy_traffic: Option<Box<NetworkTraffic>>,
19790 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
19791 #[serde(rename = "raw_data")]
19792 #[serde(skip_serializing_if = "Option::is_none")]
19793 pub raw_data: Option<String>,
19794 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
19795 #[serde(rename = "raw_data_hash")]
19796 #[serde(skip_serializing_if = "Option::is_none")]
19797 pub raw_data_hash: Option<Box<Fingerprint>>,
19798 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
19799 #[serde(rename = "raw_data_size")]
19800 #[serde(skip_serializing_if = "Option::is_none")]
19801 pub raw_data_size: Option<i64>,
19802 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
19803 #[serde(rename = "risk_details")]
19804 #[serde(skip_serializing_if = "Option::is_none")]
19805 pub risk_details: Option<String>,
19806 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
19807 #[serde(rename = "risk_level")]
19808 #[serde(skip_serializing_if = "Option::is_none")]
19809 pub risk_level: Option<String>,
19810 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
19811 #[serde(rename = "risk_level_id")]
19812 #[serde(skip_serializing_if = "Option::is_none")]
19813 pub risk_level_id: Option<i64>,
19814 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
19815 #[serde(rename = "risk_score")]
19816 #[serde(skip_serializing_if = "Option::is_none")]
19817 pub risk_score: Option<i64>,
19818 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
19819 #[serde(rename = "severity")]
19820 #[serde(skip_serializing_if = "Option::is_none")]
19821 pub severity: Option<String>,
19822 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
19823 #[serde(rename = "severity_id")]
19824 #[serde(skip_serializing_if = "Option::is_none")]
19825 pub severity_id: Option<i64>,
19826 #[doc = "Source Endpoint\n\nDetails about the endpoint from which the request originated.\n\nrecommended"]
19827 #[serde(rename = "src_endpoint")]
19828 #[serde(skip_serializing_if = "Option::is_none")]
19829 pub src_endpoint: Option<Box<NetworkEndpoint>>,
19830 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
19831 #[serde(rename = "start_time")]
19832 #[serde(skip_serializing_if = "Option::is_none")]
19833 pub start_time: Option<i64>,
19834 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
19835 #[serde(rename = "start_time_dt")]
19836 #[serde(skip_serializing_if = "Option::is_none")]
19837 pub start_time_dt: Option<String>,
19838 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
19839 #[serde(rename = "status")]
19840 #[serde(skip_serializing_if = "Option::is_none")]
19841 pub status: Option<String>,
19842 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
19843 #[serde(rename = "status_code")]
19844 #[serde(skip_serializing_if = "Option::is_none")]
19845 pub status_code: Option<String>,
19846 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
19847 #[serde(rename = "status_detail")]
19848 #[serde(skip_serializing_if = "Option::is_none")]
19849 pub status_detail: Option<String>,
19850 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
19851 #[serde(rename = "status_id")]
19852 #[serde(skip_serializing_if = "Option::is_none")]
19853 pub status_id: Option<i64>,
19854 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
19855 #[serde(rename = "time")]
19856 #[serde(skip_serializing_if = "Option::is_none")]
19857 pub time: Option<i64>,
19858 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
19859 #[serde(rename = "time_dt")]
19860 #[serde(skip_serializing_if = "Option::is_none")]
19861 pub time_dt: Option<String>,
19862 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
19863 #[serde(rename = "timezone_offset")]
19864 #[serde(skip_serializing_if = "Option::is_none")]
19865 pub timezone_offset: Option<i64>,
19866 #[doc = "TLS\n\nThe Transport Layer Security (TLS) attributes, if available.\n\noptional"]
19867 #[serde(rename = "tls")]
19868 #[serde(skip_serializing_if = "Option::is_none")]
19869 pub tls: Option<Box<Tls>>,
19870 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
19871 #[serde(rename = "type_name")]
19872 #[serde(skip_serializing_if = "Option::is_none")]
19873 pub type_name: Option<String>,
19874 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
19875 #[serde(rename = "type_uid")]
19876 #[serde(skip_serializing_if = "Option::is_none")]
19877 pub type_uid: Option<i64>,
19878 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
19879 #[serde(rename = "unmapped")]
19880 #[serde(skip_serializing_if = "Option::is_none")]
19881 pub unmapped: Option<serde_json::Value>,
19882 #[doc = "Web Resources\n\nDescribes details about web resources that were affected by an activity/event.\n\nrequired"]
19883 #[serde(rename = "web_resources")]
19884 #[serde(skip_serializing_if = "Option::is_none")]
19885 pub web_resources: Option<Vec<WebResource>>,
19886 #[doc = "Web Resources Result\n\nThe results of the activity on web resources. It should contain the new values of the changed attributes of the web resources.\n\nrecommended"]
19887 #[serde(rename = "web_resources_result")]
19888 #[serde(skip_serializing_if = "Option::is_none")]
19889 pub web_resources_result: Option<Vec<WebResource>>,
19890}
19891#[doc = "Prefetch Query\n\nPrefetch Query events report information about Windows prefetch files.\n\n[UID:205019] Category: discovery | Name: prefetch_query"]
19892#[deprecated(
19893 note = "Use the <code>Evidence Info</code> class with the <code>Query Evidence</code> object populated with <code>File</code> instead. (Since 1.5.0)"
19894)]
19895#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
19896#[serde(default)]
19897#[non_exhaustive]
19898pub struct WinPrefetchQuery {
19899 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
19900 #[serde(rename = "action")]
19901 #[serde(skip_serializing_if = "Option::is_none")]
19902 pub action: Option<String>,
19903 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
19904 #[serde(rename = "action_id")]
19905 #[serde(skip_serializing_if = "Option::is_none")]
19906 pub action_id: Option<i64>,
19907 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
19908 #[serde(rename = "activity_id")]
19909 #[serde(skip_serializing_if = "Option::is_none")]
19910 pub activity_id: Option<i64>,
19911 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
19912 #[serde(rename = "activity_name")]
19913 #[serde(skip_serializing_if = "Option::is_none")]
19914 pub activity_name: Option<String>,
19915 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
19916 #[serde(rename = "actor")]
19917 #[serde(skip_serializing_if = "Option::is_none")]
19918 pub actor: Option<Box<Actor>>,
19919 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
19920 #[serde(rename = "api")]
19921 #[serde(skip_serializing_if = "Option::is_none")]
19922 pub api: Option<Box<Api>>,
19923 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
19924 #[serde(rename = "attacks")]
19925 #[serde(skip_serializing_if = "Option::is_none")]
19926 pub attacks: Option<Vec<Attack>>,
19927 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
19928 #[serde(rename = "authorizations")]
19929 #[serde(skip_serializing_if = "Option::is_none")]
19930 pub authorizations: Option<Vec<Authorization>>,
19931 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
19932 #[serde(rename = "category_name")]
19933 #[serde(skip_serializing_if = "Option::is_none")]
19934 pub category_name: Option<String>,
19935 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
19936 #[serde(rename = "category_uid")]
19937 #[serde(skip_serializing_if = "Option::is_none")]
19938 pub category_uid: Option<i64>,
19939 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Prefetch Query</code>.\n\noptional"]
19940 #[serde(rename = "class_name")]
19941 #[serde(skip_serializing_if = "Option::is_none")]
19942 pub class_name: Option<String>,
19943 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
19944 #[serde(rename = "class_uid")]
19945 #[serde(skip_serializing_if = "Option::is_none")]
19946 pub class_uid: Option<i64>,
19947 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
19948 #[serde(rename = "cloud")]
19949 #[serde(skip_serializing_if = "Option::is_none")]
19950 pub cloud: Option<Box<Cloud>>,
19951 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19952 #[serde(rename = "confidence")]
19953 #[serde(skip_serializing_if = "Option::is_none")]
19954 pub confidence: Option<String>,
19955 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
19956 #[serde(rename = "confidence_id")]
19957 #[serde(skip_serializing_if = "Option::is_none")]
19958 pub confidence_id: Option<i64>,
19959 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
19960 #[serde(rename = "confidence_score")]
19961 #[serde(skip_serializing_if = "Option::is_none")]
19962 pub confidence_score: Option<i64>,
19963 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
19964 #[serde(rename = "count")]
19965 #[serde(skip_serializing_if = "Option::is_none")]
19966 pub count: Option<i64>,
19967 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
19968 #[serde(rename = "device")]
19969 #[serde(skip_serializing_if = "Option::is_none")]
19970 pub device: Option<Box<Device>>,
19971 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
19972 #[serde(rename = "disposition")]
19973 #[serde(skip_serializing_if = "Option::is_none")]
19974 pub disposition: Option<String>,
19975 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
19976 #[serde(rename = "disposition_id")]
19977 #[serde(skip_serializing_if = "Option::is_none")]
19978 pub disposition_id: Option<i64>,
19979 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
19980 #[serde(rename = "duration")]
19981 #[serde(skip_serializing_if = "Option::is_none")]
19982 pub duration: Option<i64>,
19983 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19984 #[serde(rename = "end_time")]
19985 #[serde(skip_serializing_if = "Option::is_none")]
19986 pub end_time: Option<i64>,
19987 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
19988 #[serde(rename = "end_time_dt")]
19989 #[serde(skip_serializing_if = "Option::is_none")]
19990 pub end_time_dt: Option<String>,
19991 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
19992 #[serde(rename = "enrichments")]
19993 #[serde(skip_serializing_if = "Option::is_none")]
19994 pub enrichments: Option<Vec<Enrichment>>,
19995 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
19996 #[serde(rename = "firewall_rule")]
19997 #[serde(skip_serializing_if = "Option::is_none")]
19998 pub firewall_rule: Option<Box<FirewallRule>>,
19999 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
20000 #[serde(rename = "is_alert")]
20001 #[serde(skip_serializing_if = "Option::is_none")]
20002 pub is_alert: Option<bool>,
20003 #[doc = "Last Run\n\nThe prefetch file last run time.\n\nrecommended"]
20004 #[serde(rename = "last_run_time")]
20005 #[serde(skip_serializing_if = "Option::is_none")]
20006 pub last_run_time: Option<i64>,
20007 #[doc = "Last Run\n\nThe prefetch file last run time.\n\noptional"]
20008 #[serde(rename = "last_run_time_dt")]
20009 #[serde(skip_serializing_if = "Option::is_none")]
20010 pub last_run_time_dt: Option<String>,
20011 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
20012 #[serde(rename = "malware")]
20013 #[serde(skip_serializing_if = "Option::is_none")]
20014 pub malware: Option<Vec<Malware>>,
20015 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
20016 #[serde(rename = "malware_scan_info")]
20017 #[serde(skip_serializing_if = "Option::is_none")]
20018 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
20019 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
20020 #[serde(rename = "message")]
20021 #[serde(skip_serializing_if = "Option::is_none")]
20022 pub message: Option<String>,
20023 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
20024 #[serde(rename = "metadata")]
20025 #[serde(skip_serializing_if = "Option::is_none")]
20026 pub metadata: Option<Box<Metadata>>,
20027 #[doc = "Name\n\nThe name of the prefetch file that is the target of the query.\n\nrequired"]
20028 #[serde(rename = "name")]
20029 #[serde(skip_serializing_if = "Option::is_none")]
20030 pub name: Option<String>,
20031 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
20032 #[serde(rename = "observables")]
20033 #[serde(skip_serializing_if = "Option::is_none")]
20034 pub observables: Option<Vec<Observable>>,
20035 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
20036 #[serde(rename = "osint")]
20037 #[serde(skip_serializing_if = "Option::is_none")]
20038 pub osint: Option<Vec<Osint>>,
20039 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
20040 #[serde(rename = "policy")]
20041 #[serde(skip_serializing_if = "Option::is_none")]
20042 pub policy: Option<Box<Policy>>,
20043 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
20044 #[serde(rename = "query_info")]
20045 #[serde(skip_serializing_if = "Option::is_none")]
20046 pub query_info: Option<Box<QueryInfo>>,
20047 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
20048 #[serde(rename = "query_result")]
20049 #[serde(skip_serializing_if = "Option::is_none")]
20050 pub query_result: Option<String>,
20051 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
20052 #[serde(rename = "query_result_id")]
20053 #[serde(skip_serializing_if = "Option::is_none")]
20054 pub query_result_id: Option<i64>,
20055 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
20056 #[serde(rename = "raw_data")]
20057 #[serde(skip_serializing_if = "Option::is_none")]
20058 pub raw_data: Option<String>,
20059 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
20060 #[serde(rename = "raw_data_hash")]
20061 #[serde(skip_serializing_if = "Option::is_none")]
20062 pub raw_data_hash: Option<Box<Fingerprint>>,
20063 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
20064 #[serde(rename = "raw_data_size")]
20065 #[serde(skip_serializing_if = "Option::is_none")]
20066 pub raw_data_size: Option<i64>,
20067 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
20068 #[serde(rename = "risk_details")]
20069 #[serde(skip_serializing_if = "Option::is_none")]
20070 pub risk_details: Option<String>,
20071 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
20072 #[serde(rename = "risk_level")]
20073 #[serde(skip_serializing_if = "Option::is_none")]
20074 pub risk_level: Option<String>,
20075 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
20076 #[serde(rename = "risk_level_id")]
20077 #[serde(skip_serializing_if = "Option::is_none")]
20078 pub risk_level_id: Option<i64>,
20079 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
20080 #[serde(rename = "risk_score")]
20081 #[serde(skip_serializing_if = "Option::is_none")]
20082 pub risk_score: Option<i64>,
20083 #[doc = "Run Count\n\nThe prefetch file run count.\n\nrecommended"]
20084 #[serde(rename = "run_count")]
20085 #[serde(skip_serializing_if = "Option::is_none")]
20086 pub run_count: Option<i64>,
20087 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
20088 #[serde(rename = "severity")]
20089 #[serde(skip_serializing_if = "Option::is_none")]
20090 pub severity: Option<String>,
20091 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
20092 #[serde(rename = "severity_id")]
20093 #[serde(skip_serializing_if = "Option::is_none")]
20094 pub severity_id: Option<i64>,
20095 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20096 #[serde(rename = "start_time")]
20097 #[serde(skip_serializing_if = "Option::is_none")]
20098 pub start_time: Option<i64>,
20099 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20100 #[serde(rename = "start_time_dt")]
20101 #[serde(skip_serializing_if = "Option::is_none")]
20102 pub start_time_dt: Option<String>,
20103 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
20104 #[serde(rename = "status")]
20105 #[serde(skip_serializing_if = "Option::is_none")]
20106 pub status: Option<String>,
20107 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
20108 #[serde(rename = "status_code")]
20109 #[serde(skip_serializing_if = "Option::is_none")]
20110 pub status_code: Option<String>,
20111 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
20112 #[serde(rename = "status_detail")]
20113 #[serde(skip_serializing_if = "Option::is_none")]
20114 pub status_detail: Option<String>,
20115 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
20116 #[serde(rename = "status_id")]
20117 #[serde(skip_serializing_if = "Option::is_none")]
20118 pub status_id: Option<i64>,
20119 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
20120 #[serde(rename = "time")]
20121 #[serde(skip_serializing_if = "Option::is_none")]
20122 pub time: Option<i64>,
20123 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
20124 #[serde(rename = "time_dt")]
20125 #[serde(skip_serializing_if = "Option::is_none")]
20126 pub time_dt: Option<String>,
20127 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
20128 #[serde(rename = "timezone_offset")]
20129 #[serde(skip_serializing_if = "Option::is_none")]
20130 pub timezone_offset: Option<i64>,
20131 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
20132 #[serde(rename = "type_name")]
20133 #[serde(skip_serializing_if = "Option::is_none")]
20134 pub type_name: Option<String>,
20135 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
20136 #[serde(rename = "type_uid")]
20137 #[serde(skip_serializing_if = "Option::is_none")]
20138 pub type_uid: Option<i64>,
20139 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
20140 #[serde(rename = "unmapped")]
20141 #[serde(skip_serializing_if = "Option::is_none")]
20142 pub unmapped: Option<serde_json::Value>,
20143}
20144#[doc = "Registry Key Activity\n\nRegistry Key Activity events report when a process performs an action on a Windows registry key.\n\n[UID:201001] Category: system | Name: registry_key_activity"]
20145#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
20146#[serde(default)]
20147#[non_exhaustive]
20148pub struct WinRegistryKeyActivity {
20149 #[doc = "Access Mask\n\nThe access mask in a platform-native format.\n\nrecommended"]
20150 #[serde(rename = "access_mask")]
20151 #[serde(skip_serializing_if = "Option::is_none")]
20152 pub access_mask: Option<i64>,
20153 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
20154 #[serde(rename = "action")]
20155 #[serde(skip_serializing_if = "Option::is_none")]
20156 pub action: Option<String>,
20157 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
20158 #[serde(rename = "action_id")]
20159 #[serde(skip_serializing_if = "Option::is_none")]
20160 pub action_id: Option<i64>,
20161 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
20162 #[serde(rename = "activity_id")]
20163 #[serde(skip_serializing_if = "Option::is_none")]
20164 pub activity_id: Option<i64>,
20165 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
20166 #[serde(rename = "activity_name")]
20167 #[serde(skip_serializing_if = "Option::is_none")]
20168 pub activity_name: Option<String>,
20169 #[doc = "Actor\n\nThe actor that performed the activity on the <code>reg_key</code> object.\n\nrequired"]
20170 #[serde(rename = "actor")]
20171 #[serde(skip_serializing_if = "Option::is_none")]
20172 pub actor: Option<Box<Actor>>,
20173 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
20174 #[serde(rename = "api")]
20175 #[serde(skip_serializing_if = "Option::is_none")]
20176 pub api: Option<Box<Api>>,
20177 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
20178 #[serde(rename = "attacks")]
20179 #[serde(skip_serializing_if = "Option::is_none")]
20180 pub attacks: Option<Vec<Attack>>,
20181 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
20182 #[serde(rename = "authorizations")]
20183 #[serde(skip_serializing_if = "Option::is_none")]
20184 pub authorizations: Option<Vec<Authorization>>,
20185 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
20186 #[serde(rename = "category_name")]
20187 #[serde(skip_serializing_if = "Option::is_none")]
20188 pub category_name: Option<String>,
20189 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
20190 #[serde(rename = "category_uid")]
20191 #[serde(skip_serializing_if = "Option::is_none")]
20192 pub category_uid: Option<i64>,
20193 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Registry Key Activity</code>.\n\noptional"]
20194 #[serde(rename = "class_name")]
20195 #[serde(skip_serializing_if = "Option::is_none")]
20196 pub class_name: Option<String>,
20197 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
20198 #[serde(rename = "class_uid")]
20199 #[serde(skip_serializing_if = "Option::is_none")]
20200 pub class_uid: Option<i64>,
20201 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
20202 #[serde(rename = "cloud")]
20203 #[serde(skip_serializing_if = "Option::is_none")]
20204 pub cloud: Option<Box<Cloud>>,
20205 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20206 #[serde(rename = "confidence")]
20207 #[serde(skip_serializing_if = "Option::is_none")]
20208 pub confidence: Option<String>,
20209 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
20210 #[serde(rename = "confidence_id")]
20211 #[serde(skip_serializing_if = "Option::is_none")]
20212 pub confidence_id: Option<i64>,
20213 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
20214 #[serde(rename = "confidence_score")]
20215 #[serde(skip_serializing_if = "Option::is_none")]
20216 pub confidence_score: Option<i64>,
20217 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
20218 #[serde(rename = "count")]
20219 #[serde(skip_serializing_if = "Option::is_none")]
20220 pub count: Option<i64>,
20221 #[doc = "Create Mask\n\nThe original Windows mask that is required to create the object.\n\nrecommended"]
20222 #[serde(rename = "create_mask")]
20223 #[serde(skip_serializing_if = "Option::is_none")]
20224 pub create_mask: Option<String>,
20225 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
20226 #[serde(rename = "device")]
20227 #[serde(skip_serializing_if = "Option::is_none")]
20228 pub device: Option<Box<Device>>,
20229 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20230 #[serde(rename = "disposition")]
20231 #[serde(skip_serializing_if = "Option::is_none")]
20232 pub disposition: Option<String>,
20233 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
20234 #[serde(rename = "disposition_id")]
20235 #[serde(skip_serializing_if = "Option::is_none")]
20236 pub disposition_id: Option<i64>,
20237 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
20238 #[serde(rename = "duration")]
20239 #[serde(skip_serializing_if = "Option::is_none")]
20240 pub duration: Option<i64>,
20241 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20242 #[serde(rename = "end_time")]
20243 #[serde(skip_serializing_if = "Option::is_none")]
20244 pub end_time: Option<i64>,
20245 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20246 #[serde(rename = "end_time_dt")]
20247 #[serde(skip_serializing_if = "Option::is_none")]
20248 pub end_time_dt: Option<String>,
20249 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
20250 #[serde(rename = "enrichments")]
20251 #[serde(skip_serializing_if = "Option::is_none")]
20252 pub enrichments: Option<Vec<Enrichment>>,
20253 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
20254 #[serde(rename = "firewall_rule")]
20255 #[serde(skip_serializing_if = "Option::is_none")]
20256 pub firewall_rule: Option<Box<FirewallRule>>,
20257 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
20258 #[serde(rename = "is_alert")]
20259 #[serde(skip_serializing_if = "Option::is_none")]
20260 pub is_alert: Option<bool>,
20261 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
20262 #[serde(rename = "malware")]
20263 #[serde(skip_serializing_if = "Option::is_none")]
20264 pub malware: Option<Vec<Malware>>,
20265 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
20266 #[serde(rename = "malware_scan_info")]
20267 #[serde(skip_serializing_if = "Option::is_none")]
20268 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
20269 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
20270 #[serde(rename = "message")]
20271 #[serde(skip_serializing_if = "Option::is_none")]
20272 pub message: Option<String>,
20273 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
20274 #[serde(rename = "metadata")]
20275 #[serde(skip_serializing_if = "Option::is_none")]
20276 pub metadata: Option<Box<Metadata>>,
20277 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
20278 #[serde(rename = "observables")]
20279 #[serde(skip_serializing_if = "Option::is_none")]
20280 pub observables: Option<Vec<Observable>>,
20281 #[doc = "Open Mask\n\nThe Windows options needed to open a registry key.\n\nrecommended"]
20282 #[serde(rename = "open_mask")]
20283 #[serde(skip_serializing_if = "Option::is_none")]
20284 pub open_mask: Option<i64>,
20285 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
20286 #[serde(rename = "osint")]
20287 #[serde(skip_serializing_if = "Option::is_none")]
20288 pub osint: Option<Vec<Osint>>,
20289 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
20290 #[serde(rename = "policy")]
20291 #[serde(skip_serializing_if = "Option::is_none")]
20292 pub policy: Option<Box<Policy>>,
20293 #[doc = "Previous Registry Key\n\nThe registry key before the mutation\n\nrecommended"]
20294 #[serde(rename = "prev_reg_key")]
20295 #[serde(skip_serializing_if = "Option::is_none")]
20296 pub prev_reg_key: Option<Box<WinRegKey>>,
20297 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
20298 #[serde(rename = "raw_data")]
20299 #[serde(skip_serializing_if = "Option::is_none")]
20300 pub raw_data: Option<String>,
20301 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
20302 #[serde(rename = "raw_data_hash")]
20303 #[serde(skip_serializing_if = "Option::is_none")]
20304 pub raw_data_hash: Option<Box<Fingerprint>>,
20305 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
20306 #[serde(rename = "raw_data_size")]
20307 #[serde(skip_serializing_if = "Option::is_none")]
20308 pub raw_data_size: Option<i64>,
20309 #[doc = "Registry Key\n\nThe registry key.\n\nrequired"]
20310 #[serde(rename = "reg_key")]
20311 #[serde(skip_serializing_if = "Option::is_none")]
20312 pub reg_key: Option<Box<WinRegKey>>,
20313 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
20314 #[serde(rename = "risk_details")]
20315 #[serde(skip_serializing_if = "Option::is_none")]
20316 pub risk_details: Option<String>,
20317 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
20318 #[serde(rename = "risk_level")]
20319 #[serde(skip_serializing_if = "Option::is_none")]
20320 pub risk_level: Option<String>,
20321 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
20322 #[serde(rename = "risk_level_id")]
20323 #[serde(skip_serializing_if = "Option::is_none")]
20324 pub risk_level_id: Option<i64>,
20325 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
20326 #[serde(rename = "risk_score")]
20327 #[serde(skip_serializing_if = "Option::is_none")]
20328 pub risk_score: Option<i64>,
20329 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
20330 #[serde(rename = "severity")]
20331 #[serde(skip_serializing_if = "Option::is_none")]
20332 pub severity: Option<String>,
20333 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
20334 #[serde(rename = "severity_id")]
20335 #[serde(skip_serializing_if = "Option::is_none")]
20336 pub severity_id: Option<i64>,
20337 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20338 #[serde(rename = "start_time")]
20339 #[serde(skip_serializing_if = "Option::is_none")]
20340 pub start_time: Option<i64>,
20341 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20342 #[serde(rename = "start_time_dt")]
20343 #[serde(skip_serializing_if = "Option::is_none")]
20344 pub start_time_dt: Option<String>,
20345 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
20346 #[serde(rename = "status")]
20347 #[serde(skip_serializing_if = "Option::is_none")]
20348 pub status: Option<String>,
20349 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
20350 #[serde(rename = "status_code")]
20351 #[serde(skip_serializing_if = "Option::is_none")]
20352 pub status_code: Option<String>,
20353 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
20354 #[serde(rename = "status_detail")]
20355 #[serde(skip_serializing_if = "Option::is_none")]
20356 pub status_detail: Option<String>,
20357 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
20358 #[serde(rename = "status_id")]
20359 #[serde(skip_serializing_if = "Option::is_none")]
20360 pub status_id: Option<i64>,
20361 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
20362 #[serde(rename = "time")]
20363 #[serde(skip_serializing_if = "Option::is_none")]
20364 pub time: Option<i64>,
20365 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
20366 #[serde(rename = "time_dt")]
20367 #[serde(skip_serializing_if = "Option::is_none")]
20368 pub time_dt: Option<String>,
20369 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
20370 #[serde(rename = "timezone_offset")]
20371 #[serde(skip_serializing_if = "Option::is_none")]
20372 pub timezone_offset: Option<i64>,
20373 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
20374 #[serde(rename = "type_name")]
20375 #[serde(skip_serializing_if = "Option::is_none")]
20376 pub type_name: Option<String>,
20377 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
20378 #[serde(rename = "type_uid")]
20379 #[serde(skip_serializing_if = "Option::is_none")]
20380 pub type_uid: Option<i64>,
20381 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
20382 #[serde(rename = "unmapped")]
20383 #[serde(skip_serializing_if = "Option::is_none")]
20384 pub unmapped: Option<serde_json::Value>,
20385}
20386#[doc = "Registry Key Query\n\nRegistry Key Query events report information about discovered Windows registry keys.\n\n[UID:205004] Category: discovery | Name: registry_key_query"]
20387#[deprecated(
20388 note = "Use the <code>Evidence Info</code> class with the <code>Query Evidence</code> object populated with <code>Registry Key</code> instead. (Since 1.5.0)"
20389)]
20390#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
20391#[serde(default)]
20392#[non_exhaustive]
20393pub struct WinRegistryKeyQuery {
20394 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
20395 #[serde(rename = "action")]
20396 #[serde(skip_serializing_if = "Option::is_none")]
20397 pub action: Option<String>,
20398 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
20399 #[serde(rename = "action_id")]
20400 #[serde(skip_serializing_if = "Option::is_none")]
20401 pub action_id: Option<i64>,
20402 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
20403 #[serde(rename = "activity_id")]
20404 #[serde(skip_serializing_if = "Option::is_none")]
20405 pub activity_id: Option<i64>,
20406 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
20407 #[serde(rename = "activity_name")]
20408 #[serde(skip_serializing_if = "Option::is_none")]
20409 pub activity_name: Option<String>,
20410 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
20411 #[serde(rename = "actor")]
20412 #[serde(skip_serializing_if = "Option::is_none")]
20413 pub actor: Option<Box<Actor>>,
20414 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
20415 #[serde(rename = "api")]
20416 #[serde(skip_serializing_if = "Option::is_none")]
20417 pub api: Option<Box<Api>>,
20418 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
20419 #[serde(rename = "attacks")]
20420 #[serde(skip_serializing_if = "Option::is_none")]
20421 pub attacks: Option<Vec<Attack>>,
20422 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
20423 #[serde(rename = "authorizations")]
20424 #[serde(skip_serializing_if = "Option::is_none")]
20425 pub authorizations: Option<Vec<Authorization>>,
20426 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
20427 #[serde(rename = "category_name")]
20428 #[serde(skip_serializing_if = "Option::is_none")]
20429 pub category_name: Option<String>,
20430 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
20431 #[serde(rename = "category_uid")]
20432 #[serde(skip_serializing_if = "Option::is_none")]
20433 pub category_uid: Option<i64>,
20434 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Registry Key Query</code>.\n\noptional"]
20435 #[serde(rename = "class_name")]
20436 #[serde(skip_serializing_if = "Option::is_none")]
20437 pub class_name: Option<String>,
20438 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
20439 #[serde(rename = "class_uid")]
20440 #[serde(skip_serializing_if = "Option::is_none")]
20441 pub class_uid: Option<i64>,
20442 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
20443 #[serde(rename = "cloud")]
20444 #[serde(skip_serializing_if = "Option::is_none")]
20445 pub cloud: Option<Box<Cloud>>,
20446 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20447 #[serde(rename = "confidence")]
20448 #[serde(skip_serializing_if = "Option::is_none")]
20449 pub confidence: Option<String>,
20450 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
20451 #[serde(rename = "confidence_id")]
20452 #[serde(skip_serializing_if = "Option::is_none")]
20453 pub confidence_id: Option<i64>,
20454 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
20455 #[serde(rename = "confidence_score")]
20456 #[serde(skip_serializing_if = "Option::is_none")]
20457 pub confidence_score: Option<i64>,
20458 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
20459 #[serde(rename = "count")]
20460 #[serde(skip_serializing_if = "Option::is_none")]
20461 pub count: Option<i64>,
20462 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
20463 #[serde(rename = "device")]
20464 #[serde(skip_serializing_if = "Option::is_none")]
20465 pub device: Option<Box<Device>>,
20466 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20467 #[serde(rename = "disposition")]
20468 #[serde(skip_serializing_if = "Option::is_none")]
20469 pub disposition: Option<String>,
20470 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
20471 #[serde(rename = "disposition_id")]
20472 #[serde(skip_serializing_if = "Option::is_none")]
20473 pub disposition_id: Option<i64>,
20474 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
20475 #[serde(rename = "duration")]
20476 #[serde(skip_serializing_if = "Option::is_none")]
20477 pub duration: Option<i64>,
20478 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20479 #[serde(rename = "end_time")]
20480 #[serde(skip_serializing_if = "Option::is_none")]
20481 pub end_time: Option<i64>,
20482 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20483 #[serde(rename = "end_time_dt")]
20484 #[serde(skip_serializing_if = "Option::is_none")]
20485 pub end_time_dt: Option<String>,
20486 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
20487 #[serde(rename = "enrichments")]
20488 #[serde(skip_serializing_if = "Option::is_none")]
20489 pub enrichments: Option<Vec<Enrichment>>,
20490 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
20491 #[serde(rename = "firewall_rule")]
20492 #[serde(skip_serializing_if = "Option::is_none")]
20493 pub firewall_rule: Option<Box<FirewallRule>>,
20494 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
20495 #[serde(rename = "is_alert")]
20496 #[serde(skip_serializing_if = "Option::is_none")]
20497 pub is_alert: Option<bool>,
20498 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
20499 #[serde(rename = "malware")]
20500 #[serde(skip_serializing_if = "Option::is_none")]
20501 pub malware: Option<Vec<Malware>>,
20502 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
20503 #[serde(rename = "malware_scan_info")]
20504 #[serde(skip_serializing_if = "Option::is_none")]
20505 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
20506 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
20507 #[serde(rename = "message")]
20508 #[serde(skip_serializing_if = "Option::is_none")]
20509 pub message: Option<String>,
20510 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
20511 #[serde(rename = "metadata")]
20512 #[serde(skip_serializing_if = "Option::is_none")]
20513 pub metadata: Option<Box<Metadata>>,
20514 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
20515 #[serde(rename = "observables")]
20516 #[serde(skip_serializing_if = "Option::is_none")]
20517 pub observables: Option<Vec<Observable>>,
20518 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
20519 #[serde(rename = "osint")]
20520 #[serde(skip_serializing_if = "Option::is_none")]
20521 pub osint: Option<Vec<Osint>>,
20522 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
20523 #[serde(rename = "policy")]
20524 #[serde(skip_serializing_if = "Option::is_none")]
20525 pub policy: Option<Box<Policy>>,
20526 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
20527 #[serde(rename = "query_info")]
20528 #[serde(skip_serializing_if = "Option::is_none")]
20529 pub query_info: Option<Box<QueryInfo>>,
20530 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
20531 #[serde(rename = "query_result")]
20532 #[serde(skip_serializing_if = "Option::is_none")]
20533 pub query_result: Option<String>,
20534 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
20535 #[serde(rename = "query_result_id")]
20536 #[serde(skip_serializing_if = "Option::is_none")]
20537 pub query_result_id: Option<i64>,
20538 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
20539 #[serde(rename = "raw_data")]
20540 #[serde(skip_serializing_if = "Option::is_none")]
20541 pub raw_data: Option<String>,
20542 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
20543 #[serde(rename = "raw_data_hash")]
20544 #[serde(skip_serializing_if = "Option::is_none")]
20545 pub raw_data_hash: Option<Box<Fingerprint>>,
20546 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
20547 #[serde(rename = "raw_data_size")]
20548 #[serde(skip_serializing_if = "Option::is_none")]
20549 pub raw_data_size: Option<i64>,
20550 #[doc = "Registry Key\n\nThe registry key that pertains to the event.\n\nrequired"]
20551 #[serde(rename = "reg_key")]
20552 #[serde(skip_serializing_if = "Option::is_none")]
20553 pub reg_key: Option<Box<WinRegKey>>,
20554 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
20555 #[serde(rename = "risk_details")]
20556 #[serde(skip_serializing_if = "Option::is_none")]
20557 pub risk_details: Option<String>,
20558 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
20559 #[serde(rename = "risk_level")]
20560 #[serde(skip_serializing_if = "Option::is_none")]
20561 pub risk_level: Option<String>,
20562 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
20563 #[serde(rename = "risk_level_id")]
20564 #[serde(skip_serializing_if = "Option::is_none")]
20565 pub risk_level_id: Option<i64>,
20566 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
20567 #[serde(rename = "risk_score")]
20568 #[serde(skip_serializing_if = "Option::is_none")]
20569 pub risk_score: Option<i64>,
20570 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
20571 #[serde(rename = "severity")]
20572 #[serde(skip_serializing_if = "Option::is_none")]
20573 pub severity: Option<String>,
20574 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
20575 #[serde(rename = "severity_id")]
20576 #[serde(skip_serializing_if = "Option::is_none")]
20577 pub severity_id: Option<i64>,
20578 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20579 #[serde(rename = "start_time")]
20580 #[serde(skip_serializing_if = "Option::is_none")]
20581 pub start_time: Option<i64>,
20582 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20583 #[serde(rename = "start_time_dt")]
20584 #[serde(skip_serializing_if = "Option::is_none")]
20585 pub start_time_dt: Option<String>,
20586 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
20587 #[serde(rename = "status")]
20588 #[serde(skip_serializing_if = "Option::is_none")]
20589 pub status: Option<String>,
20590 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
20591 #[serde(rename = "status_code")]
20592 #[serde(skip_serializing_if = "Option::is_none")]
20593 pub status_code: Option<String>,
20594 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
20595 #[serde(rename = "status_detail")]
20596 #[serde(skip_serializing_if = "Option::is_none")]
20597 pub status_detail: Option<String>,
20598 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
20599 #[serde(rename = "status_id")]
20600 #[serde(skip_serializing_if = "Option::is_none")]
20601 pub status_id: Option<i64>,
20602 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
20603 #[serde(rename = "time")]
20604 #[serde(skip_serializing_if = "Option::is_none")]
20605 pub time: Option<i64>,
20606 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
20607 #[serde(rename = "time_dt")]
20608 #[serde(skip_serializing_if = "Option::is_none")]
20609 pub time_dt: Option<String>,
20610 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
20611 #[serde(rename = "timezone_offset")]
20612 #[serde(skip_serializing_if = "Option::is_none")]
20613 pub timezone_offset: Option<i64>,
20614 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
20615 #[serde(rename = "type_name")]
20616 #[serde(skip_serializing_if = "Option::is_none")]
20617 pub type_name: Option<String>,
20618 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
20619 #[serde(rename = "type_uid")]
20620 #[serde(skip_serializing_if = "Option::is_none")]
20621 pub type_uid: Option<i64>,
20622 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
20623 #[serde(rename = "unmapped")]
20624 #[serde(skip_serializing_if = "Option::is_none")]
20625 pub unmapped: Option<serde_json::Value>,
20626}
20627#[doc = "Registry Value Activity\n\nRegistry Value Activity events reports when a process performs an action on a Windows registry value.\n\n[UID:201002] Category: system | Name: registry_value_activity"]
20628#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
20629#[serde(default)]
20630#[non_exhaustive]
20631pub struct WinRegistryValueActivity {
20632 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
20633 #[serde(rename = "action")]
20634 #[serde(skip_serializing_if = "Option::is_none")]
20635 pub action: Option<String>,
20636 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
20637 #[serde(rename = "action_id")]
20638 #[serde(skip_serializing_if = "Option::is_none")]
20639 pub action_id: Option<i64>,
20640 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
20641 #[serde(rename = "activity_id")]
20642 #[serde(skip_serializing_if = "Option::is_none")]
20643 pub activity_id: Option<i64>,
20644 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
20645 #[serde(rename = "activity_name")]
20646 #[serde(skip_serializing_if = "Option::is_none")]
20647 pub activity_name: Option<String>,
20648 #[doc = "Actor\n\nThe actor that performed the activity on the <code>reg_value</code> object.\n\nrequired"]
20649 #[serde(rename = "actor")]
20650 #[serde(skip_serializing_if = "Option::is_none")]
20651 pub actor: Option<Box<Actor>>,
20652 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
20653 #[serde(rename = "api")]
20654 #[serde(skip_serializing_if = "Option::is_none")]
20655 pub api: Option<Box<Api>>,
20656 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
20657 #[serde(rename = "attacks")]
20658 #[serde(skip_serializing_if = "Option::is_none")]
20659 pub attacks: Option<Vec<Attack>>,
20660 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
20661 #[serde(rename = "authorizations")]
20662 #[serde(skip_serializing_if = "Option::is_none")]
20663 pub authorizations: Option<Vec<Authorization>>,
20664 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
20665 #[serde(rename = "category_name")]
20666 #[serde(skip_serializing_if = "Option::is_none")]
20667 pub category_name: Option<String>,
20668 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
20669 #[serde(rename = "category_uid")]
20670 #[serde(skip_serializing_if = "Option::is_none")]
20671 pub category_uid: Option<i64>,
20672 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Registry Value Activity</code>.\n\noptional"]
20673 #[serde(rename = "class_name")]
20674 #[serde(skip_serializing_if = "Option::is_none")]
20675 pub class_name: Option<String>,
20676 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
20677 #[serde(rename = "class_uid")]
20678 #[serde(skip_serializing_if = "Option::is_none")]
20679 pub class_uid: Option<i64>,
20680 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
20681 #[serde(rename = "cloud")]
20682 #[serde(skip_serializing_if = "Option::is_none")]
20683 pub cloud: Option<Box<Cloud>>,
20684 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20685 #[serde(rename = "confidence")]
20686 #[serde(skip_serializing_if = "Option::is_none")]
20687 pub confidence: Option<String>,
20688 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
20689 #[serde(rename = "confidence_id")]
20690 #[serde(skip_serializing_if = "Option::is_none")]
20691 pub confidence_id: Option<i64>,
20692 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
20693 #[serde(rename = "confidence_score")]
20694 #[serde(skip_serializing_if = "Option::is_none")]
20695 pub confidence_score: Option<i64>,
20696 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
20697 #[serde(rename = "count")]
20698 #[serde(skip_serializing_if = "Option::is_none")]
20699 pub count: Option<i64>,
20700 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
20701 #[serde(rename = "device")]
20702 #[serde(skip_serializing_if = "Option::is_none")]
20703 pub device: Option<Box<Device>>,
20704 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20705 #[serde(rename = "disposition")]
20706 #[serde(skip_serializing_if = "Option::is_none")]
20707 pub disposition: Option<String>,
20708 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
20709 #[serde(rename = "disposition_id")]
20710 #[serde(skip_serializing_if = "Option::is_none")]
20711 pub disposition_id: Option<i64>,
20712 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
20713 #[serde(rename = "duration")]
20714 #[serde(skip_serializing_if = "Option::is_none")]
20715 pub duration: Option<i64>,
20716 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20717 #[serde(rename = "end_time")]
20718 #[serde(skip_serializing_if = "Option::is_none")]
20719 pub end_time: Option<i64>,
20720 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20721 #[serde(rename = "end_time_dt")]
20722 #[serde(skip_serializing_if = "Option::is_none")]
20723 pub end_time_dt: Option<String>,
20724 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
20725 #[serde(rename = "enrichments")]
20726 #[serde(skip_serializing_if = "Option::is_none")]
20727 pub enrichments: Option<Vec<Enrichment>>,
20728 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
20729 #[serde(rename = "firewall_rule")]
20730 #[serde(skip_serializing_if = "Option::is_none")]
20731 pub firewall_rule: Option<Box<FirewallRule>>,
20732 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
20733 #[serde(rename = "is_alert")]
20734 #[serde(skip_serializing_if = "Option::is_none")]
20735 pub is_alert: Option<bool>,
20736 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
20737 #[serde(rename = "malware")]
20738 #[serde(skip_serializing_if = "Option::is_none")]
20739 pub malware: Option<Vec<Malware>>,
20740 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
20741 #[serde(rename = "malware_scan_info")]
20742 #[serde(skip_serializing_if = "Option::is_none")]
20743 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
20744 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
20745 #[serde(rename = "message")]
20746 #[serde(skip_serializing_if = "Option::is_none")]
20747 pub message: Option<String>,
20748 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
20749 #[serde(rename = "metadata")]
20750 #[serde(skip_serializing_if = "Option::is_none")]
20751 pub metadata: Option<Box<Metadata>>,
20752 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
20753 #[serde(rename = "observables")]
20754 #[serde(skip_serializing_if = "Option::is_none")]
20755 pub observables: Option<Vec<Observable>>,
20756 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
20757 #[serde(rename = "osint")]
20758 #[serde(skip_serializing_if = "Option::is_none")]
20759 pub osint: Option<Vec<Osint>>,
20760 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
20761 #[serde(rename = "policy")]
20762 #[serde(skip_serializing_if = "Option::is_none")]
20763 pub policy: Option<Box<Policy>>,
20764 #[doc = "Previous Registry Value\n\nThe registry value before the mutation\n\noptional"]
20765 #[serde(rename = "prev_reg_value")]
20766 #[serde(skip_serializing_if = "Option::is_none")]
20767 pub prev_reg_value: Option<Box<WinRegValue>>,
20768 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
20769 #[serde(rename = "raw_data")]
20770 #[serde(skip_serializing_if = "Option::is_none")]
20771 pub raw_data: Option<String>,
20772 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
20773 #[serde(rename = "raw_data_hash")]
20774 #[serde(skip_serializing_if = "Option::is_none")]
20775 pub raw_data_hash: Option<Box<Fingerprint>>,
20776 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
20777 #[serde(rename = "raw_data_size")]
20778 #[serde(skip_serializing_if = "Option::is_none")]
20779 pub raw_data_size: Option<i64>,
20780 #[doc = "Registry Value\n\nThe registry value.\n\nrequired"]
20781 #[serde(rename = "reg_value")]
20782 #[serde(skip_serializing_if = "Option::is_none")]
20783 pub reg_value: Option<Box<WinRegValue>>,
20784 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
20785 #[serde(rename = "risk_details")]
20786 #[serde(skip_serializing_if = "Option::is_none")]
20787 pub risk_details: Option<String>,
20788 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
20789 #[serde(rename = "risk_level")]
20790 #[serde(skip_serializing_if = "Option::is_none")]
20791 pub risk_level: Option<String>,
20792 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
20793 #[serde(rename = "risk_level_id")]
20794 #[serde(skip_serializing_if = "Option::is_none")]
20795 pub risk_level_id: Option<i64>,
20796 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
20797 #[serde(rename = "risk_score")]
20798 #[serde(skip_serializing_if = "Option::is_none")]
20799 pub risk_score: Option<i64>,
20800 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
20801 #[serde(rename = "severity")]
20802 #[serde(skip_serializing_if = "Option::is_none")]
20803 pub severity: Option<String>,
20804 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
20805 #[serde(rename = "severity_id")]
20806 #[serde(skip_serializing_if = "Option::is_none")]
20807 pub severity_id: Option<i64>,
20808 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20809 #[serde(rename = "start_time")]
20810 #[serde(skip_serializing_if = "Option::is_none")]
20811 pub start_time: Option<i64>,
20812 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
20813 #[serde(rename = "start_time_dt")]
20814 #[serde(skip_serializing_if = "Option::is_none")]
20815 pub start_time_dt: Option<String>,
20816 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
20817 #[serde(rename = "status")]
20818 #[serde(skip_serializing_if = "Option::is_none")]
20819 pub status: Option<String>,
20820 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
20821 #[serde(rename = "status_code")]
20822 #[serde(skip_serializing_if = "Option::is_none")]
20823 pub status_code: Option<String>,
20824 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
20825 #[serde(rename = "status_detail")]
20826 #[serde(skip_serializing_if = "Option::is_none")]
20827 pub status_detail: Option<String>,
20828 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
20829 #[serde(rename = "status_id")]
20830 #[serde(skip_serializing_if = "Option::is_none")]
20831 pub status_id: Option<i64>,
20832 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
20833 #[serde(rename = "time")]
20834 #[serde(skip_serializing_if = "Option::is_none")]
20835 pub time: Option<i64>,
20836 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
20837 #[serde(rename = "time_dt")]
20838 #[serde(skip_serializing_if = "Option::is_none")]
20839 pub time_dt: Option<String>,
20840 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
20841 #[serde(rename = "timezone_offset")]
20842 #[serde(skip_serializing_if = "Option::is_none")]
20843 pub timezone_offset: Option<i64>,
20844 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
20845 #[serde(rename = "type_name")]
20846 #[serde(skip_serializing_if = "Option::is_none")]
20847 pub type_name: Option<String>,
20848 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
20849 #[serde(rename = "type_uid")]
20850 #[serde(skip_serializing_if = "Option::is_none")]
20851 pub type_uid: Option<i64>,
20852 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
20853 #[serde(rename = "unmapped")]
20854 #[serde(skip_serializing_if = "Option::is_none")]
20855 pub unmapped: Option<serde_json::Value>,
20856}
20857#[doc = "Registry Value Query\n\nRegistry Value Query events report information about discovered Windows registry values.\n\n[UID:205005] Category: discovery | Name: registry_value_query"]
20858#[deprecated(
20859 note = "Use the <code>Evidence Info</code> class with the <code>Query Evidence</code> object populated with <code>Registry Value</code> instead. (Since 1.5.0)"
20860)]
20861#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
20862#[serde(default)]
20863#[non_exhaustive]
20864pub struct WinRegistryValueQuery {
20865 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
20866 #[serde(rename = "action")]
20867 #[serde(skip_serializing_if = "Option::is_none")]
20868 pub action: Option<String>,
20869 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
20870 #[serde(rename = "action_id")]
20871 #[serde(skip_serializing_if = "Option::is_none")]
20872 pub action_id: Option<i64>,
20873 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
20874 #[serde(rename = "activity_id")]
20875 #[serde(skip_serializing_if = "Option::is_none")]
20876 pub activity_id: Option<i64>,
20877 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
20878 #[serde(rename = "activity_name")]
20879 #[serde(skip_serializing_if = "Option::is_none")]
20880 pub activity_name: Option<String>,
20881 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\noptional"]
20882 #[serde(rename = "actor")]
20883 #[serde(skip_serializing_if = "Option::is_none")]
20884 pub actor: Option<Box<Actor>>,
20885 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
20886 #[serde(rename = "api")]
20887 #[serde(skip_serializing_if = "Option::is_none")]
20888 pub api: Option<Box<Api>>,
20889 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
20890 #[serde(rename = "attacks")]
20891 #[serde(skip_serializing_if = "Option::is_none")]
20892 pub attacks: Option<Vec<Attack>>,
20893 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
20894 #[serde(rename = "authorizations")]
20895 #[serde(skip_serializing_if = "Option::is_none")]
20896 pub authorizations: Option<Vec<Authorization>>,
20897 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>Discovery</code>.\n\noptional"]
20898 #[serde(rename = "category_name")]
20899 #[serde(skip_serializing_if = "Option::is_none")]
20900 pub category_name: Option<String>,
20901 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
20902 #[serde(rename = "category_uid")]
20903 #[serde(skip_serializing_if = "Option::is_none")]
20904 pub category_uid: Option<i64>,
20905 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Registry Value Query</code>.\n\noptional"]
20906 #[serde(rename = "class_name")]
20907 #[serde(skip_serializing_if = "Option::is_none")]
20908 pub class_name: Option<String>,
20909 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
20910 #[serde(rename = "class_uid")]
20911 #[serde(skip_serializing_if = "Option::is_none")]
20912 pub class_uid: Option<i64>,
20913 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
20914 #[serde(rename = "cloud")]
20915 #[serde(skip_serializing_if = "Option::is_none")]
20916 pub cloud: Option<Box<Cloud>>,
20917 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20918 #[serde(rename = "confidence")]
20919 #[serde(skip_serializing_if = "Option::is_none")]
20920 pub confidence: Option<String>,
20921 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
20922 #[serde(rename = "confidence_id")]
20923 #[serde(skip_serializing_if = "Option::is_none")]
20924 pub confidence_id: Option<i64>,
20925 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
20926 #[serde(rename = "confidence_score")]
20927 #[serde(skip_serializing_if = "Option::is_none")]
20928 pub confidence_score: Option<i64>,
20929 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
20930 #[serde(rename = "count")]
20931 #[serde(skip_serializing_if = "Option::is_none")]
20932 pub count: Option<i64>,
20933 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
20934 #[serde(rename = "device")]
20935 #[serde(skip_serializing_if = "Option::is_none")]
20936 pub device: Option<Box<Device>>,
20937 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
20938 #[serde(rename = "disposition")]
20939 #[serde(skip_serializing_if = "Option::is_none")]
20940 pub disposition: Option<String>,
20941 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
20942 #[serde(rename = "disposition_id")]
20943 #[serde(skip_serializing_if = "Option::is_none")]
20944 pub disposition_id: Option<i64>,
20945 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
20946 #[serde(rename = "duration")]
20947 #[serde(skip_serializing_if = "Option::is_none")]
20948 pub duration: Option<i64>,
20949 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20950 #[serde(rename = "end_time")]
20951 #[serde(skip_serializing_if = "Option::is_none")]
20952 pub end_time: Option<i64>,
20953 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
20954 #[serde(rename = "end_time_dt")]
20955 #[serde(skip_serializing_if = "Option::is_none")]
20956 pub end_time_dt: Option<String>,
20957 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
20958 #[serde(rename = "enrichments")]
20959 #[serde(skip_serializing_if = "Option::is_none")]
20960 pub enrichments: Option<Vec<Enrichment>>,
20961 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
20962 #[serde(rename = "firewall_rule")]
20963 #[serde(skip_serializing_if = "Option::is_none")]
20964 pub firewall_rule: Option<Box<FirewallRule>>,
20965 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
20966 #[serde(rename = "is_alert")]
20967 #[serde(skip_serializing_if = "Option::is_none")]
20968 pub is_alert: Option<bool>,
20969 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
20970 #[serde(rename = "malware")]
20971 #[serde(skip_serializing_if = "Option::is_none")]
20972 pub malware: Option<Vec<Malware>>,
20973 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
20974 #[serde(rename = "malware_scan_info")]
20975 #[serde(skip_serializing_if = "Option::is_none")]
20976 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
20977 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
20978 #[serde(rename = "message")]
20979 #[serde(skip_serializing_if = "Option::is_none")]
20980 pub message: Option<String>,
20981 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
20982 #[serde(rename = "metadata")]
20983 #[serde(skip_serializing_if = "Option::is_none")]
20984 pub metadata: Option<Box<Metadata>>,
20985 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
20986 #[serde(rename = "observables")]
20987 #[serde(skip_serializing_if = "Option::is_none")]
20988 pub observables: Option<Vec<Observable>>,
20989 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
20990 #[serde(rename = "osint")]
20991 #[serde(skip_serializing_if = "Option::is_none")]
20992 pub osint: Option<Vec<Osint>>,
20993 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
20994 #[serde(rename = "policy")]
20995 #[serde(skip_serializing_if = "Option::is_none")]
20996 pub policy: Option<Box<Policy>>,
20997 #[doc = "Query Info\n\nThe search details associated with the query request.\n\nrecommended"]
20998 #[serde(rename = "query_info")]
20999 #[serde(skip_serializing_if = "Option::is_none")]
21000 pub query_info: Option<Box<QueryInfo>>,
21001 #[doc = "Query Result\n\nThe result of the query.\n\nrecommended"]
21002 #[serde(rename = "query_result")]
21003 #[serde(skip_serializing_if = "Option::is_none")]
21004 pub query_result: Option<String>,
21005 #[doc = "Query Result ID\n\nThe normalized identifier of the query result.\n\nrequired"]
21006 #[serde(rename = "query_result_id")]
21007 #[serde(skip_serializing_if = "Option::is_none")]
21008 pub query_result_id: Option<i64>,
21009 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
21010 #[serde(rename = "raw_data")]
21011 #[serde(skip_serializing_if = "Option::is_none")]
21012 pub raw_data: Option<String>,
21013 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
21014 #[serde(rename = "raw_data_hash")]
21015 #[serde(skip_serializing_if = "Option::is_none")]
21016 pub raw_data_hash: Option<Box<Fingerprint>>,
21017 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
21018 #[serde(rename = "raw_data_size")]
21019 #[serde(skip_serializing_if = "Option::is_none")]
21020 pub raw_data_size: Option<i64>,
21021 #[doc = "Registry Value\n\nThe registry value that pertains to the event.\n\nrequired"]
21022 #[serde(rename = "reg_value")]
21023 #[serde(skip_serializing_if = "Option::is_none")]
21024 pub reg_value: Option<Box<WinRegValue>>,
21025 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
21026 #[serde(rename = "risk_details")]
21027 #[serde(skip_serializing_if = "Option::is_none")]
21028 pub risk_details: Option<String>,
21029 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
21030 #[serde(rename = "risk_level")]
21031 #[serde(skip_serializing_if = "Option::is_none")]
21032 pub risk_level: Option<String>,
21033 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
21034 #[serde(rename = "risk_level_id")]
21035 #[serde(skip_serializing_if = "Option::is_none")]
21036 pub risk_level_id: Option<i64>,
21037 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
21038 #[serde(rename = "risk_score")]
21039 #[serde(skip_serializing_if = "Option::is_none")]
21040 pub risk_score: Option<i64>,
21041 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
21042 #[serde(rename = "severity")]
21043 #[serde(skip_serializing_if = "Option::is_none")]
21044 pub severity: Option<String>,
21045 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
21046 #[serde(rename = "severity_id")]
21047 #[serde(skip_serializing_if = "Option::is_none")]
21048 pub severity_id: Option<i64>,
21049 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21050 #[serde(rename = "start_time")]
21051 #[serde(skip_serializing_if = "Option::is_none")]
21052 pub start_time: Option<i64>,
21053 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21054 #[serde(rename = "start_time_dt")]
21055 #[serde(skip_serializing_if = "Option::is_none")]
21056 pub start_time_dt: Option<String>,
21057 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
21058 #[serde(rename = "status")]
21059 #[serde(skip_serializing_if = "Option::is_none")]
21060 pub status: Option<String>,
21061 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
21062 #[serde(rename = "status_code")]
21063 #[serde(skip_serializing_if = "Option::is_none")]
21064 pub status_code: Option<String>,
21065 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
21066 #[serde(rename = "status_detail")]
21067 #[serde(skip_serializing_if = "Option::is_none")]
21068 pub status_detail: Option<String>,
21069 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
21070 #[serde(rename = "status_id")]
21071 #[serde(skip_serializing_if = "Option::is_none")]
21072 pub status_id: Option<i64>,
21073 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
21074 #[serde(rename = "time")]
21075 #[serde(skip_serializing_if = "Option::is_none")]
21076 pub time: Option<i64>,
21077 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
21078 #[serde(rename = "time_dt")]
21079 #[serde(skip_serializing_if = "Option::is_none")]
21080 pub time_dt: Option<String>,
21081 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
21082 #[serde(rename = "timezone_offset")]
21083 #[serde(skip_serializing_if = "Option::is_none")]
21084 pub timezone_offset: Option<i64>,
21085 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
21086 #[serde(rename = "type_name")]
21087 #[serde(skip_serializing_if = "Option::is_none")]
21088 pub type_name: Option<String>,
21089 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
21090 #[serde(rename = "type_uid")]
21091 #[serde(skip_serializing_if = "Option::is_none")]
21092 pub type_uid: Option<i64>,
21093 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
21094 #[serde(rename = "unmapped")]
21095 #[serde(skip_serializing_if = "Option::is_none")]
21096 pub unmapped: Option<serde_json::Value>,
21097}
21098#[doc = "Windows Resource Activity\n\nWindows Resource Activity events report when a process accesses a Windows managed resource object, successful or otherwise.\n\n[UID:201003] Category: system | Name: windows_resource_activity"]
21099#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21100#[serde(default)]
21101#[non_exhaustive]
21102pub struct WinWindowsResourceActivity {
21103 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
21104 #[serde(rename = "action")]
21105 #[serde(skip_serializing_if = "Option::is_none")]
21106 pub action: Option<String>,
21107 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
21108 #[serde(rename = "action_id")]
21109 #[serde(skip_serializing_if = "Option::is_none")]
21110 pub action_id: Option<i64>,
21111 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
21112 #[serde(rename = "activity_id")]
21113 #[serde(skip_serializing_if = "Option::is_none")]
21114 pub activity_id: Option<i64>,
21115 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
21116 #[serde(rename = "activity_name")]
21117 #[serde(skip_serializing_if = "Option::is_none")]
21118 pub activity_name: Option<String>,
21119 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
21120 #[serde(rename = "actor")]
21121 #[serde(skip_serializing_if = "Option::is_none")]
21122 pub actor: Option<Box<Actor>>,
21123 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
21124 #[serde(rename = "api")]
21125 #[serde(skip_serializing_if = "Option::is_none")]
21126 pub api: Option<Box<Api>>,
21127 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
21128 #[serde(rename = "attacks")]
21129 #[serde(skip_serializing_if = "Option::is_none")]
21130 pub attacks: Option<Vec<Attack>>,
21131 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
21132 #[serde(rename = "authorizations")]
21133 #[serde(skip_serializing_if = "Option::is_none")]
21134 pub authorizations: Option<Vec<Authorization>>,
21135 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
21136 #[serde(rename = "category_name")]
21137 #[serde(skip_serializing_if = "Option::is_none")]
21138 pub category_name: Option<String>,
21139 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
21140 #[serde(rename = "category_uid")]
21141 #[serde(skip_serializing_if = "Option::is_none")]
21142 pub category_uid: Option<i64>,
21143 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Windows Resource Activity</code>.\n\noptional"]
21144 #[serde(rename = "class_name")]
21145 #[serde(skip_serializing_if = "Option::is_none")]
21146 pub class_name: Option<String>,
21147 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
21148 #[serde(rename = "class_uid")]
21149 #[serde(skip_serializing_if = "Option::is_none")]
21150 pub class_uid: Option<i64>,
21151 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
21152 #[serde(rename = "cloud")]
21153 #[serde(skip_serializing_if = "Option::is_none")]
21154 pub cloud: Option<Box<Cloud>>,
21155 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
21156 #[serde(rename = "confidence")]
21157 #[serde(skip_serializing_if = "Option::is_none")]
21158 pub confidence: Option<String>,
21159 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
21160 #[serde(rename = "confidence_id")]
21161 #[serde(skip_serializing_if = "Option::is_none")]
21162 pub confidence_id: Option<i64>,
21163 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
21164 #[serde(rename = "confidence_score")]
21165 #[serde(skip_serializing_if = "Option::is_none")]
21166 pub confidence_score: Option<i64>,
21167 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
21168 #[serde(rename = "count")]
21169 #[serde(skip_serializing_if = "Option::is_none")]
21170 pub count: Option<i64>,
21171 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
21172 #[serde(rename = "device")]
21173 #[serde(skip_serializing_if = "Option::is_none")]
21174 pub device: Option<Box<Device>>,
21175 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
21176 #[serde(rename = "disposition")]
21177 #[serde(skip_serializing_if = "Option::is_none")]
21178 pub disposition: Option<String>,
21179 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
21180 #[serde(rename = "disposition_id")]
21181 #[serde(skip_serializing_if = "Option::is_none")]
21182 pub disposition_id: Option<i64>,
21183 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
21184 #[serde(rename = "duration")]
21185 #[serde(skip_serializing_if = "Option::is_none")]
21186 pub duration: Option<i64>,
21187 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
21188 #[serde(rename = "end_time")]
21189 #[serde(skip_serializing_if = "Option::is_none")]
21190 pub end_time: Option<i64>,
21191 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
21192 #[serde(rename = "end_time_dt")]
21193 #[serde(skip_serializing_if = "Option::is_none")]
21194 pub end_time_dt: Option<String>,
21195 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
21196 #[serde(rename = "enrichments")]
21197 #[serde(skip_serializing_if = "Option::is_none")]
21198 pub enrichments: Option<Vec<Enrichment>>,
21199 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
21200 #[serde(rename = "firewall_rule")]
21201 #[serde(skip_serializing_if = "Option::is_none")]
21202 pub firewall_rule: Option<Box<FirewallRule>>,
21203 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
21204 #[serde(rename = "is_alert")]
21205 #[serde(skip_serializing_if = "Option::is_none")]
21206 pub is_alert: Option<bool>,
21207 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
21208 #[serde(rename = "malware")]
21209 #[serde(skip_serializing_if = "Option::is_none")]
21210 pub malware: Option<Vec<Malware>>,
21211 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
21212 #[serde(rename = "malware_scan_info")]
21213 #[serde(skip_serializing_if = "Option::is_none")]
21214 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
21215 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
21216 #[serde(rename = "message")]
21217 #[serde(skip_serializing_if = "Option::is_none")]
21218 pub message: Option<String>,
21219 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
21220 #[serde(rename = "metadata")]
21221 #[serde(skip_serializing_if = "Option::is_none")]
21222 pub metadata: Option<Box<Metadata>>,
21223 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
21224 #[serde(rename = "observables")]
21225 #[serde(skip_serializing_if = "Option::is_none")]
21226 pub observables: Option<Vec<Observable>>,
21227 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
21228 #[serde(rename = "osint")]
21229 #[serde(skip_serializing_if = "Option::is_none")]
21230 pub osint: Option<Vec<Osint>>,
21231 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
21232 #[serde(rename = "policy")]
21233 #[serde(skip_serializing_if = "Option::is_none")]
21234 pub policy: Option<Box<Policy>>,
21235 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
21236 #[serde(rename = "raw_data")]
21237 #[serde(skip_serializing_if = "Option::is_none")]
21238 pub raw_data: Option<String>,
21239 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
21240 #[serde(rename = "raw_data_hash")]
21241 #[serde(skip_serializing_if = "Option::is_none")]
21242 pub raw_data_hash: Option<Box<Fingerprint>>,
21243 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
21244 #[serde(rename = "raw_data_size")]
21245 #[serde(skip_serializing_if = "Option::is_none")]
21246 pub raw_data_size: Option<i64>,
21247 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
21248 #[serde(rename = "risk_details")]
21249 #[serde(skip_serializing_if = "Option::is_none")]
21250 pub risk_details: Option<String>,
21251 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
21252 #[serde(rename = "risk_level")]
21253 #[serde(skip_serializing_if = "Option::is_none")]
21254 pub risk_level: Option<String>,
21255 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
21256 #[serde(rename = "risk_level_id")]
21257 #[serde(skip_serializing_if = "Option::is_none")]
21258 pub risk_level_id: Option<i64>,
21259 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
21260 #[serde(rename = "risk_score")]
21261 #[serde(skip_serializing_if = "Option::is_none")]
21262 pub risk_score: Option<i64>,
21263 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
21264 #[serde(rename = "severity")]
21265 #[serde(skip_serializing_if = "Option::is_none")]
21266 pub severity: Option<String>,
21267 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
21268 #[serde(rename = "severity_id")]
21269 #[serde(skip_serializing_if = "Option::is_none")]
21270 pub severity_id: Option<i64>,
21271 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21272 #[serde(rename = "start_time")]
21273 #[serde(skip_serializing_if = "Option::is_none")]
21274 pub start_time: Option<i64>,
21275 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21276 #[serde(rename = "start_time_dt")]
21277 #[serde(skip_serializing_if = "Option::is_none")]
21278 pub start_time_dt: Option<String>,
21279 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
21280 #[serde(rename = "status")]
21281 #[serde(skip_serializing_if = "Option::is_none")]
21282 pub status: Option<String>,
21283 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
21284 #[serde(rename = "status_code")]
21285 #[serde(skip_serializing_if = "Option::is_none")]
21286 pub status_code: Option<String>,
21287 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
21288 #[serde(rename = "status_detail")]
21289 #[serde(skip_serializing_if = "Option::is_none")]
21290 pub status_detail: Option<String>,
21291 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
21292 #[serde(rename = "status_id")]
21293 #[serde(skip_serializing_if = "Option::is_none")]
21294 pub status_id: Option<i64>,
21295 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
21296 #[serde(rename = "time")]
21297 #[serde(skip_serializing_if = "Option::is_none")]
21298 pub time: Option<i64>,
21299 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
21300 #[serde(rename = "time_dt")]
21301 #[serde(skip_serializing_if = "Option::is_none")]
21302 pub time_dt: Option<String>,
21303 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
21304 #[serde(rename = "timezone_offset")]
21305 #[serde(skip_serializing_if = "Option::is_none")]
21306 pub timezone_offset: Option<i64>,
21307 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
21308 #[serde(rename = "type_name")]
21309 #[serde(skip_serializing_if = "Option::is_none")]
21310 pub type_name: Option<String>,
21311 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
21312 #[serde(rename = "type_uid")]
21313 #[serde(skip_serializing_if = "Option::is_none")]
21314 pub type_uid: Option<i64>,
21315 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
21316 #[serde(rename = "unmapped")]
21317 #[serde(skip_serializing_if = "Option::is_none")]
21318 pub unmapped: Option<serde_json::Value>,
21319 #[doc = "Windows Resource\n\nThe Windows resource object that was accessed, such as a mutant or timer.\n\nrequired"]
21320 #[serde(rename = "win_resource")]
21321 #[serde(skip_serializing_if = "Option::is_none")]
21322 pub win_resource: Option<Box<WinWinResource>>,
21323}
21324#[doc = "Windows Service Activity\n\nWindows Service Activity events report when a process interacts with the Service Control Manager.\n\n[UID:201004] Category: system | Name: windows_service_activity"]
21325#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21326#[serde(default)]
21327#[non_exhaustive]
21328pub struct WinWindowsServiceActivity {
21329 #[doc = "Action\n\nThe normalized caption of <code>action_id</code>.\n\noptional"]
21330 #[serde(rename = "action")]
21331 #[serde(skip_serializing_if = "Option::is_none")]
21332 pub action: Option<String>,
21333 #[doc = "Action ID\n\nThe action taken by a control or other policy-based system leading to an outcome or disposition. An unknown action may still correspond to a known disposition. Refer to <code>disposition_id</code> for the outcome of the action.\n\nrecommended"]
21334 #[serde(rename = "action_id")]
21335 #[serde(skip_serializing_if = "Option::is_none")]
21336 pub action_id: Option<i64>,
21337 #[doc = "Activity ID\n\nThe normalized identifier of the activity that triggered the event.\n\nrequired"]
21338 #[serde(rename = "activity_id")]
21339 #[serde(skip_serializing_if = "Option::is_none")]
21340 pub activity_id: Option<i64>,
21341 #[doc = "Activity\n\nThe event activity name, as defined by the activity_id.\n\noptional"]
21342 #[serde(rename = "activity_name")]
21343 #[serde(skip_serializing_if = "Option::is_none")]
21344 pub activity_name: Option<String>,
21345 #[doc = "Actor\n\nThe actor object describes details about the user/role/process that was the source of the activity. Note that this is not the threat actor of a campaign but may be part of a campaign.\n\nrequired"]
21346 #[serde(rename = "actor")]
21347 #[serde(skip_serializing_if = "Option::is_none")]
21348 pub actor: Option<Box<Actor>>,
21349 #[doc = "API Details\n\nDescribes details about a typical API (Application Programming Interface) call.\n\noptional"]
21350 #[serde(rename = "api")]
21351 #[serde(skip_serializing_if = "Option::is_none")]
21352 pub api: Option<Box<Api>>,
21353 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
21354 #[serde(rename = "attacks")]
21355 #[serde(skip_serializing_if = "Option::is_none")]
21356 pub attacks: Option<Vec<Attack>>,
21357 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
21358 #[serde(rename = "authorizations")]
21359 #[serde(skip_serializing_if = "Option::is_none")]
21360 pub authorizations: Option<Vec<Authorization>>,
21361 #[doc = "Category\n\nThe event category name, as defined by category_uid value: <code>System Activity</code>.\n\noptional"]
21362 #[serde(rename = "category_name")]
21363 #[serde(skip_serializing_if = "Option::is_none")]
21364 pub category_name: Option<String>,
21365 #[doc = "Category ID\n\nThe category unique identifier of the event.\n\nrequired"]
21366 #[serde(rename = "category_uid")]
21367 #[serde(skip_serializing_if = "Option::is_none")]
21368 pub category_uid: Option<i64>,
21369 #[doc = "Class\n\nThe event class name, as defined by class_uid value: <code>Windows Service Activity</code>.\n\noptional"]
21370 #[serde(rename = "class_name")]
21371 #[serde(skip_serializing_if = "Option::is_none")]
21372 pub class_name: Option<String>,
21373 #[doc = "Class ID\n\nThe unique identifier of a class. A class describes the attributes available in an event.\n\nrequired"]
21374 #[serde(rename = "class_uid")]
21375 #[serde(skip_serializing_if = "Option::is_none")]
21376 pub class_uid: Option<i64>,
21377 #[doc = "Cloud\n\nDescribes details about the Cloud environment where the event or finding was created.\n\nrequired"]
21378 #[serde(rename = "cloud")]
21379 #[serde(skip_serializing_if = "Option::is_none")]
21380 pub cloud: Option<Box<Cloud>>,
21381 #[doc = "Confidence\n\nThe confidence, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
21382 #[serde(rename = "confidence")]
21383 #[serde(skip_serializing_if = "Option::is_none")]
21384 pub confidence: Option<String>,
21385 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of the rule that created the finding. A rule with a low confidence means that the finding scope is wide and may create finding reports that may not be malicious in nature.\n\nrecommended"]
21386 #[serde(rename = "confidence_id")]
21387 #[serde(skip_serializing_if = "Option::is_none")]
21388 pub confidence_id: Option<i64>,
21389 #[doc = "Confidence Score\n\nThe confidence score as reported by the event source.\n\noptional"]
21390 #[serde(rename = "confidence_score")]
21391 #[serde(skip_serializing_if = "Option::is_none")]
21392 pub confidence_score: Option<i64>,
21393 #[doc = "Count\n\nThe number of times that events in the same logical group occurred during the event <strong>Start Time</strong> to <strong>End Time</strong> period.\n\noptional"]
21394 #[serde(rename = "count")]
21395 #[serde(skip_serializing_if = "Option::is_none")]
21396 pub count: Option<i64>,
21397 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrequired"]
21398 #[serde(rename = "device")]
21399 #[serde(skip_serializing_if = "Option::is_none")]
21400 pub device: Option<Box<Device>>,
21401 #[doc = "Disposition\n\nThe disposition name, normalized to the caption of the disposition_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
21402 #[serde(rename = "disposition")]
21403 #[serde(skip_serializing_if = "Option::is_none")]
21404 pub disposition: Option<String>,
21405 #[doc = "Disposition ID\n\nDescribes the outcome or action taken by a security control, such as access control checks, malware detections or various types of policy violations.\n\nrecommended"]
21406 #[serde(rename = "disposition_id")]
21407 #[serde(skip_serializing_if = "Option::is_none")]
21408 pub disposition_id: Option<i64>,
21409 #[doc = "Duration Milliseconds\n\nThe event duration or aggregate time, the amount of time the event covers from <code>start_time</code> to <code>end_time</code> in milliseconds.\n\noptional"]
21410 #[serde(rename = "duration")]
21411 #[serde(skip_serializing_if = "Option::is_none")]
21412 pub duration: Option<i64>,
21413 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
21414 #[serde(rename = "end_time")]
21415 #[serde(skip_serializing_if = "Option::is_none")]
21416 pub end_time: Option<i64>,
21417 #[doc = "End Time\n\nThe end time of a time period, or the time of the most recent event included in the aggregate event.\n\noptional"]
21418 #[serde(rename = "end_time_dt")]
21419 #[serde(skip_serializing_if = "Option::is_none")]
21420 pub end_time_dt: Option<String>,
21421 #[doc = "Enrichments\n\nThe additional information from an external data source, which is associated with the event or a finding. For example add location information for the IP address in the DNS answers:</p><code>[{\"name\": \"answers.ip\", \"value\": \"92.24.47.250\", \"type\": \"location\", \"data\": {\"city\": \"Socotra\", \"continent\": \"Asia\", \"coordinates\": [-25.4153, 17.0743], \"country\": \"YE\", \"desc\": \"Yemen\"}}]</code>\n\noptional"]
21422 #[serde(rename = "enrichments")]
21423 #[serde(skip_serializing_if = "Option::is_none")]
21424 pub enrichments: Option<Vec<Enrichment>>,
21425 #[doc = "Firewall Rule\n\nThe firewall rule that pertains to the control that triggered the event, if applicable.\n\noptional"]
21426 #[serde(rename = "firewall_rule")]
21427 #[serde(skip_serializing_if = "Option::is_none")]
21428 pub firewall_rule: Option<Box<FirewallRule>>,
21429 #[doc = "Alert\n\nIndicates that the event is considered to be an alertable signal. Should be set to <code>true</code> if <code>disposition_id = Alert</code> among other dispositions, and/or <code>risk_level_id</code> or <code>severity_id</code> of the event is elevated. Not all control events will be alertable, for example if <code>disposition_id = Exonerated</code> or <code>disposition_id = Allowed</code>.\n\nrecommended"]
21430 #[serde(rename = "is_alert")]
21431 #[serde(skip_serializing_if = "Option::is_none")]
21432 pub is_alert: Option<bool>,
21433 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
21434 #[serde(rename = "malware")]
21435 #[serde(skip_serializing_if = "Option::is_none")]
21436 pub malware: Option<Vec<Malware>>,
21437 #[doc = "Malware Scan Info\n\nDescribes details about the scan job that identified malware on the target system.\n\noptional"]
21438 #[serde(rename = "malware_scan_info")]
21439 #[serde(skip_serializing_if = "Option::is_none")]
21440 pub malware_scan_info: Option<Box<MalwareScanInfo>>,
21441 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
21442 #[serde(rename = "message")]
21443 #[serde(skip_serializing_if = "Option::is_none")]
21444 pub message: Option<String>,
21445 #[doc = "Metadata\n\nThe metadata associated with the event or a finding.\n\nrequired"]
21446 #[serde(rename = "metadata")]
21447 #[serde(skip_serializing_if = "Option::is_none")]
21448 pub metadata: Option<Box<Metadata>>,
21449 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\nrecommended"]
21450 #[serde(rename = "observables")]
21451 #[serde(skip_serializing_if = "Option::is_none")]
21452 pub observables: Option<Vec<Observable>>,
21453 #[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\nrequired"]
21454 #[serde(rename = "osint")]
21455 #[serde(skip_serializing_if = "Option::is_none")]
21456 pub osint: Option<Vec<Osint>>,
21457 #[doc = "Policy\n\nThe policy that pertains to the control that triggered the event, if applicable. For example the name of an anti-malware policy or an access control policy.\n\noptional"]
21458 #[serde(rename = "policy")]
21459 #[serde(skip_serializing_if = "Option::is_none")]
21460 pub policy: Option<Box<Policy>>,
21461 #[doc = "Raw Data\n\nThe raw event/finding data as received from the source.\n\noptional"]
21462 #[serde(rename = "raw_data")]
21463 #[serde(skip_serializing_if = "Option::is_none")]
21464 pub raw_data: Option<String>,
21465 #[doc = "Raw Data Hash\n\nThe hash, which describes the content of the raw_data field.\n\noptional"]
21466 #[serde(rename = "raw_data_hash")]
21467 #[serde(skip_serializing_if = "Option::is_none")]
21468 pub raw_data_hash: Option<Box<Fingerprint>>,
21469 #[doc = "Raw Data Size\n\nThe size of the raw data which was transformed into an OCSF event, in bytes.\n\noptional"]
21470 #[serde(rename = "raw_data_size")]
21471 #[serde(skip_serializing_if = "Option::is_none")]
21472 pub raw_data_size: Option<i64>,
21473 #[doc = "Risk Details\n\nDescribes the risk associated with the finding.\n\noptional"]
21474 #[serde(rename = "risk_details")]
21475 #[serde(skip_serializing_if = "Option::is_none")]
21476 pub risk_details: Option<String>,
21477 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
21478 #[serde(rename = "risk_level")]
21479 #[serde(skip_serializing_if = "Option::is_none")]
21480 pub risk_level: Option<String>,
21481 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
21482 #[serde(rename = "risk_level_id")]
21483 #[serde(skip_serializing_if = "Option::is_none")]
21484 pub risk_level_id: Option<i64>,
21485 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
21486 #[serde(rename = "risk_score")]
21487 #[serde(skip_serializing_if = "Option::is_none")]
21488 pub risk_score: Option<i64>,
21489 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
21490 #[serde(rename = "severity")]
21491 #[serde(skip_serializing_if = "Option::is_none")]
21492 pub severity: Option<String>,
21493 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrequired"]
21494 #[serde(rename = "severity_id")]
21495 #[serde(skip_serializing_if = "Option::is_none")]
21496 pub severity_id: Option<i64>,
21497 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21498 #[serde(rename = "start_time")]
21499 #[serde(skip_serializing_if = "Option::is_none")]
21500 pub start_time: Option<i64>,
21501 #[doc = "Start Time\n\nThe start time of a time period, or the time of the least recent event included in the aggregate event.\n\noptional"]
21502 #[serde(rename = "start_time_dt")]
21503 #[serde(skip_serializing_if = "Option::is_none")]
21504 pub start_time_dt: Option<String>,
21505 #[doc = "Status\n\nThe event status, normalized to the caption of the status_id value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
21506 #[serde(rename = "status")]
21507 #[serde(skip_serializing_if = "Option::is_none")]
21508 pub status: Option<String>,
21509 #[doc = "Status Code\n\nThe event status code, as reported by the event source.<br /><br />For example, in a Windows Failed Authentication event, this would be the value of 'Failure Code', e.g. 0x18.\n\nrecommended"]
21510 #[serde(rename = "status_code")]
21511 #[serde(skip_serializing_if = "Option::is_none")]
21512 pub status_code: Option<String>,
21513 #[doc = "Status Detail\n\nThe status detail contains additional information about the event/finding outcome.\n\nrecommended"]
21514 #[serde(rename = "status_detail")]
21515 #[serde(skip_serializing_if = "Option::is_none")]
21516 pub status_detail: Option<String>,
21517 #[doc = "Status ID\n\nThe normalized identifier of the event status.\n\nrecommended"]
21518 #[serde(rename = "status_id")]
21519 #[serde(skip_serializing_if = "Option::is_none")]
21520 pub status_id: Option<i64>,
21521 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\nrequired"]
21522 #[serde(rename = "time")]
21523 #[serde(skip_serializing_if = "Option::is_none")]
21524 pub time: Option<i64>,
21525 #[doc = "Event Time\n\nThe normalized event occurrence time or the finding creation time.\n\noptional"]
21526 #[serde(rename = "time_dt")]
21527 #[serde(skip_serializing_if = "Option::is_none")]
21528 pub time_dt: Option<String>,
21529 #[doc = "Timezone Offset\n\nThe number of minutes that the reported event <code>time</code> is ahead or behind UTC, in the range -1,080 to +1,080.\n\nrecommended"]
21530 #[serde(rename = "timezone_offset")]
21531 #[serde(skip_serializing_if = "Option::is_none")]
21532 pub timezone_offset: Option<i64>,
21533 #[doc = "Type Name\n\nThe event/finding type name, as defined by the type_uid.\n\noptional"]
21534 #[serde(rename = "type_name")]
21535 #[serde(skip_serializing_if = "Option::is_none")]
21536 pub type_name: Option<String>,
21537 #[doc = "Type ID\n\nThe event/finding type ID. It identifies the event's semantics and structure. The value is calculated by the logging system as: <code>class_uid * 100 + activity_id</code>.\n\nrequired"]
21538 #[serde(rename = "type_uid")]
21539 #[serde(skip_serializing_if = "Option::is_none")]
21540 pub type_uid: Option<i64>,
21541 #[doc = "Unmapped Data\n\nThe attributes that are not mapped to the event schema. The names and values of those attributes are specific to the event source.\n\noptional"]
21542 #[serde(rename = "unmapped")]
21543 #[serde(skip_serializing_if = "Option::is_none")]
21544 pub unmapped: Option<serde_json::Value>,
21545 #[doc = "Windows Service\n\nThe Windows service.\n\nrequired"]
21546 #[serde(rename = "win_service")]
21547 #[serde(skip_serializing_if = "Option::is_none")]
21548 pub win_service: Option<Box<WinWinService>>,
21549}
21550#[doc = "Access Analysis Result\n\nThe Access Analysis Result object describes access relationships and pathways between identities, resources, focusing on who can access what and through which mechanisms. This evaluates access levels (read/write/admin), access types (direct, cross-account, public, federated), and the conditions under which access is granted. Use this for resource-centric security assessments such as external access discovery, public exposure analysis, etc.\n\n[] Category: | Name: access_analysis_result"]
21551#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21552#[serde(default)]
21553#[non_exhaustive]
21554pub struct AccessAnalysisResult {
21555 #[doc = "Access Level\n\nThe generalized access level or permission scope granted to the identity through the analyzed policy configuration. Common examples include Read, Write, List, Delete, Admin, or custom permission levels.\n\nrecommended"]
21556 #[serde(rename = "access_level")]
21557 #[serde(skip_serializing_if = "Option::is_none")]
21558 pub access_level: Option<String>,
21559 #[doc = "Access Type\n\nThe type or category of access being granted to the identity. This describes the nature of the access relationship, such as cross-account access, public access, federated access, or third-party integration access. Examples include 'Cross-Account', 'Public', 'Federated', 'Service-to-Service', etc.\n\noptional"]
21560 #[serde(rename = "access_type")]
21561 #[serde(skip_serializing_if = "Option::is_none")]
21562 pub access_type: Option<String>,
21563 #[doc = "Accessors\n\nThe identities that are granted access through the analyzed policy configuration. This identifies the specific entity that can exercise the permissions and helps assess the access relationship and potential security implications. Examples include user accounts, service principals, roles, account identifiers, or system identities.\n\nrequired"]
21564 #[serde(rename = "accessors")]
21565 #[serde(skip_serializing_if = "Option::is_none")]
21566 pub accessors: Option<Vec<User>>,
21567 #[doc = "Additional Restrictions\n\nDetails about supplementary restrictions and guardrails that may limit the granted access, applied through additional policy types such as Resource Control Policies (RCPs) and Service Control Policies (SCPs) in AWS, or other policy constraints.\n\noptional"]
21568 #[serde(rename = "additional_restrictions")]
21569 #[serde(skip_serializing_if = "Option::is_none")]
21570 pub additional_restrictions: Option<Vec<AdditionalRestriction>>,
21571 #[doc = "Condition Keys\n\nThe condition keys and their values that constrain when and how the granted access can be exercised. These conditions define the circumstances under which the access relationship is valid and the privileges can be used. Examples: IP address restrictions like 'aws:SourceIp:192.0.2.0/24', time-based constraints like 'aws:RequestedRegion:us-east-1', MFA requirements like 'aws:MultiFactorAuthPresent:true', or custom conditions based on resource tags and request context.\n\noptional"]
21572 #[serde(rename = "condition_keys")]
21573 #[serde(skip_serializing_if = "Option::is_none")]
21574 pub condition_keys: Option<Vec<KeyValueObject>>,
21575 #[doc = "Granted Privileges\n\nThe specific privileges, actions, or permissions that are granted through the analyzed access relationship. This includes the actual operations that the accessor can perform on the target resource. Examples: AWS actions like 'sts:AssumeRole', 's3:GetObject', 'ec2:DescribeInstances'; Azure actions like 'Microsoft.Storage/storageAccounts/read'; or GCP permissions like 'storage.objects.get'.\n\noptional"]
21576 #[serde(rename = "granted_privileges")]
21577 #[serde(skip_serializing_if = "Option::is_none")]
21578 pub granted_privileges: Option<Vec<String>>,
21579}
21580#[doc = "Account\n\nThe Account object contains details about the account that initiated or performed a specific activity within a system or application. Additionally, the Account object refers to logical Cloud and Software-as-a-Service (SaaS) based containers such as AWS Accounts, Azure Subscriptions, Oracle Cloud Compartments, Google Cloud Projects, and otherwise.\n\n[] Category: | Name: account\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
21581#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21582#[serde(default)]
21583#[non_exhaustive]
21584pub struct Account {
21585 #[doc = "Labels\n\nThe list of labels associated to the account.\n\noptional"]
21586 #[serde(rename = "labels")]
21587 #[serde(skip_serializing_if = "Option::is_none")]
21588 pub labels: Option<Vec<String>>,
21589 #[doc = "Name\n\nThe name of the account (e.g. <code> GCP Project name </code>, <code> Linux Account name </code> or <code> AWS Account name</code>).\n\nrecommended"]
21590 #[serde(rename = "name")]
21591 #[serde(skip_serializing_if = "Option::is_none")]
21592 pub name: Option<String>,
21593 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the account.\n\noptional"]
21594 #[serde(rename = "tags")]
21595 #[serde(skip_serializing_if = "Option::is_none")]
21596 pub tags: Option<Vec<KeyValueObject>>,
21597 #[doc = "Type\n\nThe account type, normalized to the caption of 'account_type_id'. In the case of 'Other', it is defined by the event source.\n\noptional"]
21598 #[serde(rename = "type")]
21599 #[serde(skip_serializing_if = "Option::is_none")]
21600 pub r#type: Option<String>,
21601 #[doc = "Type ID\n\nThe normalized account type identifier.\n\nrecommended"]
21602 #[serde(rename = "type_id")]
21603 #[serde(skip_serializing_if = "Option::is_none")]
21604 pub type_id: Option<i64>,
21605 #[doc = "Unique ID\n\nThe unique identifier of the account (e.g. <code> AWS Account ID </code>, <code> OCID </code>, <code> GCP Project ID </code>, <code> Azure Subscription ID </code>, <code> Google Workspace Customer ID </code>, or <code> M365 Tenant UID</code>).\n\nrecommended"]
21606 #[serde(rename = "uid")]
21607 #[serde(skip_serializing_if = "Option::is_none")]
21608 pub uid: Option<String>,
21609}
21610#[doc = "Actor\n\nThe Actor object contains details about the user, role, application, service, or process that initiated or performed a specific activity. Note that Actor is not the threat actor of a campaign but may be part of a campaign.\n\n[] Category: | Name: actor\n\n**Constraints:**\n* at_least_one: `[process`,`user`,`invoked_by`,`session`,`app_name`,`app_uid]`\n"]
21611#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21612#[serde(default)]
21613#[non_exhaustive]
21614pub struct Actor {
21615 #[doc = "Application Name\n\nThe client application or service that initiated the activity. This can be in conjunction with the <code>user</code> if present. Note that <code>app_name</code> is distinct from the <code>process</code> if present.\n\noptional"]
21616 #[serde(rename = "app_name")]
21617 #[serde(skip_serializing_if = "Option::is_none")]
21618 pub app_name: Option<String>,
21619 #[doc = "Application ID\n\nThe unique identifier of the client application or service that initiated the activity. This can be in conjunction with the <code>user</code> if present. Note that <code>app_name</code> is distinct from the <code>process.pid</code> or <code>process.uid</code> if present.\n\noptional"]
21620 #[serde(rename = "app_uid")]
21621 #[serde(skip_serializing_if = "Option::is_none")]
21622 pub app_uid: Option<String>,
21623 #[doc = "Authorization Information\n\nProvides details about an authorization, such as authorization outcome, and any associated policies related to the activity/event.\n\noptional"]
21624 #[serde(rename = "authorizations")]
21625 #[serde(skip_serializing_if = "Option::is_none")]
21626 pub authorizations: Option<Vec<Authorization>>,
21627 #[doc = "Identity Provider\n\nThis object describes details about the Identity Provider used.\n\noptional"]
21628 #[serde(rename = "idp")]
21629 #[serde(skip_serializing_if = "Option::is_none")]
21630 pub idp: Option<Box<Idp>>,
21631 #[doc = "Invoked by\n\nThe name of the service that invoked the activity as described in the event.\n\noptional"]
21632 #[serde(rename = "invoked_by")]
21633 #[serde(skip_serializing_if = "Option::is_none")]
21634 pub invoked_by: Option<String>,
21635 #[doc = "Process\n\nThe process that initiated the activity.\n\nrecommended"]
21636 #[serde(rename = "process")]
21637 #[serde(skip_serializing_if = "Option::is_none")]
21638 pub process: Option<Box<Process>>,
21639 #[doc = "Session\n\nThe user session from which the activity was initiated.\n\noptional"]
21640 #[serde(rename = "session")]
21641 #[serde(skip_serializing_if = "Option::is_none")]
21642 pub session: Option<Box<Session>>,
21643 #[doc = "User\n\nThe user that initiated the activity or the user context from which the activity was initiated.\n\nrecommended"]
21644 #[serde(rename = "user")]
21645 #[serde(skip_serializing_if = "Option::is_none")]
21646 pub user: Option<Box<User>>,
21647}
21648#[doc = "Additional Restriction\n\nThe Additional Restriction object describes supplementary access controls and guardrails that constrain or limit granted permissions beyond the primary policy. These restrictions are typically applied through hierarchical policy frameworks, organizational controls, or conditional access mechanisms. Examples include AWS Service Control Policies (SCPs), Resource Control Policies (RCPs), Azure Management Group policies, GCP Organization policies, conditional access policies, IP restrictions, time-based constraints, and MFA requirements.\n\n[] Category: | Name: additional_restriction"]
21649#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21650#[serde(default)]
21651#[non_exhaustive]
21652pub struct AdditionalRestriction {
21653 #[doc = "Policy\n\nDetailed information about the policy document that defines this restriction, including policy metadata, type, scope, and the specific rules or conditions that implement the access control.\n\nrequired"]
21654 #[serde(rename = "policy")]
21655 #[serde(skip_serializing_if = "Option::is_none")]
21656 pub policy: Option<Box<Policy>>,
21657 #[doc = "Status\n\nThe current status of the policy restriction, normalized to the caption of the <code>status_id</code> enum value.\n\noptional"]
21658 #[serde(rename = "status")]
21659 #[serde(skip_serializing_if = "Option::is_none")]
21660 pub status: Option<String>,
21661 #[doc = "Status ID\n\nThe normalized status identifier indicating the applicability of this policy restriction.\n\nrecommended"]
21662 #[serde(rename = "status_id")]
21663 #[serde(skip_serializing_if = "Option::is_none")]
21664 pub status_id: Option<i64>,
21665}
21666#[doc = "Advisory\n\nThe Advisory object represents publicly disclosed cybersecurity vulnerabilities defined in a Security advisory. e.g. <code> Microsoft KB Article</code>, <code>Apple Security Advisory</code>, or a <code>GitHub Security Advisory (GHSA)</code>\n\n[] Category: | Name: advisory"]
21667#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21668#[serde(default)]
21669#[non_exhaustive]
21670pub struct Advisory {
21671 #[doc = "Average Timespan\n\nThe average time to patch.\n\noptional"]
21672 #[serde(rename = "avg_timespan")]
21673 #[serde(skip_serializing_if = "Option::is_none")]
21674 pub avg_timespan: Option<Box<Timespan>>,
21675 #[doc = "Patch Bulletin\n\nThe Advisory bulletin identifier.\n\noptional"]
21676 #[serde(rename = "bulletin")]
21677 #[serde(skip_serializing_if = "Option::is_none")]
21678 pub bulletin: Option<String>,
21679 #[doc = "Classification\n\nThe vendors classification of the Advisory.\n\noptional"]
21680 #[serde(rename = "classification")]
21681 #[serde(skip_serializing_if = "Option::is_none")]
21682 pub classification: Option<String>,
21683 #[doc = "Created Time\n\nThe time when the Advisory record was created.\n\nrecommended"]
21684 #[serde(rename = "created_time")]
21685 #[serde(skip_serializing_if = "Option::is_none")]
21686 pub created_time: Option<i64>,
21687 #[doc = "Created Time\n\nThe time when the Advisory record was created.\n\noptional"]
21688 #[serde(rename = "created_time_dt")]
21689 #[serde(skip_serializing_if = "Option::is_none")]
21690 pub created_time_dt: Option<String>,
21691 #[doc = "Description\n\nA brief description of the Advisory Record.\n\noptional"]
21692 #[serde(rename = "desc")]
21693 #[serde(skip_serializing_if = "Option::is_none")]
21694 pub desc: Option<String>,
21695 #[doc = "Install State\n\nThe install state of the Advisory.\n\nrecommended"]
21696 #[serde(rename = "install_state")]
21697 #[serde(skip_serializing_if = "Option::is_none")]
21698 pub install_state: Option<String>,
21699 #[doc = "Install State ID\n\nThe normalized install state ID of the Advisory.\n\nrecommended"]
21700 #[serde(rename = "install_state_id")]
21701 #[serde(skip_serializing_if = "Option::is_none")]
21702 pub install_state_id: Option<i64>,
21703 #[doc = "The patch is superseded.\n\nThe Advisory has been replaced by another.\n\noptional"]
21704 #[serde(rename = "is_superseded")]
21705 #[serde(skip_serializing_if = "Option::is_none")]
21706 pub is_superseded: Option<bool>,
21707 #[doc = "Modified Time\n\nThe time when the Advisory record was last updated.\n\noptional"]
21708 #[serde(rename = "modified_time")]
21709 #[serde(skip_serializing_if = "Option::is_none")]
21710 pub modified_time: Option<i64>,
21711 #[doc = "Modified Time\n\nThe time when the Advisory record was last updated.\n\noptional"]
21712 #[serde(rename = "modified_time_dt")]
21713 #[serde(skip_serializing_if = "Option::is_none")]
21714 pub modified_time_dt: Option<String>,
21715 #[doc = "OS\n\nThe operating system the Advisory applies to.\n\nrecommended"]
21716 #[serde(rename = "os")]
21717 #[serde(skip_serializing_if = "Option::is_none")]
21718 pub os: Option<Box<Os>>,
21719 #[doc = "Product\n\nThe product where the vulnerability was discovered.\n\noptional"]
21720 #[serde(rename = "product")]
21721 #[serde(skip_serializing_if = "Option::is_none")]
21722 pub product: Option<Box<Product>>,
21723 #[doc = "References\n\nA list of reference URLs with additional information about the vulnerabilities disclosed in the Advisory.\n\nrecommended"]
21724 #[serde(rename = "references")]
21725 #[serde(skip_serializing_if = "Option::is_none")]
21726 pub references: Option<Vec<String>>,
21727 #[doc = "Related CVEs\n\nA list of Common Vulnerabilities and Exposures <a target='_blank' href='https://cve.mitre.org/'>(CVE)</a> identifiers related to the vulnerabilities disclosed in the Advisory.\n\noptional"]
21728 #[serde(rename = "related_cves")]
21729 #[serde(skip_serializing_if = "Option::is_none")]
21730 pub related_cves: Option<Vec<Cve>>,
21731 #[doc = "Related CWEs\n\nA list of Common Weakness Enumeration <a target='_blank' href='https://cwe.mitre.org/'>(CWE)</a> identifiers related to the vulnerabilities disclosed in the Advisory.\n\noptional"]
21732 #[serde(rename = "related_cwes")]
21733 #[serde(skip_serializing_if = "Option::is_none")]
21734 pub related_cwes: Option<Vec<Cwe>>,
21735 #[doc = "Size\n\nThe size in bytes for the Advisory. Usually populated for a KB Article patch.\n\noptional"]
21736 #[serde(rename = "size")]
21737 #[serde(skip_serializing_if = "Option::is_none")]
21738 pub size: Option<i64>,
21739 #[doc = "Source URL\n\nThe Advisory link from the source vendor.\n\noptional"]
21740 #[serde(rename = "src_url")]
21741 #[serde(skip_serializing_if = "Option::is_none")]
21742 pub src_url: Option<String>,
21743 #[doc = "Title\n\nA title or a brief phrase summarizing the Advisory.\n\nrecommended"]
21744 #[serde(rename = "title")]
21745 #[serde(skip_serializing_if = "Option::is_none")]
21746 pub title: Option<String>,
21747 #[doc = "Advisory ID\n\nThe unique identifier assigned to the advisory or disclosed vulnerability, e.g, <code>GHSA-5mrr-rgp6-x4gr</code>.\n\nrequired"]
21748 #[serde(rename = "uid")]
21749 #[serde(skip_serializing_if = "Option::is_none")]
21750 pub uid: Option<String>,
21751}
21752#[doc = "Affected Code\n\nThe Affected Code object describes details about a code block identified as vulnerable.\n\n[] Category: | Name: affected_code"]
21753#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21754#[serde(default)]
21755#[non_exhaustive]
21756pub struct AffectedCode {
21757 #[doc = "End Column\n\nThe column number of the last part of the assessed code identified as vulnerable.\n\nrecommended"]
21758 #[serde(rename = "end_column")]
21759 #[serde(skip_serializing_if = "Option::is_none")]
21760 pub end_column: Option<i64>,
21761 #[doc = "End Line\n\nThe line number of the last line of code block identified as vulnerable.\n\nrecommended"]
21762 #[serde(rename = "end_line")]
21763 #[serde(skip_serializing_if = "Option::is_none")]
21764 pub end_line: Option<i64>,
21765 #[doc = "File\n\nDetails about the file that contains the affected code block.\n\nrequired"]
21766 #[serde(rename = "file")]
21767 #[serde(skip_serializing_if = "Option::is_none")]
21768 pub file: Option<Box<File>>,
21769 #[doc = "Owner\n\nDetails about the user that owns the affected file.\n\noptional"]
21770 #[serde(rename = "owner")]
21771 #[serde(skip_serializing_if = "Option::is_none")]
21772 pub owner: Option<Box<User>>,
21773 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
21774 #[serde(rename = "remediation")]
21775 #[serde(skip_serializing_if = "Option::is_none")]
21776 pub remediation: Option<Box<Remediation>>,
21777 #[doc = "Related Rule\n\nDetails about the specific rule, e.g., those defined as part of a larger <code>policy</code>, that triggered the finding.\n\nrecommended"]
21778 #[serde(rename = "rule")]
21779 #[serde(skip_serializing_if = "Option::is_none")]
21780 pub rule: Option<Box<Rule>>,
21781 #[doc = "Start Column\n\nThe column number of the first part of the assessed code identified as vulnerable.\n\nrecommended"]
21782 #[serde(rename = "start_column")]
21783 #[serde(skip_serializing_if = "Option::is_none")]
21784 pub start_column: Option<i64>,
21785 #[doc = "Start Line\n\nThe line number of the first line of code block identified as vulnerable.\n\nrecommended"]
21786 #[serde(rename = "start_line")]
21787 #[serde(skip_serializing_if = "Option::is_none")]
21788 pub start_line: Option<i64>,
21789}
21790#[doc = "Affected Software Package\n\nThe Affected Package object describes details about a software package identified as affected by a vulnerability/vulnerabilities.\n\n[] Category: | Name: affected_package"]
21791#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21792#[serde(default)]
21793#[non_exhaustive]
21794pub struct AffectedPackage {
21795 #[doc = "Architecture\n\nArchitecture is a shorthand name describing the type of computer hardware the packaged software is meant to run on.\n\nrecommended"]
21796 #[serde(rename = "architecture")]
21797 #[serde(skip_serializing_if = "Option::is_none")]
21798 pub architecture: Option<String>,
21799 #[doc = "The product CPE identifier\n\nThe Common Platform Enumeration (CPE) name as described by (<a target='_blank' href='https://nvd.nist.gov/products/cpe'>NIST</a>) For example: <code>cpe:/a:apple:safari:16.2</code>.\n\noptional"]
21800 #[serde(rename = "cpe_name")]
21801 #[serde(skip_serializing_if = "Option::is_none")]
21802 pub cpe_name: Option<String>,
21803 #[doc = "Epoch\n\nThe software package epoch. Epoch is a way to define weighted dependencies based on version numbers.\n\noptional"]
21804 #[serde(rename = "epoch")]
21805 #[serde(skip_serializing_if = "Option::is_none")]
21806 pub epoch: Option<i64>,
21807 #[doc = "Fixed In Version\n\nThe software package version in which a reported vulnerability was patched/fixed.\n\noptional"]
21808 #[serde(rename = "fixed_in_version")]
21809 #[serde(skip_serializing_if = "Option::is_none")]
21810 pub fixed_in_version: Option<String>,
21811 #[doc = "Hash\n\nCryptographic hash to identify the binary instance of a software component. This can include any component such file, package, or library.\n\noptional"]
21812 #[serde(rename = "hash")]
21813 #[serde(skip_serializing_if = "Option::is_none")]
21814 pub hash: Option<Box<Fingerprint>>,
21815 #[doc = "Software License\n\nThe software license applied to this package.\n\noptional"]
21816 #[serde(rename = "license")]
21817 #[serde(skip_serializing_if = "Option::is_none")]
21818 pub license: Option<String>,
21819 #[doc = "Software License URL\n\nThe URL pointing to the license applied on package or software. This is typically a <code>LICENSE.md</code> file within a repository.\n\noptional"]
21820 #[serde(rename = "license_url")]
21821 #[serde(skip_serializing_if = "Option::is_none")]
21822 pub license_url: Option<String>,
21823 #[doc = "Name\n\nThe software package name.\n\nrequired"]
21824 #[serde(rename = "name")]
21825 #[serde(skip_serializing_if = "Option::is_none")]
21826 pub name: Option<String>,
21827 #[doc = "Package Manager\n\nThe software packager manager utilized to manage a package on a system, e.g. npm, yum, dpkg etc.\n\noptional"]
21828 #[serde(rename = "package_manager")]
21829 #[serde(skip_serializing_if = "Option::is_none")]
21830 pub package_manager: Option<String>,
21831 #[doc = "Package Manager URL\n\nThe URL of the package or library at the package manager, or the specific URL or URI of an internal package manager link such as <code>AWS CodeArtifact</code> or <code>Artifactory</code>.\n\noptional"]
21832 #[serde(rename = "package_manager_url")]
21833 #[serde(skip_serializing_if = "Option::is_none")]
21834 pub package_manager_url: Option<String>,
21835 #[doc = "Path\n\nThe installation path of the affected package.\n\noptional"]
21836 #[serde(rename = "path")]
21837 #[serde(skip_serializing_if = "Option::is_none")]
21838 pub path: Option<String>,
21839 #[doc = "Package URL\n\nA purl is a URL string used to identify and locate a software package in a mostly universal and uniform way across programming languages, package managers, packaging conventions, tools, APIs and databases.\n\noptional"]
21840 #[serde(rename = "purl")]
21841 #[serde(skip_serializing_if = "Option::is_none")]
21842 pub purl: Option<String>,
21843 #[doc = "Software Release Details\n\nRelease is the number of times a version of the software has been packaged.\n\noptional"]
21844 #[serde(rename = "release")]
21845 #[serde(skip_serializing_if = "Option::is_none")]
21846 pub release: Option<String>,
21847 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
21848 #[serde(rename = "remediation")]
21849 #[serde(skip_serializing_if = "Option::is_none")]
21850 pub remediation: Option<Box<Remediation>>,
21851 #[doc = "Source URL\n\nThe link to the specific library or package such as within <code>GitHub</code>, this is different from the link to the package manager where the library or package is hosted.\n\noptional"]
21852 #[serde(rename = "src_url")]
21853 #[serde(skip_serializing_if = "Option::is_none")]
21854 pub src_url: Option<String>,
21855 #[doc = "Type\n\nThe type of software package, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
21856 #[serde(rename = "type")]
21857 #[serde(skip_serializing_if = "Option::is_none")]
21858 pub r#type: Option<String>,
21859 #[doc = "Type ID\n\nThe type of software package.\n\nrecommended"]
21860 #[serde(rename = "type_id")]
21861 #[serde(skip_serializing_if = "Option::is_none")]
21862 pub type_id: Option<i64>,
21863 #[doc = "Package UID\n\nA unique identifier for the package or library reported by the source tool. E.g., the <code>libId</code> within the <code>sbom</code> field of an OX Security Issue or the SPDX <code>components.*.bom-ref</code>.\n\noptional"]
21864 #[serde(rename = "uid")]
21865 #[serde(skip_serializing_if = "Option::is_none")]
21866 pub uid: Option<String>,
21867 #[doc = "Vendor Name\n\nThe name of the vendor who published the software package.\n\noptional"]
21868 #[serde(rename = "vendor_name")]
21869 #[serde(skip_serializing_if = "Option::is_none")]
21870 pub vendor_name: Option<String>,
21871 #[doc = "Version\n\nThe software package version.\n\nrequired"]
21872 #[serde(rename = "version")]
21873 #[serde(skip_serializing_if = "Option::is_none")]
21874 pub version: Option<String>,
21875}
21876#[doc = "Agent\n\nAn Agent (also known as a Sensor) is typically installed on an Operating System (OS) and serves as a specialized software component that can be designed to monitor, detect, collect, archive, or take action. These activities and possible actions are defined by the upstream system controlling the Agent and its intended purpose. For instance, an Agent can include Endpoint Detection & Response (EDR) agents, backup/disaster recovery sensors, Application Performance Monitoring or profiling sensors, and similar software.\n\n[] Category: | Name: agent\n\n**Constraints:**\n* at_least_one: `[uid`,`name]`\n"]
21877#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21878#[serde(default)]
21879#[non_exhaustive]
21880pub struct Agent {
21881 #[doc = "Agent Name\n\nThe name of the agent or sensor. For example: <code>AWS SSM Agent</code>.\n\nrecommended"]
21882 #[serde(rename = "name")]
21883 #[serde(skip_serializing_if = "Option::is_none")]
21884 pub name: Option<String>,
21885 #[doc = "Agent Policies\n\nDescribes the various policies that may be applied or enforced by an agent or sensor. E.g., Conditional Access, prevention, auto-update, tamper protection, destination configuration, etc.\n\noptional"]
21886 #[serde(rename = "policies")]
21887 #[serde(skip_serializing_if = "Option::is_none")]
21888 pub policies: Option<Vec<Policy>>,
21889 #[doc = "Agent Type\n\nThe normalized caption of the type_id value for the agent or sensor. In the case of 'Other' or 'Unknown', it is defined by the event source.\n\noptional"]
21890 #[serde(rename = "type")]
21891 #[serde(skip_serializing_if = "Option::is_none")]
21892 pub r#type: Option<String>,
21893 #[doc = "Type ID\n\nThe normalized representation of an agent or sensor. E.g., EDR, vulnerability management, APM, backup & recovery, etc.\n\nrecommended"]
21894 #[serde(rename = "type_id")]
21895 #[serde(skip_serializing_if = "Option::is_none")]
21896 pub type_id: Option<i64>,
21897 #[doc = "Agent ID\n\nThe UID of the agent or sensor, sometimes known as a Sensor ID or <code>aid</code>.\n\nrecommended"]
21898 #[serde(rename = "uid")]
21899 #[serde(skip_serializing_if = "Option::is_none")]
21900 pub uid: Option<String>,
21901 #[doc = "Alternate Agent ID\n\nAn alternative or contextual identifier for the agent or sensor, such as a configuration, organization, or license UID.\n\noptional"]
21902 #[serde(rename = "uid_alt")]
21903 #[serde(skip_serializing_if = "Option::is_none")]
21904 pub uid_alt: Option<String>,
21905 #[doc = "Vendor Name\n\nThe company or author who created the agent or sensor. For example: <code>Crowdstrike</code>.\n\noptional"]
21906 #[serde(rename = "vendor_name")]
21907 #[serde(skip_serializing_if = "Option::is_none")]
21908 pub vendor_name: Option<String>,
21909 #[doc = "Agent Version\n\nThe semantic version of the agent or sensor, e.g., <code>7.101.50.0</code>.\n\noptional"]
21910 #[serde(rename = "version")]
21911 #[serde(skip_serializing_if = "Option::is_none")]
21912 pub version: Option<String>,
21913}
21914#[doc = "AI Model\n\nThe AI Model object describes the characteristics of an AI/ML model. Examples include language models like GPT-4, embedding models like text-embedding-ada-002, and computer vision models like CLIP.\n\n[] Category: | Name: ai_model\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
21915#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21916#[serde(default)]
21917#[non_exhaustive]
21918pub struct AiModel {
21919 #[doc = "AI Provider\n\nAI service provider or organization name. For example: <code>OpenAI</code>, <code>Anthropic</code>, <code>Google</code>, or <code>Internal</code>.\n\nrequired"]
21920 #[serde(rename = "ai_provider")]
21921 #[serde(skip_serializing_if = "Option::is_none")]
21922 pub ai_provider: Option<String>,
21923 #[doc = "Name\n\nHuman-readable model name. For example: <code>gpt-4o</code>, <code>claude-3-sonnet</code>, or <code>text-embedding-ada-002</code>.\n\nrequired"]
21924 #[serde(rename = "name")]
21925 #[serde(skip_serializing_if = "Option::is_none")]
21926 pub name: Option<String>,
21927 #[doc = "Unique ID\n\nThe unique identifier of the AI model.\n\nrecommended"]
21928 #[serde(rename = "uid")]
21929 #[serde(skip_serializing_if = "Option::is_none")]
21930 pub uid: Option<String>,
21931 #[doc = "Version\n\nModel version identifier. For example: <code>2024-05-13</code>, <code>v2.1.0</code>, or <code>beta</code>.\n\nrecommended"]
21932 #[serde(rename = "version")]
21933 #[serde(skip_serializing_if = "Option::is_none")]
21934 pub version: Option<String>,
21935}
21936#[doc = "Aircraft\n\nThe Aircraft object represents any aircraft or otherwise airborne asset such as an unmanned system, airplane, balloon, spacecraft, or otherwise. The Aircraft object is intended to normalized data captured or otherwise logged from active radar, passive radar, multi-spectral systems, or the Automatic Dependant Broadcast - Surveillance (ADS-B), and/or Mode S systems.\n\n[] Category: | Name: aircraft\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
21937#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21938#[serde(default)]
21939#[non_exhaustive]
21940pub struct Aircraft {
21941 #[doc = "Geo Location\n\nThe detailed geographical location usually associated with an IP address.\n\nrecommended"]
21942 #[serde(rename = "location")]
21943 #[serde(skip_serializing_if = "Option::is_none")]
21944 pub location: Option<Box<Location>>,
21945 #[doc = "Model\n\nThe model name of the aircraft or unmanned system.\n\noptional"]
21946 #[serde(rename = "model")]
21947 #[serde(skip_serializing_if = "Option::is_none")]
21948 pub model: Option<String>,
21949 #[doc = "Name\n\nThe name of the aircraft, such as the such as the flight name or callsign.\n\nrecommended"]
21950 #[serde(rename = "name")]
21951 #[serde(skip_serializing_if = "Option::is_none")]
21952 pub name: Option<String>,
21953 #[doc = "Serial Number\n\nThe serial number of the aircraft.\n\noptional"]
21954 #[serde(rename = "serial_number")]
21955 #[serde(skip_serializing_if = "Option::is_none")]
21956 pub serial_number: Option<String>,
21957 #[doc = "Speed\n\nGround speed of flight. This value is provided in meters per second with a minimum resolution of 0.25 m/s. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: 255 m/s</code>.\n\noptional"]
21958 #[serde(rename = "speed")]
21959 #[serde(skip_serializing_if = "Option::is_none")]
21960 pub speed: Option<String>,
21961 #[doc = "Speed Accuracy\n\nProvides quality/containment on horizontal ground speed. Measured in meters/second.\n\noptional"]
21962 #[serde(rename = "speed_accuracy")]
21963 #[serde(skip_serializing_if = "Option::is_none")]
21964 pub speed_accuracy: Option<String>,
21965 #[doc = "Track Direction\n\nDirection of flight expressed as a “True North-based” ground track angle. This value is provided in clockwise degrees with a minimum resolution of 1 degree. If aircraft is not moving horizontally, use the “Unknown” value\n\noptional"]
21966 #[serde(rename = "track_direction")]
21967 #[serde(skip_serializing_if = "Option::is_none")]
21968 pub track_direction: Option<String>,
21969 #[doc = "Unique ID\n\nThe primary identification identifier for an aircraft, such as the 24-bit International Civil Aviation Organization (ICAO) identifier of the aircraft, as 6 hex digits.\n\nrecommended"]
21970 #[serde(rename = "uid")]
21971 #[serde(skip_serializing_if = "Option::is_none")]
21972 pub uid: Option<String>,
21973 #[doc = "Alternate ID\n\nA secondary identification identifier for an aircraft, such as the 4-digit squawk (octal representation).\n\noptional"]
21974 #[serde(rename = "uid_alt")]
21975 #[serde(skip_serializing_if = "Option::is_none")]
21976 pub uid_alt: Option<String>,
21977 #[doc = "Vertical Speed\n\nVertical speed upward relative to the WGS-84 datum, measured in meters per second. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: 63 m/s</code>.\n\noptional"]
21978 #[serde(rename = "vertical_speed")]
21979 #[serde(skip_serializing_if = "Option::is_none")]
21980 pub vertical_speed: Option<String>,
21981}
21982#[doc = "Analysis Target\n\nThe analysis target defines the scope of monitored activities, specifying what entity, system or process is analyzed for activity patterns.\n\n[] Category: | Name: analysis_target"]
21983#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21984#[serde(default)]
21985#[non_exhaustive]
21986pub struct AnalysisTarget {
21987 #[doc = "Name\n\nThe specific name or identifier of the analysis target, such as the username of a User Account, the name of a Kubernetes Cluster, the identifier of a Network Namespace, or the name of an Application Component.\n\nrequired"]
21988 #[serde(rename = "name")]
21989 #[serde(skip_serializing_if = "Option::is_none")]
21990 pub name: Option<String>,
21991 #[doc = "Type\n\nThe category of the analysis target, such as User Account, Kubernetes Cluster, Network Namespace, or Application Component.\n\noptional"]
21992 #[serde(rename = "type")]
21993 #[serde(skip_serializing_if = "Option::is_none")]
21994 pub r#type: Option<String>,
21995}
21996#[doc = "Analytic\n\nThe Analytic object contains details about the analytic technique used to analyze and derive insights from the data or information that led to the creation of a finding or conclusion.\n\n[] Category: | Name: analytic\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
21997#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21998#[serde(default)]
21999#[non_exhaustive]
22000pub struct Analytic {
22001 #[doc = "Algorithm\n\nThe algorithm used by the underlying analytic to generate the finding.\n\noptional"]
22002 #[serde(rename = "algorithm")]
22003 #[serde(skip_serializing_if = "Option::is_none")]
22004 pub algorithm: Option<String>,
22005 #[doc = "Category\n\nThe analytic category.\n\noptional"]
22006 #[serde(rename = "category")]
22007 #[serde(skip_serializing_if = "Option::is_none")]
22008 pub category: Option<String>,
22009 #[doc = "Description\n\nThe description of the analytic that generated the finding.\n\noptional"]
22010 #[serde(rename = "desc")]
22011 #[serde(skip_serializing_if = "Option::is_none")]
22012 pub desc: Option<String>,
22013 #[doc = "Name\n\nThe name of the analytic that generated the finding.\n\nrecommended"]
22014 #[serde(rename = "name")]
22015 #[serde(skip_serializing_if = "Option::is_none")]
22016 pub name: Option<String>,
22017 #[doc = "Related Analytics\n\nOther analytics related to this analytic.\n\noptional"]
22018 #[serde(rename = "related_analytics")]
22019 #[serde(skip_serializing_if = "Option::is_none")]
22020 pub related_analytics: Option<Vec<Analytic>>,
22021 #[doc = "State\n\nThe Analytic state.\n\noptional"]
22022 #[serde(rename = "state")]
22023 #[serde(skip_serializing_if = "Option::is_none")]
22024 pub state: Option<String>,
22025 #[doc = "State ID\n\nThe Analytic state identifier.\n\noptional"]
22026 #[serde(rename = "state_id")]
22027 #[serde(skip_serializing_if = "Option::is_none")]
22028 pub state_id: Option<i64>,
22029 #[doc = "Type\n\nThe analytic type.\n\noptional"]
22030 #[serde(rename = "type")]
22031 #[serde(skip_serializing_if = "Option::is_none")]
22032 pub r#type: Option<String>,
22033 #[doc = "Type ID\n\nThe analytic type ID.\n\nrequired"]
22034 #[serde(rename = "type_id")]
22035 #[serde(skip_serializing_if = "Option::is_none")]
22036 pub type_id: Option<i64>,
22037 #[doc = "Unique ID\n\nThe unique identifier of the analytic that generated the finding.\n\nrecommended"]
22038 #[serde(rename = "uid")]
22039 #[serde(skip_serializing_if = "Option::is_none")]
22040 pub uid: Option<String>,
22041 #[doc = "Version\n\nThe analytic version. For example: <code>1.1</code>.\n\noptional"]
22042 #[serde(rename = "version")]
22043 #[serde(skip_serializing_if = "Option::is_none")]
22044 pub version: Option<String>,
22045}
22046#[doc = "Anomaly\n\nDescribes an anomaly or deviation detected in a system. Anomalies are unexpected activity patterns that could indicate potential issues needing attention.\n\n[] Category: | Name: anomaly"]
22047#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22048#[serde(default)]
22049#[non_exhaustive]
22050pub struct Anomaly {
22051 #[doc = "Observation Parameter\n\nThe specific parameter, metric or property where the anomaly was observed. Examples include: CPU usage percentage, API response time in milliseconds, HTTP error rate, memory utilization, network latency, transaction volume, etc. This helps identify the exact aspect of the system exhibiting anomalous behavior.\n\nrequired"]
22052 #[serde(rename = "observation_parameter")]
22053 #[serde(skip_serializing_if = "Option::is_none")]
22054 pub observation_parameter: Option<String>,
22055 #[doc = "Observation Type\n\nThe type of analysis methodology used to detect the anomaly. This indicates how the anomaly was identified through different analytical approaches. Common types include: Frequency Analysis, Time Pattern Analysis, Volume Analysis, Sequence Analysis, Distribution Analysis, etc.\n\nrecommended"]
22056 #[serde(rename = "observation_type")]
22057 #[serde(skip_serializing_if = "Option::is_none")]
22058 pub observation_type: Option<String>,
22059 #[doc = "Observations\n\nDetails about the observed anomaly or observations that were flagged as anomalous compared to expected baseline behavior.\n\nrequired"]
22060 #[serde(rename = "observations")]
22061 #[serde(skip_serializing_if = "Option::is_none")]
22062 pub observations: Option<Vec<Observation>>,
22063 #[doc = "Observed Pattern\n\nThe specific pattern identified within the observation type. For Frequency Analysis, this could be 'FREQUENT', 'INFREQUENT', 'RARE', or 'UNSEEN'. For Time Pattern Analysis, this could be 'BUSINESS_HOURS', 'OFF_HOURS', or 'UNUSUAL_TIME'. For Volume Analysis, this could be 'NORMAL_VOLUME', 'HIGH_VOLUME', or 'SURGE'. The pattern values are specific to each observation type and indicate how the observed behavior relates to the baseline.\n\nrecommended"]
22064 #[serde(rename = "observed_pattern")]
22065 #[serde(skip_serializing_if = "Option::is_none")]
22066 pub observed_pattern: Option<String>,
22067}
22068#[doc = "Anomaly Analysis\n\nDescribes the analysis of activity patterns and anomalies of target entities to identify potential security threats, performance issues, or other deviations from established baselines. This includes monitoring and analyzing user interactions, API usage, resource utilization, access patterns and other measured indicators.\n\n[] Category: | Name: anomaly_analysis"]
22069#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22070#[serde(default)]
22071#[non_exhaustive]
22072pub struct AnomalyAnalysis {
22073 #[doc = "Analysis Targets\n\nThe analysis targets define the scope of monitored activities, specifying what entities, systems or processes are analyzed for activity patterns.\n\nrequired"]
22074 #[serde(rename = "analysis_targets")]
22075 #[serde(skip_serializing_if = "Option::is_none")]
22076 pub analysis_targets: Option<Vec<AnalysisTarget>>,
22077 #[doc = "Anomalies\n\nList of detected activities that significantly deviate from the established baselines. This can include unusual access patterns, unexpected user-agents, abnormal API usage, suspicious traffic spikes, unauthorized access attempts, and other activities that may indicate potential security threats or system issues.\n\nrequired"]
22078 #[serde(rename = "anomalies")]
22079 #[serde(skip_serializing_if = "Option::is_none")]
22080 pub anomalies: Option<Vec<Anomaly>>,
22081 #[doc = "Baselines\n\nList of established patterns representing normal activity that serve as reference points for anomaly detection. This includes typical user interaction patterns like common user-agents, expected API access frequencies and patterns, standard resource utilization levels, and regular traffic flows. These baselines help establish what constitutes 'normal' activity in the system.\n\nrecommended"]
22082 #[serde(rename = "baselines")]
22083 #[serde(skip_serializing_if = "Option::is_none")]
22084 pub baselines: Option<Vec<Baseline>>,
22085}
22086#[doc = "API\n\nThe API, or Application Programming Interface, object represents information pertaining to an API request and response.\n\n[] Category: | Name: api"]
22087#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22088#[serde(default)]
22089#[non_exhaustive]
22090pub struct Api {
22091 #[doc = "Group\n\nThe information pertaining to the API group.\n\noptional"]
22092 #[serde(rename = "group")]
22093 #[serde(skip_serializing_if = "Option::is_none")]
22094 pub group: Option<Box<Group>>,
22095 #[doc = "Operation\n\nVerb/Operation associated with the request\n\nrequired"]
22096 #[serde(rename = "operation")]
22097 #[serde(skip_serializing_if = "Option::is_none")]
22098 pub operation: Option<String>,
22099 #[doc = "API Request Details\n\nDetails pertaining to the API request.\n\nrecommended"]
22100 #[serde(rename = "request")]
22101 #[serde(skip_serializing_if = "Option::is_none")]
22102 pub request: Option<Box<Request>>,
22103 #[doc = "API Response Details\n\nDetails pertaining to the API response.\n\nrecommended"]
22104 #[serde(rename = "response")]
22105 #[serde(skip_serializing_if = "Option::is_none")]
22106 pub response: Option<Box<Response>>,
22107 #[doc = "Service\n\nThe information pertaining to the API service.\n\noptional"]
22108 #[serde(rename = "service")]
22109 #[serde(skip_serializing_if = "Option::is_none")]
22110 pub service: Option<Box<Service>>,
22111 #[doc = "Version\n\nThe version of the API service.\n\noptional"]
22112 #[serde(rename = "version")]
22113 #[serde(skip_serializing_if = "Option::is_none")]
22114 pub version: Option<String>,
22115}
22116#[doc = "Application\n\nAn Application describes the details for an inventoried application as reported by an Application Security tool or other Developer-centric tooling. Applications can be defined as Kubernetes resources, Containerized resources, or application hosting-specific cloud sources such as AWS Elastic BeanStalk, AWS Lightsail, or Azure Logic Apps.\n\n[] Category: | Name: application\n\n**Constraints:**\n* at_least_one: `[uid`,`name]`\n"]
22117#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22118#[serde(default)]
22119#[non_exhaustive]
22120pub struct Application {
22121 #[doc = "Business Criticality\n\nThe criticality of the application as defined by the event source.\n\noptional"]
22122 #[serde(rename = "criticality")]
22123 #[serde(skip_serializing_if = "Option::is_none")]
22124 pub criticality: Option<String>,
22125 #[doc = "Data\n\nAdditional data describing the application.\n\noptional"]
22126 #[serde(rename = "data")]
22127 #[serde(skip_serializing_if = "Option::is_none")]
22128 pub data: Option<serde_json::Value>,
22129 #[doc = "Application Description\n\nA description or commentary for an application, usually retrieved from an upstream system.\n\noptional"]
22130 #[serde(rename = "desc")]
22131 #[serde(skip_serializing_if = "Option::is_none")]
22132 pub desc: Option<String>,
22133 #[doc = "Group\n\nThe name of the related application or associated resource group.\n\noptional"]
22134 #[serde(rename = "group")]
22135 #[serde(skip_serializing_if = "Option::is_none")]
22136 pub group: Option<Box<Group>>,
22137 #[doc = "Hostname\n\nThe fully qualified name of the application.\n\noptional"]
22138 #[serde(rename = "hostname")]
22139 #[serde(skip_serializing_if = "Option::is_none")]
22140 pub hostname: Option<String>,
22141 #[doc = "Labels\n\nThe list of labels associated to the application.\n\noptional"]
22142 #[serde(rename = "labels")]
22143 #[serde(skip_serializing_if = "Option::is_none")]
22144 pub labels: Option<Vec<String>>,
22145 #[doc = "Application Name\n\nThe name of the application.\n\nrecommended"]
22146 #[serde(rename = "name")]
22147 #[serde(skip_serializing_if = "Option::is_none")]
22148 pub name: Option<String>,
22149 #[doc = "Owner\n\nThe identity of the service or user account that owns the application.\n\nrecommended"]
22150 #[serde(rename = "owner")]
22151 #[serde(skip_serializing_if = "Option::is_none")]
22152 pub owner: Option<Box<User>>,
22153 #[doc = "Region\n\nThe cloud region of the resource.\n\noptional"]
22154 #[serde(rename = "region")]
22155 #[serde(skip_serializing_if = "Option::is_none")]
22156 pub region: Option<String>,
22157 #[doc = "Application Relationship\n\nA graph representation showing how this application relates to and interacts with other entities in the environment. This can include parent/child relationships, dependencies, or other connections.\n\noptional"]
22158 #[serde(rename = "resource_relationship")]
22159 #[serde(skip_serializing_if = "Option::is_none")]
22160 pub resource_relationship: Option<Box<Graph>>,
22161 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
22162 #[serde(rename = "risk_level")]
22163 #[serde(skip_serializing_if = "Option::is_none")]
22164 pub risk_level: Option<String>,
22165 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
22166 #[serde(rename = "risk_level_id")]
22167 #[serde(skip_serializing_if = "Option::is_none")]
22168 pub risk_level_id: Option<i64>,
22169 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
22170 #[serde(rename = "risk_score")]
22171 #[serde(skip_serializing_if = "Option::is_none")]
22172 pub risk_score: Option<i64>,
22173 #[doc = "Related SBOM\n\nThe Software Bill of Materials (SBOM) associated with the application\n\noptional"]
22174 #[serde(rename = "sbom")]
22175 #[serde(skip_serializing_if = "Option::is_none")]
22176 pub sbom: Option<Box<Sbom>>,
22177 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the application.\n\noptional"]
22178 #[serde(rename = "tags")]
22179 #[serde(skip_serializing_if = "Option::is_none")]
22180 pub tags: Option<Vec<KeyValueObject>>,
22181 #[doc = "Application Type\n\nThe type of application as defined by the event source, e.g., <code>GitHub</code>, <code>Azure Logic App</code>, or <code>Amazon Elastic BeanStalk</code>.\n\noptional"]
22182 #[serde(rename = "type")]
22183 #[serde(skip_serializing_if = "Option::is_none")]
22184 pub r#type: Option<String>,
22185 #[doc = "Application ID\n\nThe unique identifier for the application.\n\nrecommended"]
22186 #[serde(rename = "uid")]
22187 #[serde(skip_serializing_if = "Option::is_none")]
22188 pub uid: Option<String>,
22189 #[doc = "Application Alternative ID\n\nAn alternative or contextual identifier for the application, such as a configuration, organization, or license UID.\n\noptional"]
22190 #[serde(rename = "uid_alt")]
22191 #[serde(skip_serializing_if = "Option::is_none")]
22192 pub uid_alt: Option<String>,
22193 #[doc = "URL\n\nThe URL of the application.\n\noptional"]
22194 #[serde(rename = "url")]
22195 #[serde(skip_serializing_if = "Option::is_none")]
22196 pub url: Option<Box<Url>>,
22197 #[doc = "Application Version\n\nThe semantic version of the application, e.g., <code>1.7.4</code>.\n\noptional"]
22198 #[serde(rename = "version")]
22199 #[serde(skip_serializing_if = "Option::is_none")]
22200 pub version: Option<String>,
22201}
22202#[doc = "Assessment\n\nThe Assessment object describes a point-in-time assessment, check, or evaluation of a specific configuration or signal against an asset, entity, person, or otherwise. For example, this can encapsulate <code>os_signals</code> from CrowdStrike Falcon Zero Trust Assessments, or account for <code>Datastore</code> configurations from Cyera, or capture details of Microsoft Intune configuration policies.\n\n[] Category: | Name: assessment\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
22203#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22204#[serde(default)]
22205#[non_exhaustive]
22206pub struct Assessment {
22207 #[doc = "Category\n\nThe category that the assessment is part of. For example: <code>Prevention</code> or <code>Windows 10</code>.\n\noptional"]
22208 #[serde(rename = "category")]
22209 #[serde(skip_serializing_if = "Option::is_none")]
22210 pub category: Option<String>,
22211 #[doc = "Description\n\nThe description of the assessment criteria, or a description of the specific configuration or signal the assessment is targeting.\n\nrecommended"]
22212 #[serde(rename = "desc")]
22213 #[serde(skip_serializing_if = "Option::is_none")]
22214 pub desc: Option<String>,
22215 #[doc = "Meets Criteria\n\nDetermines whether the assessment against the specific configuration or signal meets the assessments criteria. For example, if the assessment checks if a <code>Datastore</code> is encrypted or not, having encryption would be evaluated as <code>true</code>.\n\nrequired"]
22216 #[serde(rename = "meets_criteria")]
22217 #[serde(skip_serializing_if = "Option::is_none")]
22218 pub meets_criteria: Option<bool>,
22219 #[doc = "Name\n\nThe name of the configuration or signal being assessed. For example: <code>Kernel Mode Code Integrity (KMCI)</code> or <code>publicAccessibilityState</code>.\n\nrecommended"]
22220 #[serde(rename = "name")]
22221 #[serde(skip_serializing_if = "Option::is_none")]
22222 pub name: Option<String>,
22223 #[doc = "Assessment Policy\n\nThe details of any policy associated with an assessment.\n\noptional"]
22224 #[serde(rename = "policy")]
22225 #[serde(skip_serializing_if = "Option::is_none")]
22226 pub policy: Option<Box<Policy>>,
22227 #[doc = "Unique ID\n\nThe unique identifier of the configuration or signal being assessed. For example: the <code>signal_id</code>.\n\noptional"]
22228 #[serde(rename = "uid")]
22229 #[serde(skip_serializing_if = "Option::is_none")]
22230 pub uid: Option<String>,
22231}
22232#[doc = "MITRE ATT&CK® & ATLAS™\n\nThe MITRE ATT&CK® & ATLAS™ object describes the tactic, technique, sub-technique & mitigation associated to an attack.\n\n[] Category: | Name: attack\n\n**Constraints:**\n* at_least_one: `[tactic`,`technique`,`sub_technique]`\n"]
22233#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22234#[serde(default)]
22235#[non_exhaustive]
22236pub struct Attack {
22237 #[doc = "MITRE Mitigation\n\nThe Mitigation object describes the MITRE ATT&CK® or ATLAS™ Mitigation ID and/or name that is associated to an attack.\n\noptional"]
22238 #[serde(rename = "mitigation")]
22239 #[serde(skip_serializing_if = "Option::is_none")]
22240 pub mitigation: Option<Box<Mitigation>>,
22241 #[doc = "MITRE Sub-technique\n\nThe Sub-technique object describes the MITRE ATT&CK® or ATLAS™ Sub-technique ID and/or name associated to an attack.\n\nrecommended"]
22242 #[serde(rename = "sub_technique")]
22243 #[serde(skip_serializing_if = "Option::is_none")]
22244 pub sub_technique: Option<Box<SubTechnique>>,
22245 #[doc = "MITRE Tactic\n\nThe Tactic object describes the MITRE ATT&CK® or ATLAS™ Tactic ID and/or name that is associated to an attack.\n\nrecommended"]
22246 #[serde(rename = "tactic")]
22247 #[serde(skip_serializing_if = "Option::is_none")]
22248 pub tactic: Option<Box<Tactic>>,
22249 #[doc = "Tactics\n\nThe Tactic object describes the tactic ID and/or tactic name that are associated with the attack technique, as defined by <a target='_blank' href='https://attack.mitre.org/wiki/ATT&CK_Matrix'>ATT&CK® Matrix</a>.\n\noptional"]
22250 #[serde(rename = "tactics")]
22251 #[serde(skip_serializing_if = "Option::is_none")]
22252 pub tactics: Option<Vec<Tactic>>,
22253 #[doc = "MITRE Technique\n\nThe Technique object describes the MITRE ATT&CK® or ATLAS™ Technique ID and/or name associated to an attack.\n\nrecommended"]
22254 #[serde(rename = "technique")]
22255 #[serde(skip_serializing_if = "Option::is_none")]
22256 pub technique: Option<Box<Technique>>,
22257 #[doc = "Version\n\nThe ATT&CK® or ATLAS™ Matrix version.\n\nrecommended"]
22258 #[serde(rename = "version")]
22259 #[serde(skip_serializing_if = "Option::is_none")]
22260 pub version: Option<String>,
22261}
22262#[doc = "Authentication Factor\n\nAn Authentication Factor object describes a category of methods used for identity verification in an authentication attempt.\n\n[] Category: | Name: auth_factor"]
22263#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22264#[serde(default)]
22265#[non_exhaustive]
22266pub struct AuthFactor {
22267 #[doc = "Device\n\nDevice used to complete an authentication request.\n\nrecommended"]
22268 #[serde(rename = "device")]
22269 #[serde(skip_serializing_if = "Option::is_none")]
22270 pub device: Option<Box<Device>>,
22271 #[doc = "Email Address\n\nThe email address used in an email-based authentication factor.\n\noptional"]
22272 #[serde(rename = "email_addr")]
22273 #[serde(skip_serializing_if = "Option::is_none")]
22274 pub email_addr: Option<String>,
22275 #[doc = "Factor Type\n\nThe type of authentication factor used in an authentication attempt.\n\nrecommended"]
22276 #[serde(rename = "factor_type")]
22277 #[serde(skip_serializing_if = "Option::is_none")]
22278 pub factor_type: Option<String>,
22279 #[doc = "Factor Type ID\n\nThe normalized identifier for the authentication factor.\n\nrequired"]
22280 #[serde(rename = "factor_type_id")]
22281 #[serde(skip_serializing_if = "Option::is_none")]
22282 pub factor_type_id: Option<i64>,
22283 #[doc = "HMAC-based One-time Password (HOTP)\n\nWhether the authentication factor is an HMAC-based One-time Password (HOTP).\n\nrecommended"]
22284 #[serde(rename = "is_hotp")]
22285 #[serde(skip_serializing_if = "Option::is_none")]
22286 pub is_hotp: Option<bool>,
22287 #[doc = "Time-based One-time Password (TOTP)\n\nWhether the authentication factor is a Time-based One-time Password (TOTP).\n\nrecommended"]
22288 #[serde(rename = "is_totp")]
22289 #[serde(skip_serializing_if = "Option::is_none")]
22290 pub is_totp: Option<bool>,
22291 #[doc = "Phone Number\n\nThe phone number used for a telephony-based authentication request.\n\noptional"]
22292 #[serde(rename = "phone_number")]
22293 #[serde(skip_serializing_if = "Option::is_none")]
22294 pub phone_number: Option<String>,
22295 #[doc = "Provider\n\nThe name of provider for an authentication factor.\n\nrecommended"]
22296 #[serde(rename = "provider")]
22297 #[serde(skip_serializing_if = "Option::is_none")]
22298 pub provider: Option<String>,
22299 #[doc = "Security Questions\n\nThe question(s) provided to user for a question-based authentication factor.\n\noptional"]
22300 #[serde(rename = "security_questions")]
22301 #[serde(skip_serializing_if = "Option::is_none")]
22302 pub security_questions: Option<Vec<String>>,
22303}
22304#[doc = "Authentication Token\n\nThe Authentication Token object represents standardized authentication tokens, tickets, or assertions that conform to established authentication protocols such as Kerberos, OIDC, and SAML. These tokens are issued by authentication servers and identity providers and carry protocol-specific metadata, lifecycle information, and security attributes defined by their respective specifications.\n\n[] Category: | Name: authentication_token"]
22305#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22306#[serde(default)]
22307#[non_exhaustive]
22308pub struct AuthenticationToken {
22309 #[doc = "Created Time\n\nThe time that the authentication token was created.\n\nrecommended"]
22310 #[serde(rename = "created_time")]
22311 #[serde(skip_serializing_if = "Option::is_none")]
22312 pub created_time: Option<i64>,
22313 #[doc = "Created Time\n\nThe time that the authentication token was created.\n\noptional"]
22314 #[serde(rename = "created_time_dt")]
22315 #[serde(skip_serializing_if = "Option::is_none")]
22316 pub created_time_dt: Option<String>,
22317 #[doc = "Encryption Details\n\nThe encryption details of the authentication token.\n\nrecommended"]
22318 #[serde(rename = "encryption_details")]
22319 #[serde(skip_serializing_if = "Option::is_none")]
22320 pub encryption_details: Option<Box<EncryptionDetails>>,
22321 #[doc = "Expiration Time\n\nThe expiration time of the authentication token.\n\noptional"]
22322 #[serde(rename = "expiration_time")]
22323 #[serde(skip_serializing_if = "Option::is_none")]
22324 pub expiration_time: Option<i64>,
22325 #[doc = "Expiration Time\n\nThe expiration time of the authentication token.\n\noptional"]
22326 #[serde(rename = "expiration_time_dt")]
22327 #[serde(skip_serializing_if = "Option::is_none")]
22328 pub expiration_time_dt: Option<String>,
22329 #[doc = "Renewable\n\nIndicates whether the authentication token is renewable.\n\noptional"]
22330 #[serde(rename = "is_renewable")]
22331 #[serde(skip_serializing_if = "Option::is_none")]
22332 pub is_renewable: Option<bool>,
22333 #[doc = "Kerberos Flags\n\nA bitmask, either in hexadecimal or decimal form, which encodes various attributes or permissions associated with a Kerberos ticket. These flags delineate specific characteristics of the ticket, such as its renewability or forwardability.\n\nrecommended"]
22334 #[serde(rename = "kerberos_flags")]
22335 #[serde(skip_serializing_if = "Option::is_none")]
22336 pub kerberos_flags: Option<String>,
22337 #[doc = "Type\n\nThe type of the authentication token.\n\nrecommended"]
22338 #[serde(rename = "type")]
22339 #[serde(skip_serializing_if = "Option::is_none")]
22340 pub r#type: Option<String>,
22341 #[doc = "Type ID\n\nThe normalized authentication token type identifier.\n\nrecommended"]
22342 #[serde(rename = "type_id")]
22343 #[serde(skip_serializing_if = "Option::is_none")]
22344 pub type_id: Option<i64>,
22345}
22346#[doc = "Authorization Result\n\nThe Authorization Result object provides details about the authorization outcome and associated policies related to activity.\n\n[] Category: | Name: authorization"]
22347#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22348#[serde(default)]
22349#[non_exhaustive]
22350pub struct Authorization {
22351 #[doc = "Authorization Decision/Outcome\n\nAuthorization Result/outcome, e.g. allowed, denied.\n\nrecommended"]
22352 #[serde(rename = "decision")]
22353 #[serde(skip_serializing_if = "Option::is_none")]
22354 pub decision: Option<String>,
22355 #[doc = "Policy\n\nDetails about the Identity/Access management policies that are applicable.\n\noptional"]
22356 #[serde(rename = "policy")]
22357 #[serde(skip_serializing_if = "Option::is_none")]
22358 pub policy: Option<Box<Policy>>,
22359}
22360#[doc = "Autonomous System\n\nAn autonomous system (AS) is a collection of connected Internet Protocol (IP) routing prefixes under the control of one or more network operators on behalf of a single administrative entity or domain that presents a common, clearly defined routing policy to the internet.\n\n[] Category: | Name: autonomous_system\n\n**Constraints:**\n* at_least_one: `[number`,`name]`\n"]
22361#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22362#[serde(default)]
22363#[non_exhaustive]
22364pub struct AutonomousSystem {
22365 #[doc = "Name\n\nOrganization name for the Autonomous System.\n\nrecommended"]
22366 #[serde(rename = "name")]
22367 #[serde(skip_serializing_if = "Option::is_none")]
22368 pub name: Option<String>,
22369 #[doc = "Number\n\nUnique number that the AS is identified by.\n\nrecommended"]
22370 #[serde(rename = "number")]
22371 #[serde(skip_serializing_if = "Option::is_none")]
22372 pub number: Option<i64>,
22373}
22374#[doc = "Baseline\n\nDescribes the baseline or expected behavior of a system, service, or component based on historical observations and measurements. It establishes reference points for comparison to detect anomalies, trends, and deviations from typical patterns.\n\n[] Category: | Name: baseline"]
22375#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22376#[serde(default)]
22377#[non_exhaustive]
22378pub struct Baseline {
22379 #[doc = "Observation Parameter\n\nThe specific parameter or property being monitored. Examples include: CPU usage percentage, API response time in milliseconds, HTTP error rate, memory utilization, network latency, transaction volume, etc.\n\nrequired"]
22380 #[serde(rename = "observation_parameter")]
22381 #[serde(skip_serializing_if = "Option::is_none")]
22382 pub observation_parameter: Option<String>,
22383 #[doc = "Observation Type\n\nThe type of analysis being performed to establish baseline behavior. Common types include: Frequency Analysis, Time Pattern Analysis, Volume Analysis, Sequence Analysis, Distribution Analysis, etc.\n\nrecommended"]
22384 #[serde(rename = "observation_type")]
22385 #[serde(skip_serializing_if = "Option::is_none")]
22386 pub observation_type: Option<String>,
22387 #[doc = "Observations\n\nCollection of actual measured values, data points and observations recorded for this baseline.\n\nrequired"]
22388 #[serde(rename = "observations")]
22389 #[serde(skip_serializing_if = "Option::is_none")]
22390 pub observations: Option<Vec<Observation>>,
22391 #[doc = "Observed Pattern\n\nThe specific pattern identified within the observation type. For Frequency Analysis, this could be 'FREQUENT', 'INFREQUENT', 'RARE', or 'UNSEEN'. For Time Pattern Analysis, this could be 'BUSINESS_HOURS', 'OFF_HOURS', or 'UNUSUAL_TIME'. For Volume Analysis, this could be 'NORMAL_VOLUME', 'HIGH_VOLUME', or 'SURGE'. The pattern values are specific to each observation type and indicate the baseline behavior.\n\nrecommended"]
22392 #[serde(rename = "observed_pattern")]
22393 #[serde(skip_serializing_if = "Option::is_none")]
22394 pub observed_pattern: Option<String>,
22395}
22396#[doc = "Campaign\n\nCampaign represent organized efforts by threat actors to achieve malicious objectives over a period, often characterized by shared tactics, techniques, and procedures (TTPs).\n\n[] Category: | Name: campaign"]
22397#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22398#[serde(default)]
22399#[non_exhaustive]
22400pub struct Campaign {
22401 #[doc = "Name\n\nThe name of a specific campaign associated with a cyber threat.\n\nrequired"]
22402 #[serde(rename = "name")]
22403 #[serde(skip_serializing_if = "Option::is_none")]
22404 pub name: Option<String>,
22405}
22406#[doc = "Digital Certificate\n\nThe Digital Certificate, also known as a Public Key Certificate, object contains information about the ownership and usage of a public key. It serves as a means to establish trust in the authenticity and integrity of the public key and the associated entity.\n\n[] Category: | Name: certificate"]
22407#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22408#[serde(default)]
22409#[non_exhaustive]
22410pub struct Certificate {
22411 #[doc = "Created Time\n\nThe time when the certificate was created.\n\nrecommended"]
22412 #[serde(rename = "created_time")]
22413 #[serde(skip_serializing_if = "Option::is_none")]
22414 pub created_time: Option<i64>,
22415 #[doc = "Created Time\n\nThe time when the certificate was created.\n\noptional"]
22416 #[serde(rename = "created_time_dt")]
22417 #[serde(skip_serializing_if = "Option::is_none")]
22418 pub created_time_dt: Option<String>,
22419 #[doc = "Expiration Time\n\nThe expiration time of the certificate.\n\nrecommended"]
22420 #[serde(rename = "expiration_time")]
22421 #[serde(skip_serializing_if = "Option::is_none")]
22422 pub expiration_time: Option<i64>,
22423 #[doc = "Expiration Time\n\nThe expiration time of the certificate.\n\noptional"]
22424 #[serde(rename = "expiration_time_dt")]
22425 #[serde(skip_serializing_if = "Option::is_none")]
22426 pub expiration_time_dt: Option<String>,
22427 #[doc = "Fingerprints\n\nThe fingerprint list of the certificate.\n\nrecommended"]
22428 #[serde(rename = "fingerprints")]
22429 #[serde(skip_serializing_if = "Option::is_none")]
22430 pub fingerprints: Option<Vec<Fingerprint>>,
22431 #[doc = "Certificate Self-Signed\n\nDenotes whether a digital certificate is self-signed or signed by a known certificate authority (CA).\n\nrecommended"]
22432 #[serde(rename = "is_self_signed")]
22433 #[serde(skip_serializing_if = "Option::is_none")]
22434 pub is_self_signed: Option<bool>,
22435 #[doc = "Issuer Distinguished Name\n\nThe certificate issuer distinguished name.\n\nrequired"]
22436 #[serde(rename = "issuer")]
22437 #[serde(skip_serializing_if = "Option::is_none")]
22438 pub issuer: Option<String>,
22439 #[doc = "Subject Alternative Names\n\nThe list of subject alternative names that are secured by a specific certificate.\n\noptional"]
22440 #[serde(rename = "sans")]
22441 #[serde(skip_serializing_if = "Option::is_none")]
22442 pub sans: Option<Vec<San>>,
22443 #[doc = "Certificate Serial Number\n\nThe serial number of the certificate used to create the digital signature.\n\nrequired"]
22444 #[serde(rename = "serial_number")]
22445 #[serde(skip_serializing_if = "Option::is_none")]
22446 pub serial_number: Option<String>,
22447 #[doc = "Subject Distinguished Name\n\nThe certificate subject distinguished name.\n\nrecommended"]
22448 #[serde(rename = "subject")]
22449 #[serde(skip_serializing_if = "Option::is_none")]
22450 pub subject: Option<String>,
22451 #[doc = "Unique ID\n\nThe unique identifier of the certificate.\n\noptional"]
22452 #[serde(rename = "uid")]
22453 #[serde(skip_serializing_if = "Option::is_none")]
22454 pub uid: Option<String>,
22455 #[doc = "Version\n\nThe certificate version.\n\nrecommended"]
22456 #[serde(rename = "version")]
22457 #[serde(skip_serializing_if = "Option::is_none")]
22458 pub version: Option<String>,
22459}
22460#[doc = "Check\n\nThe check object defines a specific, testable compliance verification point that evaluates a target device against a standard, framework, or custom requirement. While checks are typically associated with formal standards (like CIS, NIST, or ISO), they can also represent custom or organizational requirements. When mapped to controls, checks can evaluate specific control_parameters to determine compliance status, but neither the control mapping nor control_parameters are required for a valid check.\n\n[] Category: | Name: check"]
22461#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22462#[serde(default)]
22463#[non_exhaustive]
22464pub struct Check {
22465 #[doc = "Description\n\nThe detailed description of the compliance check, explaining the security requirement, vulnerability, or configuration being assessed. For example, CIS: <code>The cramfs filesystem type is a compressed read-only Linux filesystem. Removing support for unneeded filesystem types reduces the local attack surface.</code> or DISA STIG: <code>Unauthorized access to the information system by foreign entities may result in loss or compromise of data.</code>\n\noptional"]
22466 #[serde(rename = "desc")]
22467 #[serde(skip_serializing_if = "Option::is_none")]
22468 pub desc: Option<String>,
22469 #[doc = "Name\n\nThe name or title of the compliance check. For example, CIS: <code>Ensure mounting of cramfs filesystems is disabled</code> or DISA STIG: <code>The Ubuntu operating system must implement DoD-approved encryption to protect the confidentiality of remote access sessions</code>.\n\nrecommended"]
22470 #[serde(rename = "name")]
22471 #[serde(skip_serializing_if = "Option::is_none")]
22472 pub name: Option<String>,
22473 #[doc = "Severity\n\nThe severity level as defined in the source document. For example CIS Benchmarks, valid values are: <code>Level 1</code> (security-forward, essential settings), <code>Level 2</code> (security-focused environment, more restrictive), or <code>Scored/Not Scored</code> (whether compliance can be automatically checked). For DISA STIG, valid values are: <code>CAT I</code> (maps to severity_id 5/Critical), <code>CAT II</code> (maps to severity_id 4/High), or <code>CAT III</code> (maps to severity_id 3/Medium).\n\noptional"]
22474 #[serde(rename = "severity")]
22475 #[serde(skip_serializing_if = "Option::is_none")]
22476 pub severity: Option<String>,
22477 #[doc = "Severity ID\n\nThe normalized severity identifier that maps severity levels to standard severity levels. For example CIS Benchmark: <code>Level 2</code> maps to <code>4</code> (High), <code>Level 1</code> maps to <code>3</code> (Medium). For DISA STIG: <code>CAT I</code> maps to <code>5</code> (Critical), <code>CAT II</code> maps to <code>4</code> (High), and <code>CAT III</code> maps to <code>3</code> (Medium).\n\noptional"]
22478 #[serde(rename = "severity_id")]
22479 #[serde(skip_serializing_if = "Option::is_none")]
22480 pub severity_id: Option<i64>,
22481 #[doc = "Compliance Standards: List\n\nThe regulatory or industry standard this check is associated with. E.g., <code>PCI DSS 3.2.1</code>, <code>HIPAA Security Rule</code>, <code>NIST SP 800-53 Rev. 5</code>, or <code>ISO/IEC 27001:2013</code>.\n\nrecommended"]
22482 #[serde(rename = "standards")]
22483 #[serde(skip_serializing_if = "Option::is_none")]
22484 pub standards: Option<Vec<String>>,
22485 #[doc = "Status\n\nThe resultant status of the compliance check normalized to the caption of the <code>status_id</code> value. For example, CIS Benchmark: <code>Pass</code> when all requirements are met, <code>Fail</code> when requirements are not met, or DISA STIG: <code>NotAFinding</code> (maps to status_id 1/Pass), <code>Open</code> (maps to status_id 3/Fail).\n\nrecommended"]
22486 #[serde(rename = "status")]
22487 #[serde(skip_serializing_if = "Option::is_none")]
22488 pub status: Option<String>,
22489 #[doc = "Status ID\n\nThe normalized status identifier of the compliance check.\n\nrecommended"]
22490 #[serde(rename = "status_id")]
22491 #[serde(skip_serializing_if = "Option::is_none")]
22492 pub status_id: Option<i64>,
22493 #[doc = "Unique ID\n\nThe unique identifier of the compliance check within its standard or framework. For example, CIS Benchmark identifier <code>1.1.1.1</code>, DISA STIG identifier <code>V-230234</code>, or NIST control identifier <code>AC-17(2)</code>.\n\nrecommended"]
22494 #[serde(rename = "uid")]
22495 #[serde(skip_serializing_if = "Option::is_none")]
22496 pub uid: Option<String>,
22497 #[doc = "Version\n\nThe check version. For example, CIS Benchmark: <code>1.1.0</code> for Amazon Linux 2 or DISA STIG: <code>V2R1</code> for Windows 10.\n\noptional"]
22498 #[serde(rename = "version")]
22499 #[serde(skip_serializing_if = "Option::is_none")]
22500 pub version: Option<String>,
22501}
22502#[doc = "CIS Benchmark\n\nThe CIS Benchmark object describes best practices for securely configuring IT systems, software, networks, and cloud infrastructure as defined by the <a target='_blank' href='https://www.cisecurity.org/cis-benchmarks/'>Center for Internet Security</a>. See also <a target='_blank' href='https://www.cisecurity.org/insights/blog/getting-to-know-the-cis-benchmarks'>Getting to Know the CIS Benchmarks</a>.\n\n[] Category: | Name: cis_benchmark"]
22503#[deprecated(note = "Use the Compliance object with Checks object instead. (Since 1.5.0)")]
22504#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22505#[serde(default)]
22506#[non_exhaustive]
22507pub struct CisBenchmark {
22508 #[doc = "CIS Controls\n\nThe CIS Critical Security Controls is a prioritized set of actions to protect your organization and data from cyber-attack vectors.\n\nrecommended"]
22509 #[serde(rename = "cis_controls")]
22510 #[serde(skip_serializing_if = "Option::is_none")]
22511 pub cis_controls: Option<Vec<CisControl>>,
22512 #[doc = "Description\n\nThe CIS Benchmark description. For example: <i>The cramfs filesystem type is a compressed read-only Linux filesystem embedded in small footprint systems. A cramfs image can be used without having to first decompress the image.</i>\n\noptional"]
22513 #[serde(rename = "desc")]
22514 #[serde(skip_serializing_if = "Option::is_none")]
22515 pub desc: Option<String>,
22516 #[doc = "Name\n\nThe CIS Benchmark name. For example: <i>Ensure mounting of cramfs filesystems is disabled.</i>\n\nrequired"]
22517 #[serde(rename = "name")]
22518 #[serde(skip_serializing_if = "Option::is_none")]
22519 pub name: Option<String>,
22520}
22521#[doc = "CIS Benchmark Result\n\nThe CIS Benchmark Result object contains information as defined by the Center for Internet Security (<a target='_blank' href='https://www.cisecurity.org/cis-benchmarks/'>CIS</a>) benchmark result. CIS Benchmarks are a collection of best practices for securely configuring IT systems, software, networks, and cloud infrastructure.\n\n[] Category: | Name: cis_benchmark_result"]
22522#[deprecated(note = "Use the Compliance object with Checks object instead. (Since 1.5.0)")]
22523#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22524#[serde(default)]
22525#[non_exhaustive]
22526pub struct CisBenchmarkResult {
22527 #[doc = "Description\n\nThe CIS benchmark description.\n\noptional"]
22528 #[serde(rename = "desc")]
22529 #[serde(skip_serializing_if = "Option::is_none")]
22530 pub desc: Option<String>,
22531 #[doc = "Name\n\nThe CIS benchmark name.\n\nrequired"]
22532 #[serde(rename = "name")]
22533 #[serde(skip_serializing_if = "Option::is_none")]
22534 pub name: Option<String>,
22535 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
22536 #[serde(rename = "remediation")]
22537 #[serde(skip_serializing_if = "Option::is_none")]
22538 pub remediation: Option<Box<Remediation>>,
22539 #[doc = "Rule\n\nThe CIS benchmark rule.\n\noptional"]
22540 #[serde(rename = "rule")]
22541 #[serde(skip_serializing_if = "Option::is_none")]
22542 pub rule: Option<Box<Rule>>,
22543}
22544#[doc = "CIS Control\n\nThe CIS Control (aka Critical Security Control) object describes a prioritized set of actions to protect your organization and data from cyber-attack vectors. The <a target='_blank' href='https://www.cisecurity.org/controls'>CIS Controls</a> are defined by the Center for Internet Security.\n\n[] Category: | Name: cis_control"]
22545#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22546#[serde(default)]
22547#[non_exhaustive]
22548pub struct CisControl {
22549 #[doc = "Description\n\nThe CIS Control description. For example: <i>Uninstall or disable unnecessary services on enterprise assets and software, such as an unused file sharing service, web application module, or service function.</i>\n\noptional"]
22550 #[serde(rename = "desc")]
22551 #[serde(skip_serializing_if = "Option::is_none")]
22552 pub desc: Option<String>,
22553 #[doc = "Name\n\nThe CIS Control name. For example: <i>4.8 Uninstall or Disable Unnecessary Services on Enterprise Assets and Software.</i>\n\nrequired"]
22554 #[serde(rename = "name")]
22555 #[serde(skip_serializing_if = "Option::is_none")]
22556 pub name: Option<String>,
22557 #[doc = "Version\n\nThe CIS Control version. For example: <i>v8</i>.\n\nrecommended"]
22558 #[serde(rename = "version")]
22559 #[serde(skip_serializing_if = "Option::is_none")]
22560 pub version: Option<String>,
22561}
22562#[doc = "CIS CSC\n\nThe CIS Critical Security Control (CSC) contains information as defined by the Center for Internet Security Critical Security Control <a target='_blank' href='https://www.cisecurity.org/controls'>(CIS CSC)</a>. Prioritized set of actions to protect your organization and data from cyber-attack vectors.\n\n[] Category: | Name: cis_csc"]
22563#[deprecated(note = "Use the cis_control object instead. (Since 1.5.0)")]
22564#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22565#[serde(default)]
22566#[non_exhaustive]
22567pub struct CisCsc {
22568 #[doc = "Security Control\n\nA Control is prescriptive, prioritized, and simplified set of best practices that one can use to strengthen their cybersecurity posture. e.g. AWS SecurityHub Controls, CIS Controls.\n\nrequired"]
22569 #[serde(rename = "control")]
22570 #[serde(skip_serializing_if = "Option::is_none")]
22571 pub control: Option<String>,
22572 #[doc = "Version\n\nThe CIS critical security control version.\n\nrecommended"]
22573 #[serde(rename = "version")]
22574 #[serde(skip_serializing_if = "Option::is_none")]
22575 pub version: Option<String>,
22576}
22577#[doc = "Classifier Details\n\nThe Classifier Details object describes details about the classifier used for data classification.\n\n[] Category: | Name: classifier_details"]
22578#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22579#[serde(default)]
22580#[non_exhaustive]
22581pub struct ClassifierDetails {
22582 #[doc = "Name\n\nThe name of the classifier.\n\nrecommended"]
22583 #[serde(rename = "name")]
22584 #[serde(skip_serializing_if = "Option::is_none")]
22585 pub name: Option<String>,
22586 #[doc = "Type\n\nThe type of the classifier.\n\nrequired"]
22587 #[serde(rename = "type")]
22588 #[serde(skip_serializing_if = "Option::is_none")]
22589 pub r#type: Option<String>,
22590 #[doc = "Unique ID\n\nThe unique identifier of the classifier.\n\nrecommended"]
22591 #[serde(rename = "uid")]
22592 #[serde(skip_serializing_if = "Option::is_none")]
22593 pub uid: Option<String>,
22594}
22595#[doc = "Cloud\n\nThe Cloud object describes the cloud computing environment where an event or finding originated. It provides comprehensive context about the cloud infrastructure, including the cloud service provider, account or subscription details, organizational structure, geographic regions, availability zones, and logical partitions.\n\n[] Category: | Name: cloud"]
22596#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22597#[serde(default)]
22598#[non_exhaustive]
22599pub struct Cloud {
22600 #[doc = "Account\n\nThe Account object containing details about the cloud account, subscription, or billing unit where the event or finding was created. This object includes properties such as the account name, unique identifier, type, labels, and tags.<br/><br/><strong>Examples:</strong><ul><li><strong>AWS:</strong> Account object with <code>name</code>, <code>uid</code> (Account ID), <code>type</code>, and other account properties</li><li><strong>Azure:</strong> Subscription object with <code>name</code>, <code>uid</code> (Subscription ID), <code>type</code>, and subscription metadata</li><li><strong>GCP:</strong> Project object with <code>name</code>, <code>uid</code> (Project ID), <code>type</code>, and project attributes</li><li><strong>Oracle Cloud:</strong> Compartment object with <code>name</code>, <code>uid</code> (Tenancy OCID), <code>type</code>, and compartment details</li></ul>\n\noptional"]
22601 #[serde(rename = "account")]
22602 #[serde(skip_serializing_if = "Option::is_none")]
22603 pub account: Option<Box<Account>>,
22604 #[doc = "Cloud Partition\n\nThe logical grouping or isolated segment within a cloud provider's infrastructure where the event or finding was created, often used for compliance, governance, or regional separation.<br/><br/><strong>Examples:</strong><ul><li><strong>AWS:</strong> Partition where the event occurred (<code>aws</code>, <code>aws-cn</code>, <code>aws-us-gov</code>)</li><li><strong>Azure:</strong> Cloud environment where the event occurred (<code>AzureCloud</code>, <code>AzureUSGovernment</code>, <code>AzureChinaCloud</code>)</li></ul>\n\noptional"]
22605 #[serde(rename = "cloud_partition")]
22606 #[serde(skip_serializing_if = "Option::is_none")]
22607 pub cloud_partition: Option<String>,
22608 #[doc = "Organization\n\nThe Organization object containing details about the organizational unit or management structure that governs the account, subscription, or project where the event or finding was created. This object includes properties such as the organization name, unique identifier, type, and other organizational metadata.<br/><br/><strong>Examples:</strong><ul><li><strong>AWS:</strong> Organization object with <code>name</code>, <code>uid</code> (Organization ID), <code>type</code>, and other organizational properties</li><li><strong>Azure:</strong> Management Group object with <code>name</code>, <code>uid</code> (Management Group ID), <code>type</code>, and management group metadata</li><li><strong>GCP:</strong> Organization object with <code>name</code>, <code>uid</code> (Organization ID), <code>type</code>, and organizational attributes</li><li><strong>Oracle Cloud:</strong> Tenancy object with <code>name</code>, <code>uid</code> (Tenancy OCID), <code>type</code>, and tenancy details</li></ul>\n\noptional"]
22609 #[serde(rename = "org")]
22610 #[serde(skip_serializing_if = "Option::is_none")]
22611 pub org: Option<Box<Organization>>,
22612 #[doc = "Project ID\n\nThe unique identifier of a Cloud project.\n\noptional"]
22613 #[serde(rename = "project_uid")]
22614 #[serde(skip_serializing_if = "Option::is_none")]
22615 pub project_uid: Option<String>,
22616 #[doc = "Provider\n\nThe unique name of the Cloud services provider where the event or finding was created, such as AWS, MS Azure, GCP, etc.\n\nrequired"]
22617 #[serde(rename = "provider")]
22618 #[serde(skip_serializing_if = "Option::is_none")]
22619 pub provider: Option<String>,
22620 #[doc = "Region\n\nThe cloud region where the event or finding was created, as defined by the cloud provider.<br/><br/><strong>Examples:</strong><ul><li><strong>AWS:</strong> Region where the event occurred (<code>us-east-1</code>, <code>eu-west-1</code>)</li><li><strong>Azure:</strong> Region where the event occurred (<code>East US</code>, <code>West Europe</code>)</li><li><strong>GCP:</strong> Region where the event occurred (<code>us-central1</code>, <code>europe-west1</code>)</li><li><strong>Oracle Cloud:</strong> Region where the event occurred (<code>us-ashburn-1</code>, <code>uk-london-1</code>)</li></ul>\n\nrecommended"]
22621 #[serde(rename = "region")]
22622 #[serde(skip_serializing_if = "Option::is_none")]
22623 pub region: Option<String>,
22624 #[doc = "Cloud Availability Zone\n\nThe availability zone in the cloud region where the event or finding was created, as defined by the cloud provider.<br/><br/><strong>Examples:</strong><ul><li><strong>AWS:</strong> Availability zone where the event occurred (<code>us-east-1a</code>, <code>us-east-1b</code>)</li><li><strong>Azure:</strong> Availability zone where the event occurred (<code>1</code>, <code>2</code>, <code>3</code> within a region)</li><li><strong>GCP:</strong> Availability zone where the event occurred (<code>us-central1-a</code>, <code>us-central1-b</code>)</li><li><strong>Oracle Cloud:</strong> Availability zone where the event occurred (<code>AD-1</code>, <code>AD-2</code>, <code>AD-3</code>)</li></ul>\n\noptional"]
22625 #[serde(rename = "zone")]
22626 #[serde(skip_serializing_if = "Option::is_none")]
22627 pub zone: Option<String>,
22628}
22629#[doc = "Compliance\n\nThe Compliance object contains information about Industry and Regulatory Framework standards, controls and requirements or details about custom assessments utilized in a compliance evaluation. Standards define broad security frameworks, controls represent specific security requirements within those frameworks, and checks are the testable verification points used to determine if controls are properly implemented.\n\n[] Category: | Name: compliance"]
22630#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22631#[serde(default)]
22632#[non_exhaustive]
22633pub struct Compliance {
22634 #[doc = "Assessments\n\nA list of assessments associated with the compliance requirements evaluation.\n\noptional"]
22635 #[serde(rename = "assessments")]
22636 #[serde(skip_serializing_if = "Option::is_none")]
22637 pub assessments: Option<Vec<Assessment>>,
22638 #[doc = "Category\n\nThe category a control framework pertains to, as reported by the source tool, such as <code>Asset Management</code> or <code>Risk Assessment</code>.\n\noptional"]
22639 #[serde(rename = "category")]
22640 #[serde(skip_serializing_if = "Option::is_none")]
22641 pub category: Option<String>,
22642 #[doc = "Compliance Checks\n\nA list of compliance checks associated with specific industry standards or frameworks. Each check represents an individual rule or requirement that has been evaluated against a target device. Checks typically include details such as the check name (e.g., CIS: 'Ensure mounting of cramfs filesystems is disabled' or DISA STIG descriptive titles), unique identifiers (such as CIS identifier '1.1.1.1' or DISA STIG identifier 'V-230234'), descriptions (detailed explanations of security requirements or vulnerability discussions), and version information.\n\noptional"]
22643 #[serde(rename = "checks")]
22644 #[serde(skip_serializing_if = "Option::is_none")]
22645 pub checks: Option<Vec<Check>>,
22646 #[doc = "Compliance Standard References\n\nA list of reference KB articles that provide information to help organizations understand, interpret, and implement compliance standards. They provide guidance, best practices, and examples.\n\noptional"]
22647 #[serde(rename = "compliance_references")]
22648 #[serde(skip_serializing_if = "Option::is_none")]
22649 pub compliance_references: Option<Vec<KbArticle>>,
22650 #[doc = "Compliance Standards: Details\n\nA list of established guidelines or criteria that define specific requirements an organization must follow.\n\noptional"]
22651 #[serde(rename = "compliance_standards")]
22652 #[serde(skip_serializing_if = "Option::is_none")]
22653 pub compliance_standards: Option<Vec<KbArticle>>,
22654 #[doc = "Security Control\n\nA Control is a prescriptive, actionable set of specifications that strengthens device posture. The control specifies required security measures, while the specific implementation values are defined in control_parameters. E.g., CIS AWS Foundations Benchmark 1.2.0 - Control 2.1 - Ensure CloudTrail is enabled in all regions\n\nrecommended"]
22655 #[serde(rename = "control")]
22656 #[serde(skip_serializing_if = "Option::is_none")]
22657 pub control: Option<String>,
22658 #[doc = "Control Parameters\n\nThe list of control parameters evaluated in a Compliance check. E.g., parameters for CloudTrail configuration might include <code>multiRegionTrailEnabled: true</code>, <code>logFileValidationEnabled: true</code>, and <code>requiredRegions: [us-east-1, us-west-2]</code>\n\noptional"]
22659 #[serde(rename = "control_parameters")]
22660 #[serde(skip_serializing_if = "Option::is_none")]
22661 pub control_parameters: Option<Vec<KeyValueObject>>,
22662 #[doc = "Description\n\nThe description or criteria of a control.\n\noptional"]
22663 #[serde(rename = "desc")]
22664 #[serde(skip_serializing_if = "Option::is_none")]
22665 pub desc: Option<String>,
22666 #[doc = "Compliance Requirements\n\nThe specific compliance requirements being evaluated. E.g., <code>PCI DSS Requirement 8.2.3 - Passwords must meet minimum complexity requirements</code> or <code>HIPAA Security Rule 164.312(a)(2)(iv) - Implement encryption and decryption mechanisms</code>\n\noptional"]
22667 #[serde(rename = "requirements")]
22668 #[serde(skip_serializing_if = "Option::is_none")]
22669 pub requirements: Option<Vec<String>>,
22670 #[doc = "Compliance Standards: List\n\nThe regulatory or industry standards being evaluated for compliance.\n\nrecommended"]
22671 #[serde(rename = "standards")]
22672 #[serde(skip_serializing_if = "Option::is_none")]
22673 pub standards: Option<Vec<String>>,
22674 #[doc = "Status\n\nThe resultant status of the compliance check normalized to the caption of the <code>status_id</code> value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
22675 #[serde(rename = "status")]
22676 #[serde(skip_serializing_if = "Option::is_none")]
22677 pub status: Option<String>,
22678 #[doc = "Status Code\n\nThe resultant status code of the compliance check.\n\noptional"]
22679 #[serde(rename = "status_code")]
22680 #[serde(skip_serializing_if = "Option::is_none")]
22681 pub status_code: Option<String>,
22682 #[doc = "Status Detail\n\nThe contextual description of the <code>status, status_code</code> values.\n\noptional"]
22683 #[serde(rename = "status_detail")]
22684 #[serde(skip_serializing_if = "Option::is_none")]
22685 pub status_detail: Option<String>,
22686 #[doc = "Status Details\n\nA list of contextual descriptions of the <code>status, status_code</code> values.\n\noptional"]
22687 #[serde(rename = "status_details")]
22688 #[serde(skip_serializing_if = "Option::is_none")]
22689 pub status_details: Option<Vec<String>>,
22690 #[doc = "Status ID\n\nThe normalized status identifier of the compliance check.\n\nrecommended"]
22691 #[serde(rename = "status_id")]
22692 #[serde(skip_serializing_if = "Option::is_none")]
22693 pub status_id: Option<i64>,
22694}
22695#[doc = "Container\n\nThe Container object describes an instance of a specific container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\n[] Category: | Name: container\n\n**Constraints:**\n* at_least_one: `[uid`,`name]`\n"]
22696#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22697#[serde(default)]
22698#[non_exhaustive]
22699pub struct Container {
22700 #[doc = "Hash\n\nCommit hash of image created for docker or the SHA256 hash of the container. For example: <code>13550340a8681c84c861aac2e5b440161c2b33a3e4f302ac680ca5b686de48de</code>.\n\nrecommended"]
22701 #[serde(rename = "hash")]
22702 #[serde(skip_serializing_if = "Option::is_none")]
22703 pub hash: Option<Box<Fingerprint>>,
22704 #[doc = "Image\n\nThe container image used as a template to run the container.\n\nrecommended"]
22705 #[serde(rename = "image")]
22706 #[serde(skip_serializing_if = "Option::is_none")]
22707 pub image: Option<Box<Image>>,
22708 #[doc = "Labels\n\nThe list of labels associated to the container.\n\noptional"]
22709 #[serde(rename = "labels")]
22710 #[serde(skip_serializing_if = "Option::is_none")]
22711 pub labels: Option<Vec<String>>,
22712 #[doc = "Name\n\nThe container name.\n\nrecommended"]
22713 #[serde(rename = "name")]
22714 #[serde(skip_serializing_if = "Option::is_none")]
22715 pub name: Option<String>,
22716 #[doc = "Network Driver\n\nThe network driver used by the container. For example, bridge, overlay, host, none, etc.\n\noptional"]
22717 #[serde(rename = "network_driver")]
22718 #[serde(skip_serializing_if = "Option::is_none")]
22719 pub network_driver: Option<String>,
22720 #[doc = "Orchestrator\n\nThe orchestrator managing the container, such as ECS, EKS, K8s, or OpenShift.\n\noptional"]
22721 #[serde(rename = "orchestrator")]
22722 #[serde(skip_serializing_if = "Option::is_none")]
22723 pub orchestrator: Option<String>,
22724 #[doc = "Pod UUID\n\nThe unique identifier of the pod (or equivalent) that the container is executing on.\n\noptional"]
22725 #[serde(rename = "pod_uuid")]
22726 #[serde(skip_serializing_if = "Option::is_none")]
22727 pub pod_uuid: Option<String>,
22728 #[doc = "Runtime\n\nThe backend running the container, such as containerd or cri-o.\n\noptional"]
22729 #[serde(rename = "runtime")]
22730 #[serde(skip_serializing_if = "Option::is_none")]
22731 pub runtime: Option<String>,
22732 #[doc = "Size\n\nThe size of the container image.\n\nrecommended"]
22733 #[serde(rename = "size")]
22734 #[serde(skip_serializing_if = "Option::is_none")]
22735 pub size: Option<i64>,
22736 #[doc = "Image Tag\n\nThe tag used by the container. It can indicate version, format, OS.\n\noptional"]
22737 #[serde(rename = "tag")]
22738 #[serde(skip_serializing_if = "Option::is_none")]
22739 pub tag: Option<String>,
22740 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the container.\n\noptional"]
22741 #[serde(rename = "tags")]
22742 #[serde(skip_serializing_if = "Option::is_none")]
22743 pub tags: Option<Vec<KeyValueObject>>,
22744 #[doc = "Unique ID\n\nThe full container unique identifier for this instantiation of the container. For example: <code>ac2ea168264a08f9aaca0dfc82ff3551418dfd22d02b713142a6843caa2f61bf</code>.\n\nrecommended"]
22745 #[serde(rename = "uid")]
22746 #[serde(skip_serializing_if = "Option::is_none")]
22747 pub uid: Option<String>,
22748}
22749#[doc = "CVE\n\nThe Common Vulnerabilities and Exposures (CVE) object represents publicly disclosed cybersecurity vulnerabilities defined in CVE Program catalog (<a target='_blank' href='https://cve.mitre.org/'>CVE</a>). There is one CVE Record for each vulnerability in the catalog.\n\n[] Category: | Name: cve"]
22750#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22751#[serde(default)]
22752#[non_exhaustive]
22753pub struct Cve {
22754 #[doc = "Created Time\n\nThe Record Creation Date identifies when the CVE ID was issued to a CVE Numbering Authority (CNA) or the CVE Record was published on the CVE List. Note that the Record Creation Date does not necessarily indicate when this vulnerability was discovered, shared with the affected vendor, publicly disclosed, or updated in CVE.\n\nrecommended"]
22755 #[serde(rename = "created_time")]
22756 #[serde(skip_serializing_if = "Option::is_none")]
22757 pub created_time: Option<i64>,
22758 #[doc = "Created Time\n\nThe Record Creation Date identifies when the CVE ID was issued to a CVE Numbering Authority (CNA) or the CVE Record was published on the CVE List. Note that the Record Creation Date does not necessarily indicate when this vulnerability was discovered, shared with the affected vendor, publicly disclosed, or updated in CVE.\n\noptional"]
22759 #[serde(rename = "created_time_dt")]
22760 #[serde(skip_serializing_if = "Option::is_none")]
22761 pub created_time_dt: Option<String>,
22762 #[doc = "CVSS Score\n\nThe CVSS object details Common Vulnerability Scoring System (<a target='_blank' href='https://www.first.org/cvss/'>CVSS</a>) scores from the advisory that are related to the vulnerability.\n\nrecommended"]
22763 #[serde(rename = "cvss")]
22764 #[serde(skip_serializing_if = "Option::is_none")]
22765 pub cvss: Option<Vec<Cvss>>,
22766 #[doc = "CWE\n\nThe CWE object represents a weakness in a software system that can be exploited by a threat actor to perform an attack. The CWE object is based on the <a target='_blank' href='https://cwe.mitre.org/'>Common Weakness Enumeration (CWE)</a> catalog.\n\noptional"]
22767 #[serde(rename = "cwe")]
22768 #[serde(skip_serializing_if = "Option::is_none")]
22769 pub cwe: Option<Box<Cwe>>,
22770 #[doc = "CWE UID\n\nThe <a target='_blank' href='https://cwe.mitre.org/'>Common Weakness Enumeration (CWE)</a> unique identifier. For example: <code>CWE-787</code>.\n\noptional"]
22771 #[serde(rename = "cwe_uid")]
22772 #[serde(skip_serializing_if = "Option::is_none")]
22773 pub cwe_uid: Option<String>,
22774 #[doc = "CWE URL\n\nCommon Weakness Enumeration (CWE) definition URL. For example: <code>https://cwe.mitre.org/data/definitions/787.html</code>.\n\noptional"]
22775 #[serde(rename = "cwe_url")]
22776 #[serde(skip_serializing_if = "Option::is_none")]
22777 pub cwe_url: Option<String>,
22778 #[doc = "Description\n\nA brief description of the CVE Record.\n\noptional"]
22779 #[serde(rename = "desc")]
22780 #[serde(skip_serializing_if = "Option::is_none")]
22781 pub desc: Option<String>,
22782 #[doc = "EPSS\n\nThe Exploit Prediction Scoring System (EPSS) object describes the estimated probability a vulnerability will be exploited. EPSS is a community-driven effort to combine descriptive information about vulnerabilities (CVEs) with evidence of actual exploitation in-the-wild. (<a target='_blank' href='https://www.first.org/epss/'>EPSS</a>).\n\noptional"]
22783 #[serde(rename = "epss")]
22784 #[serde(skip_serializing_if = "Option::is_none")]
22785 pub epss: Option<Box<Epss>>,
22786 #[doc = "Modified Time\n\nThe Record Modified Date identifies when the CVE record was last updated.\n\noptional"]
22787 #[serde(rename = "modified_time")]
22788 #[serde(skip_serializing_if = "Option::is_none")]
22789 pub modified_time: Option<i64>,
22790 #[doc = "Modified Time\n\nThe Record Modified Date identifies when the CVE record was last updated.\n\noptional"]
22791 #[serde(rename = "modified_time_dt")]
22792 #[serde(skip_serializing_if = "Option::is_none")]
22793 pub modified_time_dt: Option<String>,
22794 #[doc = "Product\n\nThe product where the vulnerability was discovered.\n\noptional"]
22795 #[serde(rename = "product")]
22796 #[serde(skip_serializing_if = "Option::is_none")]
22797 pub product: Option<Box<Product>>,
22798 #[doc = "References\n\nA list of reference URLs with additional information about the CVE Record.\n\nrecommended"]
22799 #[serde(rename = "references")]
22800 #[serde(skip_serializing_if = "Option::is_none")]
22801 pub references: Option<Vec<String>>,
22802 #[doc = "Related CWEs\n\nDescribes the Common Weakness Enumeration <a target='_blank' href='https://cwe.mitre.org/'>(CWE)</a> details related to the CVE Record.\n\noptional"]
22803 #[serde(rename = "related_cwes")]
22804 #[serde(skip_serializing_if = "Option::is_none")]
22805 pub related_cwes: Option<Vec<Cwe>>,
22806 #[doc = "Title\n\nA title or a brief phrase summarizing the CVE record.\n\nrecommended"]
22807 #[serde(rename = "title")]
22808 #[serde(skip_serializing_if = "Option::is_none")]
22809 pub title: Option<String>,
22810 #[doc = "Vulnerability Type\n\n<p>The vulnerability type as selected from a large dropdown menu during CVE refinement.</p>Most frequently used vulnerability types are: <code>DoS</code>, <code>Code Execution</code>, <code>Overflow</code>, <code>Memory Corruption</code>, <code>Sql Injection</code>, <code>XSS</code>, <code>Directory Traversal</code>, <code>Http Response Splitting</code>, <code>Bypass something</code>, <code>Gain Information</code>, <code>Gain Privileges</code>, <code>CSRF</code>, <code>File Inclusion</code>. For more information see <a target='_blank' href='https://www.cvedetails.com/vulnerabilities-by-types.php'>Vulnerabilities By Type</a> distributions.\n\nrecommended"]
22811 #[serde(rename = "type")]
22812 #[serde(skip_serializing_if = "Option::is_none")]
22813 pub r#type: Option<String>,
22814 #[doc = "CVE ID\n\nThe Common Vulnerabilities and Exposures unique number assigned to a specific computer vulnerability. A CVE Identifier begins with 4 digits representing the year followed by a sequence of digits that acts as a unique identifier. For example: <code>CVE-2021-12345</code>.\n\nrequired"]
22815 #[serde(rename = "uid")]
22816 #[serde(skip_serializing_if = "Option::is_none")]
22817 pub uid: Option<String>,
22818}
22819#[doc = "CVSS Score\n\nThe Common Vulnerability Scoring System (<a target='_blank' href='https://www.first.org/cvss/'>CVSS</a>) object provides a way to capture the principal characteristics of a vulnerability and produce a numerical score reflecting its severity.\n\n[] Category: | Name: cvss"]
22820#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22821#[serde(default)]
22822#[non_exhaustive]
22823pub struct Cvss {
22824 #[doc = "Base Score\n\nThe CVSS base score. For example: <code>9.1</code>.\n\nrequired"]
22825 #[serde(rename = "base_score")]
22826 #[serde(skip_serializing_if = "Option::is_none")]
22827 pub base_score: Option<f64>,
22828 #[doc = "CVSS Depth\n\nThe CVSS depth represents a depth of the equation used to calculate CVSS score.\n\nrecommended"]
22829 #[serde(rename = "depth")]
22830 #[serde(skip_serializing_if = "Option::is_none")]
22831 pub depth: Option<String>,
22832 #[doc = "Metrics\n\nThe Common Vulnerability Scoring System metrics. This attribute contains information on the CVE's impact. If the CVE has been analyzed, this attribute will contain any CVSSv2 or CVSSv3 information associated with the vulnerability. For example: <code>{ {\"Access Vector\", \"Network\"}, {\"Access Complexity\", \"Low\"}, ...}</code>.\n\noptional"]
22833 #[serde(rename = "metrics")]
22834 #[serde(skip_serializing_if = "Option::is_none")]
22835 pub metrics: Option<Vec<Metric>>,
22836 #[doc = "Overall Score\n\nThe CVSS overall score, impacted by base, temporal, and environmental metrics. For example: <code>9.1</code>.\n\nrecommended"]
22837 #[serde(rename = "overall_score")]
22838 #[serde(skip_serializing_if = "Option::is_none")]
22839 pub overall_score: Option<f64>,
22840 #[doc = "Severity\n\n<p>The Common Vulnerability Scoring System (CVSS) Qualitative Severity Rating. A textual representation of the numeric score.</p><strong>CVSS v2.0</strong><ul><li>Low (0.0 – 3.9)</li><li>Medium (4.0 – 6.9)</li><li>High (7.0 – 10.0)</li></ul></p><strong>CVSS v3.0</strong><ul><li>None (0.0)</li><li>Low (0.1 - 3.9)</li><li>Medium (4.0 - 6.9)</li><li>High (7.0 - 8.9)</li><li>Critical (9.0 - 10.0)</li></ul>\n\noptional"]
22841 #[serde(rename = "severity")]
22842 #[serde(skip_serializing_if = "Option::is_none")]
22843 pub severity: Option<String>,
22844 #[doc = "Source URL\n\nThe source URL for the CVSS score. For example: <code>https://nvd.nist.gov/vuln/detail/CVE-2021-44228</code>\n\noptional"]
22845 #[serde(rename = "src_url")]
22846 #[serde(skip_serializing_if = "Option::is_none")]
22847 pub src_url: Option<String>,
22848 #[doc = "Vector String\n\nThe CVSS vector string is a text representation of a set of CVSS metrics. It is commonly used to record or transfer CVSS metric information in a concise form. For example: <code>3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H</code>.\n\noptional"]
22849 #[serde(rename = "vector_string")]
22850 #[serde(skip_serializing_if = "Option::is_none")]
22851 pub vector_string: Option<String>,
22852 #[doc = "Vendor Name\n\nThe vendor that provided the CVSS score. For example: <code>NVD, REDHAT</code> etc.\n\nrecommended"]
22853 #[serde(rename = "vendor_name")]
22854 #[serde(skip_serializing_if = "Option::is_none")]
22855 pub vendor_name: Option<String>,
22856 #[doc = "Version\n\nThe CVSS version. For example: <code>3.1</code>.\n\nrequired"]
22857 #[serde(rename = "version")]
22858 #[serde(skip_serializing_if = "Option::is_none")]
22859 pub version: Option<String>,
22860}
22861#[doc = "CWE\n\nThe CWE object represents a weakness in a software system that can be exploited by a threat actor to perform an attack. The CWE object is based on the <a target='_blank' href='https://cwe.mitre.org/'>Common Weakness Enumeration (CWE)</a> catalog.\n\n[] Category: | Name: cwe"]
22862#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22863#[serde(default)]
22864#[non_exhaustive]
22865pub struct Cwe {
22866 #[doc = "Caption\n\nThe caption assigned to the Common Weakness Enumeration unique identifier.\n\noptional"]
22867 #[serde(rename = "caption")]
22868 #[serde(skip_serializing_if = "Option::is_none")]
22869 pub caption: Option<String>,
22870 #[doc = "Source URL\n\nURL pointing to the CWE Specification. For more information see <a target='_blank' href='https://cwe.mitre.org/'>CWE.</a>\n\noptional"]
22871 #[serde(rename = "src_url")]
22872 #[serde(skip_serializing_if = "Option::is_none")]
22873 pub src_url: Option<String>,
22874 #[doc = "CWE ID\n\nThe Common Weakness Enumeration unique number assigned to a specific weakness. A CWE Identifier begins \"CWE\" followed by a sequence of digits that acts as a unique identifier. For example: <code>CWE-123</code>.\n\nrequired"]
22875 #[serde(rename = "uid")]
22876 #[serde(skip_serializing_if = "Option::is_none")]
22877 pub uid: Option<String>,
22878}
22879#[doc = "MITRE D3FEND™ Tactic\n\nThe MITRE D3FEND™ Tactic object describes the tactic ID and/or name that is associated to an attack.\n\n[] Category: | Name: d3f_tactic\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
22880#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22881#[serde(default)]
22882#[non_exhaustive]
22883pub struct D3fTactic {
22884 #[doc = "Name\n\nThe tactic name that is associated with the defensive technique. For example: <code>Isolate</code>.\n\nrecommended"]
22885 #[serde(rename = "name")]
22886 #[serde(skip_serializing_if = "Option::is_none")]
22887 pub name: Option<String>,
22888 #[doc = "Source URL\n\nThe versioned permalink of the defensive tactic. For example: <code>https://d3fend.mitre.org/tactic/d3f:Isolate/</code>.\n\noptional"]
22889 #[serde(rename = "src_url")]
22890 #[serde(skip_serializing_if = "Option::is_none")]
22891 pub src_url: Option<String>,
22892 #[doc = "Unique ID\n\nThe unique identifier of the defensive tactic.\n\nrecommended"]
22893 #[serde(rename = "uid")]
22894 #[serde(skip_serializing_if = "Option::is_none")]
22895 pub uid: Option<String>,
22896}
22897#[doc = "MITRE D3FEND™ Technique\n\nThe MITRE D3FEND™ Technique object describes the leaf defensive technique ID and/or name associated to a countermeasure.\n\n[] Category: | Name: d3f_technique\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
22898#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22899#[serde(default)]
22900#[non_exhaustive]
22901pub struct D3fTechnique {
22902 #[doc = "Name\n\nThe name of the defensive technique. For example: <code>IO Port Restriction</code>.\n\nrecommended"]
22903 #[serde(rename = "name")]
22904 #[serde(skip_serializing_if = "Option::is_none")]
22905 pub name: Option<String>,
22906 #[doc = "Source URL\n\nThe versioned permalink of the defensive technique. For example: <code>https://d3fend.mitre.org/technique/d3f:IOPortRestriction/</code>.\n\noptional"]
22907 #[serde(rename = "src_url")]
22908 #[serde(skip_serializing_if = "Option::is_none")]
22909 pub src_url: Option<String>,
22910 #[doc = "Unique ID\n\nThe unique identifier of the defensive technique. For example: <code>D3-IOPR</code>.\n\nrecommended"]
22911 #[serde(rename = "uid")]
22912 #[serde(skip_serializing_if = "Option::is_none")]
22913 pub uid: Option<String>,
22914}
22915#[doc = "MITRE D3FEND™\n\nThe MITRE D3FEND™ object describes the tactic & technique associated with a countermeasure.\n\n[] Category: | Name: d3fend\n\n**Constraints:**\n* at_least_one: `[d3f_tactic`,`d3f_technique]`\n"]
22916#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22917#[serde(default)]
22918#[non_exhaustive]
22919pub struct D3fend {
22920 #[doc = "MITRE D3FEND™ Tactic\n\nThe Tactic object describes the tactic ID and/or name that is associated with a countermeasure.\n\nrecommended"]
22921 #[serde(rename = "d3f_tactic")]
22922 #[serde(skip_serializing_if = "Option::is_none")]
22923 pub d3f_tactic: Option<Box<D3fTactic>>,
22924 #[doc = "MITRE D3FEND™ Technique\n\nThe Technique object describes the technique ID and/or name associated with a countermeasure.\n\nrecommended"]
22925 #[serde(rename = "d3f_technique")]
22926 #[serde(skip_serializing_if = "Option::is_none")]
22927 pub d3f_technique: Option<Box<D3fTechnique>>,
22928 #[doc = "Version\n\nThe D3FEND™ Matrix version.\n\nrecommended"]
22929 #[serde(rename = "version")]
22930 #[serde(skip_serializing_if = "Option::is_none")]
22931 pub version: Option<String>,
22932}
22933#[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\n[] Category: | Name: data_classification\n\n**Constraints:**\n* at_least_one: `[category_id`,`confidentiality_id]`\n"]
22934#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22935#[serde(default)]
22936#[non_exhaustive]
22937pub struct DataClassification {
22938 #[doc = "Category\n\nThe name of the data classification category that data matched into, e.g. Financial, Personal, Governmental, etc.\n\noptional"]
22939 #[serde(rename = "category")]
22940 #[serde(skip_serializing_if = "Option::is_none")]
22941 pub category: Option<String>,
22942 #[doc = "Category ID\n\nThe normalized identifier of the data classification category.\n\nrecommended"]
22943 #[serde(rename = "category_id")]
22944 #[serde(skip_serializing_if = "Option::is_none")]
22945 pub category_id: Option<i64>,
22946 #[doc = "Classifier Details\n\nDescribes details about the classifier used for data classification.\n\nrecommended"]
22947 #[serde(rename = "classifier_details")]
22948 #[serde(skip_serializing_if = "Option::is_none")]
22949 pub classifier_details: Option<Box<ClassifierDetails>>,
22950 #[doc = "Confidentiality\n\nThe file content confidentiality, normalized to the confidentiality_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
22951 #[serde(rename = "confidentiality")]
22952 #[serde(skip_serializing_if = "Option::is_none")]
22953 pub confidentiality: Option<String>,
22954 #[doc = "Confidentiality ID\n\nThe normalized identifier of the file content confidentiality indicator.\n\nrecommended"]
22955 #[serde(rename = "confidentiality_id")]
22956 #[serde(skip_serializing_if = "Option::is_none")]
22957 pub confidentiality_id: Option<i64>,
22958 #[doc = "Discovery Details\n\nDetails about the data discovered by classification job.\n\noptional"]
22959 #[serde(rename = "discovery_details")]
22960 #[serde(skip_serializing_if = "Option::is_none")]
22961 pub discovery_details: Option<Vec<DiscoveryDetails>>,
22962 #[doc = "Policy\n\nDetails about the data policy that governs data handling and security measures related to classification.\n\noptional"]
22963 #[serde(rename = "policy")]
22964 #[serde(skip_serializing_if = "Option::is_none")]
22965 pub policy: Option<Box<Policy>>,
22966 #[doc = "Size\n\nSize of the data classified.\n\noptional"]
22967 #[serde(rename = "size")]
22968 #[serde(skip_serializing_if = "Option::is_none")]
22969 pub size: Option<i64>,
22970 #[doc = "Source URL\n\nThe source URL pointing towards the full classification job details.\n\noptional"]
22971 #[serde(rename = "src_url")]
22972 #[serde(skip_serializing_if = "Option::is_none")]
22973 pub src_url: Option<String>,
22974 #[doc = "Status\n\nThe resultant status of the classification job normalized to the caption of the <code>status_id</code> value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
22975 #[serde(rename = "status")]
22976 #[serde(skip_serializing_if = "Option::is_none")]
22977 pub status: Option<String>,
22978 #[doc = "Status Details\n\nThe contextual description of the <code>status, status_id</code> value.\n\noptional"]
22979 #[serde(rename = "status_details")]
22980 #[serde(skip_serializing_if = "Option::is_none")]
22981 pub status_details: Option<Vec<String>>,
22982 #[doc = "Status ID\n\nThe normalized status identifier of the classification job.\n\nrecommended"]
22983 #[serde(rename = "status_id")]
22984 #[serde(skip_serializing_if = "Option::is_none")]
22985 pub status_id: Option<i64>,
22986 #[doc = "Total\n\nThe total count of discovered entities, by the classification job.\n\noptional"]
22987 #[serde(rename = "total")]
22988 #[serde(skip_serializing_if = "Option::is_none")]
22989 pub total: Option<i64>,
22990 #[doc = "Unique ID\n\nThe unique identifier of the classification job.\n\noptional"]
22991 #[serde(rename = "uid")]
22992 #[serde(skip_serializing_if = "Option::is_none")]
22993 pub uid: Option<String>,
22994}
22995#[doc = "Data Security\n\nThe Data Security object describes the characteristics, techniques and content of a Data Loss Prevention (DLP), Data Loss Detection (DLD), Data Classification, or similar tools' finding, alert, or detection mechanism(s).\n\n[] Category: | Name: data_security\n\n**Constraints:**\n* at_least_one: `[category_id`,`confidentiality_id]`\n"]
22996#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22997#[serde(default)]
22998#[non_exhaustive]
22999pub struct DataSecurity {
23000 #[doc = "Category\n\nThe name of the data classification category that data matched into, e.g. Financial, Personal, Governmental, etc.\n\noptional"]
23001 #[serde(rename = "category")]
23002 #[serde(skip_serializing_if = "Option::is_none")]
23003 pub category: Option<String>,
23004 #[doc = "Category ID\n\nThe normalized identifier of the data classification category.\n\nrecommended"]
23005 #[serde(rename = "category_id")]
23006 #[serde(skip_serializing_if = "Option::is_none")]
23007 pub category_id: Option<i64>,
23008 #[doc = "Classifier Details\n\nDescribes details about the classifier used for data classification.\n\nrecommended"]
23009 #[serde(rename = "classifier_details")]
23010 #[serde(skip_serializing_if = "Option::is_none")]
23011 pub classifier_details: Option<Box<ClassifierDetails>>,
23012 #[doc = "Confidentiality\n\nThe file content confidentiality, normalized to the confidentiality_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
23013 #[serde(rename = "confidentiality")]
23014 #[serde(skip_serializing_if = "Option::is_none")]
23015 pub confidentiality: Option<String>,
23016 #[doc = "Confidentiality ID\n\nThe normalized identifier of the file content confidentiality indicator.\n\nrecommended"]
23017 #[serde(rename = "confidentiality_id")]
23018 #[serde(skip_serializing_if = "Option::is_none")]
23019 pub confidentiality_id: Option<i64>,
23020 #[doc = "Data Lifecycle State\n\nThe name of the stage or state that the data was in. E.g., Data-at-Rest, Data-in-Transit, etc.\n\noptional"]
23021 #[serde(rename = "data_lifecycle_state")]
23022 #[serde(skip_serializing_if = "Option::is_none")]
23023 pub data_lifecycle_state: Option<String>,
23024 #[doc = "Data Lifecycle State ID\n\nThe stage or state that the data was in when it was assessed or scanned by a data security tool.\n\nrecommended"]
23025 #[serde(rename = "data_lifecycle_state_id")]
23026 #[serde(skip_serializing_if = "Option::is_none")]
23027 pub data_lifecycle_state_id: Option<i64>,
23028 #[doc = "Detection Pattern\n\nSpecific pattern, algorithm, fingerprint, or model used for detection.\n\nrecommended"]
23029 #[serde(rename = "detection_pattern")]
23030 #[serde(skip_serializing_if = "Option::is_none")]
23031 pub detection_pattern: Option<String>,
23032 #[doc = "Detection System\n\nThe name of the type of data security tool or system that the finding, detection, or alert originated from. E.g., Endpoint, Secure Email Gateway, etc.\n\noptional"]
23033 #[serde(rename = "detection_system")]
23034 #[serde(skip_serializing_if = "Option::is_none")]
23035 pub detection_system: Option<String>,
23036 #[doc = "Detection System ID\n\nThe type of data security tool or system that the finding, detection, or alert originated from.\n\nrecommended"]
23037 #[serde(rename = "detection_system_id")]
23038 #[serde(skip_serializing_if = "Option::is_none")]
23039 pub detection_system_id: Option<i64>,
23040 #[doc = "Discovery Details\n\nDetails about the data discovered by classification job.\n\noptional"]
23041 #[serde(rename = "discovery_details")]
23042 #[serde(skip_serializing_if = "Option::is_none")]
23043 pub discovery_details: Option<Vec<DiscoveryDetails>>,
23044 #[doc = "Pattern Match\n\nA text, binary, file name, or datastore that matched against a detection rule.\n\noptional"]
23045 #[serde(rename = "pattern_match")]
23046 #[serde(skip_serializing_if = "Option::is_none")]
23047 pub pattern_match: Option<String>,
23048 #[doc = "Policy\n\nDetails about the policy that triggered the finding.\n\nrecommended"]
23049 #[serde(rename = "policy")]
23050 #[serde(skip_serializing_if = "Option::is_none")]
23051 pub policy: Option<Box<Policy>>,
23052 #[doc = "Size\n\nSize of the data classified.\n\noptional"]
23053 #[serde(rename = "size")]
23054 #[serde(skip_serializing_if = "Option::is_none")]
23055 pub size: Option<i64>,
23056 #[doc = "Source URL\n\nThe source URL pointing towards the full classification job details.\n\noptional"]
23057 #[serde(rename = "src_url")]
23058 #[serde(skip_serializing_if = "Option::is_none")]
23059 pub src_url: Option<String>,
23060 #[doc = "Status\n\nThe resultant status of the classification job normalized to the caption of the <code>status_id</code> value. In the case of 'Other', it is defined by the event source.\n\nrecommended"]
23061 #[serde(rename = "status")]
23062 #[serde(skip_serializing_if = "Option::is_none")]
23063 pub status: Option<String>,
23064 #[doc = "Status Details\n\nThe contextual description of the <code>status, status_id</code> value.\n\noptional"]
23065 #[serde(rename = "status_details")]
23066 #[serde(skip_serializing_if = "Option::is_none")]
23067 pub status_details: Option<Vec<String>>,
23068 #[doc = "Status ID\n\nThe normalized status identifier of the classification job.\n\nrecommended"]
23069 #[serde(rename = "status_id")]
23070 #[serde(skip_serializing_if = "Option::is_none")]
23071 pub status_id: Option<i64>,
23072 #[doc = "Total\n\nThe total count of discovered entities, by the classification job.\n\noptional"]
23073 #[serde(rename = "total")]
23074 #[serde(skip_serializing_if = "Option::is_none")]
23075 pub total: Option<i64>,
23076 #[doc = "Unique ID\n\nThe unique identifier of the classification job.\n\noptional"]
23077 #[serde(rename = "uid")]
23078 #[serde(skip_serializing_if = "Option::is_none")]
23079 pub uid: Option<String>,
23080}
23081#[doc = "Database\n\nThe database object is used for databases which are typically datastore services that contain an organized collection of structured and unstructured data or a types of data.\n\n[] Category: | Name: database\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
23082#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23083#[serde(default)]
23084#[non_exhaustive]
23085pub struct Database {
23086 #[doc = "Created Time\n\nThe time when the database was known to have been created.\n\noptional"]
23087 #[serde(rename = "created_time")]
23088 #[serde(skip_serializing_if = "Option::is_none")]
23089 pub created_time: Option<i64>,
23090 #[doc = "Created Time\n\nThe time when the database was known to have been created.\n\noptional"]
23091 #[serde(rename = "created_time_dt")]
23092 #[serde(skip_serializing_if = "Option::is_none")]
23093 pub created_time_dt: Option<String>,
23094 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
23095 #[serde(rename = "data_classification")]
23096 #[serde(skip_serializing_if = "Option::is_none")]
23097 pub data_classification: Option<Box<DataClassification>>,
23098 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
23099 #[serde(rename = "data_classifications")]
23100 #[serde(skip_serializing_if = "Option::is_none")]
23101 pub data_classifications: Option<Vec<DataClassification>>,
23102 #[doc = "Description\n\nThe description of the database.\n\noptional"]
23103 #[serde(rename = "desc")]
23104 #[serde(skip_serializing_if = "Option::is_none")]
23105 pub desc: Option<String>,
23106 #[doc = "Embedding Model\n\nModel used for creating embeddings (if applicable). For example: <code>text-embedding-ada-002</code> or <code>all-MiniLM-L6-v2</code>.\n\noptional"]
23107 #[serde(rename = "embedding_model")]
23108 #[serde(skip_serializing_if = "Option::is_none")]
23109 pub embedding_model: Option<String>,
23110 #[doc = "Groups\n\nThe group names to which the database belongs.\n\noptional"]
23111 #[serde(rename = "groups")]
23112 #[serde(skip_serializing_if = "Option::is_none")]
23113 pub groups: Option<Vec<Group>>,
23114 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the database.\n\noptional"]
23115 #[serde(rename = "modified_time")]
23116 #[serde(skip_serializing_if = "Option::is_none")]
23117 pub modified_time: Option<i64>,
23118 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the database.\n\noptional"]
23119 #[serde(rename = "modified_time_dt")]
23120 #[serde(skip_serializing_if = "Option::is_none")]
23121 pub modified_time_dt: Option<String>,
23122 #[doc = "Name\n\nThe database name, ordinarily as assigned by a database administrator.\n\nrecommended"]
23123 #[serde(rename = "name")]
23124 #[serde(skip_serializing_if = "Option::is_none")]
23125 pub name: Option<String>,
23126 #[doc = "Size\n\nThe size of the database in bytes.\n\noptional"]
23127 #[serde(rename = "size")]
23128 #[serde(skip_serializing_if = "Option::is_none")]
23129 pub size: Option<i64>,
23130 #[doc = "Type\n\nThe database type.\n\nrecommended"]
23131 #[serde(rename = "type")]
23132 #[serde(skip_serializing_if = "Option::is_none")]
23133 pub r#type: Option<String>,
23134 #[doc = "Type ID\n\nThe normalized identifier of the database type.\n\nrequired"]
23135 #[serde(rename = "type_id")]
23136 #[serde(skip_serializing_if = "Option::is_none")]
23137 pub type_id: Option<i64>,
23138 #[doc = "Unique ID\n\nThe unique identifier of the database.\n\nrecommended"]
23139 #[serde(rename = "uid")]
23140 #[serde(skip_serializing_if = "Option::is_none")]
23141 pub uid: Option<String>,
23142}
23143#[doc = "Databucket\n\nThe databucket object is a basic container that holds data, typically organized through the use of data partitions.\n\n[] Category: | Name: databucket\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
23144#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23145#[serde(default)]
23146#[non_exhaustive]
23147pub struct Databucket {
23148 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
23149 #[serde(rename = "agent_list")]
23150 #[serde(skip_serializing_if = "Option::is_none")]
23151 pub agent_list: Option<Vec<Agent>>,
23152 #[doc = "Cloud Partition\n\nThe logical grouping or isolated segment within a cloud provider's infrastructure where the databucket is located.\n\noptional"]
23153 #[serde(rename = "cloud_partition")]
23154 #[serde(skip_serializing_if = "Option::is_none")]
23155 pub cloud_partition: Option<String>,
23156 #[doc = "Created Time\n\nThe time when the databucket was known to have been created.\n\noptional"]
23157 #[serde(rename = "created_time")]
23158 #[serde(skip_serializing_if = "Option::is_none")]
23159 pub created_time: Option<i64>,
23160 #[doc = "Created Time\n\nThe time when the databucket was known to have been created.\n\noptional"]
23161 #[serde(rename = "created_time_dt")]
23162 #[serde(skip_serializing_if = "Option::is_none")]
23163 pub created_time_dt: Option<String>,
23164 #[doc = "Criticality\n\nThe criticality of the databucket as defined by the event source.\n\noptional"]
23165 #[serde(rename = "criticality")]
23166 #[serde(skip_serializing_if = "Option::is_none")]
23167 pub criticality: Option<String>,
23168 #[doc = "Data\n\nAdditional data describing the resource.\n\noptional"]
23169 #[serde(rename = "data")]
23170 #[serde(skip_serializing_if = "Option::is_none")]
23171 pub data: Option<serde_json::Value>,
23172 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
23173 #[serde(rename = "data_classification")]
23174 #[serde(skip_serializing_if = "Option::is_none")]
23175 pub data_classification: Option<Box<DataClassification>>,
23176 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
23177 #[serde(rename = "data_classifications")]
23178 #[serde(skip_serializing_if = "Option::is_none")]
23179 pub data_classifications: Option<Vec<DataClassification>>,
23180 #[doc = "Description\n\nThe description of the databucket.\n\noptional"]
23181 #[serde(rename = "desc")]
23182 #[serde(skip_serializing_if = "Option::is_none")]
23183 pub desc: Option<String>,
23184 #[doc = "Encryption Details\n\nThe encryption details of the databucket. Should be populated if the databucket is encrypted.\n\noptional"]
23185 #[serde(rename = "encryption_details")]
23186 #[serde(skip_serializing_if = "Option::is_none")]
23187 pub encryption_details: Option<Box<EncryptionDetails>>,
23188 #[doc = "File\n\nDetails about the file/object within a databucket.\n\noptional"]
23189 #[serde(rename = "file")]
23190 #[serde(skip_serializing_if = "Option::is_none")]
23191 pub file: Option<Box<File>>,
23192 #[doc = "Group\n\nThe name of the related resource group.\n\noptional"]
23193 #[serde(rename = "group")]
23194 #[serde(skip_serializing_if = "Option::is_none")]
23195 pub group: Option<Box<Group>>,
23196 #[doc = "Groups\n\nThe group names to which the databucket belongs.\n\noptional"]
23197 #[serde(rename = "groups")]
23198 #[serde(skip_serializing_if = "Option::is_none")]
23199 pub groups: Option<Vec<Group>>,
23200 #[doc = "Hostname\n\nThe fully qualified hostname of the databucket.\n\nrecommended"]
23201 #[serde(rename = "hostname")]
23202 #[serde(skip_serializing_if = "Option::is_none")]
23203 pub hostname: Option<String>,
23204 #[doc = "IP Address\n\nThe IP address of the resource, in either IPv4 or IPv6 format.\n\nrecommended"]
23205 #[serde(rename = "ip")]
23206 #[serde(skip_serializing_if = "Option::is_none")]
23207 pub ip: Option<String>,
23208 #[doc = "Back Ups Configured\n\nIndicates whether the device or resource has a backup enabled, such as an automated snapshot or a cloud backup. For example, this is indicated by the <code>cloudBackupEnabled</code> value within JAMF Pro mobile devices or the registration of an AWS ARN with the AWS Backup service.\n\noptional"]
23209 #[serde(rename = "is_backed_up")]
23210 #[serde(skip_serializing_if = "Option::is_none")]
23211 pub is_backed_up: Option<bool>,
23212 #[doc = "Encrypted\n\nIndicates if the databucket is encrypted.\n\noptional"]
23213 #[serde(rename = "is_encrypted")]
23214 #[serde(skip_serializing_if = "Option::is_none")]
23215 pub is_encrypted: Option<bool>,
23216 #[doc = "Public\n\nIndicates if the databucket is publicly accessible.\n\nrecommended"]
23217 #[serde(rename = "is_public")]
23218 #[serde(skip_serializing_if = "Option::is_none")]
23219 pub is_public: Option<bool>,
23220 #[doc = "Labels\n\nThe list of labels associated to the resource.\n\noptional"]
23221 #[serde(rename = "labels")]
23222 #[serde(skip_serializing_if = "Option::is_none")]
23223 pub labels: Option<Vec<String>>,
23224 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the databucket.\n\noptional"]
23225 #[serde(rename = "modified_time")]
23226 #[serde(skip_serializing_if = "Option::is_none")]
23227 pub modified_time: Option<i64>,
23228 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the databucket.\n\noptional"]
23229 #[serde(rename = "modified_time_dt")]
23230 #[serde(skip_serializing_if = "Option::is_none")]
23231 pub modified_time_dt: Option<String>,
23232 #[doc = "Name\n\nThe databucket name.\n\nrecommended"]
23233 #[serde(rename = "name")]
23234 #[serde(skip_serializing_if = "Option::is_none")]
23235 pub name: Option<String>,
23236 #[doc = "Namespace\n\nThe namespace is useful when similar entities exist that you need to keep separate.\n\noptional"]
23237 #[serde(rename = "namespace")]
23238 #[serde(skip_serializing_if = "Option::is_none")]
23239 pub namespace: Option<String>,
23240 #[doc = "Owner\n\nThe identity of the service or user account that owns the databucket.\n\nrecommended"]
23241 #[serde(rename = "owner")]
23242 #[serde(skip_serializing_if = "Option::is_none")]
23243 pub owner: Option<Box<User>>,
23244 #[doc = "Region\n\nThe cloud region of the databucket.\n\noptional"]
23245 #[serde(rename = "region")]
23246 #[serde(skip_serializing_if = "Option::is_none")]
23247 pub region: Option<String>,
23248 #[doc = "Resource Relationship\n\nA graph representation showing how this databucket relates to and interacts with other entities in the environment. This can include parent/child relationships, dependencies, or other connections.\n\noptional"]
23249 #[serde(rename = "resource_relationship")]
23250 #[serde(skip_serializing_if = "Option::is_none")]
23251 pub resource_relationship: Option<Box<Graph>>,
23252 #[doc = "Size\n\nThe size of the databucket in bytes.\n\noptional"]
23253 #[serde(rename = "size")]
23254 #[serde(skip_serializing_if = "Option::is_none")]
23255 pub size: Option<i64>,
23256 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the resource.\n\noptional"]
23257 #[serde(rename = "tags")]
23258 #[serde(skip_serializing_if = "Option::is_none")]
23259 pub tags: Option<Vec<KeyValueObject>>,
23260 #[doc = "Type\n\nThe databucket type.\n\nrecommended"]
23261 #[serde(rename = "type")]
23262 #[serde(skip_serializing_if = "Option::is_none")]
23263 pub r#type: Option<String>,
23264 #[doc = "Type ID\n\nThe normalized identifier of the databucket type.\n\nrequired"]
23265 #[serde(rename = "type_id")]
23266 #[serde(skip_serializing_if = "Option::is_none")]
23267 pub type_id: Option<i64>,
23268 #[doc = "Unique ID\n\nThe unique identifier of the databucket.\n\nrecommended"]
23269 #[serde(rename = "uid")]
23270 #[serde(skip_serializing_if = "Option::is_none")]
23271 pub uid: Option<String>,
23272 #[doc = "Alternate ID\n\nThe alternative unique identifier of the resource.\n\noptional"]
23273 #[serde(rename = "uid_alt")]
23274 #[serde(skip_serializing_if = "Option::is_none")]
23275 pub uid_alt: Option<String>,
23276 #[doc = "Version\n\nThe version of the resource. For example <code>1.2.3</code>.\n\noptional"]
23277 #[serde(rename = "version")]
23278 #[serde(skip_serializing_if = "Option::is_none")]
23279 pub version: Option<String>,
23280 #[doc = "Cloud Availability Zone\n\nThe specific availability zone within a cloud region where the databucket is located.\n\noptional"]
23281 #[serde(rename = "zone")]
23282 #[serde(skip_serializing_if = "Option::is_none")]
23283 pub zone: Option<String>,
23284}
23285#[doc = "DCE/RPC\n\nThe DCE/RPC, or Distributed Computing Environment/Remote Procedure Call, object describes the remote procedure call system for distributed computing environments.\n\n[] Category: | Name: dce_rpc"]
23286#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23287#[serde(default)]
23288#[non_exhaustive]
23289pub struct DceRpc {
23290 #[doc = "Command\n\nThe request command (e.g. REQUEST, BIND).\n\nrecommended"]
23291 #[serde(rename = "command")]
23292 #[serde(skip_serializing_if = "Option::is_none")]
23293 pub command: Option<String>,
23294 #[doc = "Command Response\n\nThe reply to the request command (e.g. RESPONSE, BINDACK or FAULT).\n\nrecommended"]
23295 #[serde(rename = "command_response")]
23296 #[serde(skip_serializing_if = "Option::is_none")]
23297 pub command_response: Option<String>,
23298 #[doc = "Flags\n\nThe list of interface flags.\n\nrequired"]
23299 #[serde(rename = "flags")]
23300 #[serde(skip_serializing_if = "Option::is_none")]
23301 pub flags: Option<Vec<String>>,
23302 #[doc = "Opnum\n\nAn operation number used to identify a specific remote procedure call (RPC) method or a method in an interface.\n\nrecommended"]
23303 #[serde(rename = "opnum")]
23304 #[serde(skip_serializing_if = "Option::is_none")]
23305 pub opnum: Option<i64>,
23306 #[doc = "Remote Procedure Call Interface\n\nThe RPC Interface object describes the details pertaining to the remote procedure call interface.\n\nrequired"]
23307 #[serde(rename = "rpc_interface")]
23308 #[serde(skip_serializing_if = "Option::is_none")]
23309 pub rpc_interface: Option<Box<RpcInterface>>,
23310}
23311#[doc = "Device\n\nThe Device object represents an addressable computer system or host, which is typically connected to a computer network and participates in the transmission or processing of data within the computer network.\n\n[] Category: | Name: device\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
23312#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23313#[serde(default)]
23314#[non_exhaustive]
23315pub struct Device {
23316 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
23317 #[serde(rename = "agent_list")]
23318 #[serde(skip_serializing_if = "Option::is_none")]
23319 pub agent_list: Option<Vec<Agent>>,
23320 #[doc = "Autoscale UID\n\nThe unique identifier of the cloud autoscale configuration.\n\noptional"]
23321 #[serde(rename = "autoscale_uid")]
23322 #[serde(skip_serializing_if = "Option::is_none")]
23323 pub autoscale_uid: Option<String>,
23324 #[doc = "Boot Time\n\nThe time the system was booted.\n\noptional"]
23325 #[serde(rename = "boot_time")]
23326 #[serde(skip_serializing_if = "Option::is_none")]
23327 pub boot_time: Option<i64>,
23328 #[doc = "Boot Time\n\nThe time the system was booted.\n\noptional"]
23329 #[serde(rename = "boot_time_dt")]
23330 #[serde(skip_serializing_if = "Option::is_none")]
23331 pub boot_time_dt: Option<String>,
23332 #[doc = "Boot UID\n\nA unique identifier of the device that changes after every reboot. For example, the value of <code>/proc/sys/kernel/random/boot_id</code> from Linux's procfs.\n\noptional"]
23333 #[serde(rename = "boot_uid")]
23334 #[serde(skip_serializing_if = "Option::is_none")]
23335 pub boot_uid: Option<String>,
23336 #[doc = "Container\n\nThe information describing an instance of a container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\nrecommended"]
23337 #[serde(rename = "container")]
23338 #[serde(skip_serializing_if = "Option::is_none")]
23339 pub container: Option<Box<Container>>,
23340 #[doc = "Created Time\n\nThe time when the device was known to have been created.\n\noptional"]
23341 #[serde(rename = "created_time")]
23342 #[serde(skip_serializing_if = "Option::is_none")]
23343 pub created_time: Option<i64>,
23344 #[doc = "Created Time\n\nThe time when the device was known to have been created.\n\noptional"]
23345 #[serde(rename = "created_time_dt")]
23346 #[serde(skip_serializing_if = "Option::is_none")]
23347 pub created_time_dt: Option<String>,
23348 #[doc = "Description\n\nThe description of the device, ordinarily as reported by the operating system.\n\noptional"]
23349 #[serde(rename = "desc")]
23350 #[serde(skip_serializing_if = "Option::is_none")]
23351 pub desc: Option<String>,
23352 #[doc = "Domain\n\nThe network domain where the device resides. For example: <code>work.example.com</code>.\n\noptional"]
23353 #[serde(rename = "domain")]
23354 #[serde(skip_serializing_if = "Option::is_none")]
23355 pub domain: Option<String>,
23356 #[doc = "EID\n\nAn Embedded Identity Document, is a unique serial number that identifies an eSIM-enabled device.\n\noptional"]
23357 #[serde(rename = "eid")]
23358 #[serde(skip_serializing_if = "Option::is_none")]
23359 pub eid: Option<String>,
23360 #[doc = "First Seen\n\nThe initial discovery time of the device.\n\noptional"]
23361 #[serde(rename = "first_seen_time")]
23362 #[serde(skip_serializing_if = "Option::is_none")]
23363 pub first_seen_time: Option<i64>,
23364 #[doc = "First Seen\n\nThe initial discovery time of the device.\n\noptional"]
23365 #[serde(rename = "first_seen_time_dt")]
23366 #[serde(skip_serializing_if = "Option::is_none")]
23367 pub first_seen_time_dt: Option<String>,
23368 #[doc = "Groups\n\nThe group names to which the device belongs. For example: <code>[\"Windows Laptops\", \"Engineering\"]</code>.\n\noptional"]
23369 #[serde(rename = "groups")]
23370 #[serde(skip_serializing_if = "Option::is_none")]
23371 pub groups: Option<Vec<Group>>,
23372 #[doc = "Hostname\n\nThe device hostname.\n\nrecommended"]
23373 #[serde(rename = "hostname")]
23374 #[serde(skip_serializing_if = "Option::is_none")]
23375 pub hostname: Option<String>,
23376 #[doc = "Hardware Info\n\nThe endpoint hardware information.\n\noptional"]
23377 #[serde(rename = "hw_info")]
23378 #[serde(skip_serializing_if = "Option::is_none")]
23379 pub hw_info: Option<Box<DeviceHwInfo>>,
23380 #[doc = "Hypervisor\n\nThe name of the hypervisor running on the device. For example, <code>Xen</code>, <code>VMware</code>, <code>Hyper-V</code>, <code>VirtualBox</code>, etc.\n\noptional"]
23381 #[serde(rename = "hypervisor")]
23382 #[serde(skip_serializing_if = "Option::is_none")]
23383 pub hypervisor: Option<String>,
23384 #[doc = "ICCID\n\nThe Integrated Circuit Card Identification of a mobile device. Typically it is a unique 18 to 22 digit number that identifies a SIM card.\n\noptional"]
23385 #[serde(rename = "iccid")]
23386 #[serde(skip_serializing_if = "Option::is_none")]
23387 pub iccid: Option<String>,
23388 #[doc = "Image\n\nThe image used as a template to run the virtual machine.\n\noptional"]
23389 #[serde(rename = "image")]
23390 #[serde(skip_serializing_if = "Option::is_none")]
23391 pub image: Option<Box<Image>>,
23392 #[doc = "IMEI\n\nThe International Mobile Equipment Identity that is associated with the device.\n\noptional"]
23393 #[serde(rename = "imei")]
23394 #[serde(skip_serializing_if = "Option::is_none")]
23395 pub imei: Option<String>,
23396 #[doc = "IMEI List\n\nThe International Mobile Equipment Identity values that are associated with the device.\n\noptional"]
23397 #[serde(rename = "imei_list")]
23398 #[serde(skip_serializing_if = "Option::is_none")]
23399 pub imei_list: Option<Vec<String>>,
23400 #[doc = "Instance ID\n\nThe unique identifier of a VM instance.\n\nrecommended"]
23401 #[serde(rename = "instance_uid")]
23402 #[serde(skip_serializing_if = "Option::is_none")]
23403 pub instance_uid: Option<String>,
23404 #[doc = "Network Interface Name\n\nThe name of the network interface (e.g. eth2).\n\nrecommended"]
23405 #[serde(rename = "interface_name")]
23406 #[serde(skip_serializing_if = "Option::is_none")]
23407 pub interface_name: Option<String>,
23408 #[doc = "Network Interface ID\n\nThe unique identifier of the network interface.\n\nrecommended"]
23409 #[serde(rename = "interface_uid")]
23410 #[serde(skip_serializing_if = "Option::is_none")]
23411 pub interface_uid: Option<String>,
23412 #[doc = "IP Address\n\nThe device IP address, in either IPv4 or IPv6 format.\n\noptional"]
23413 #[serde(rename = "ip")]
23414 #[serde(skip_serializing_if = "Option::is_none")]
23415 pub ip: Option<String>,
23416 #[doc = "Back Ups Configured\n\nIndicates whether the device or resource has a backup enabled, such as an automated snapshot or a cloud backup. For example, this is indicated by the <code>cloudBackupEnabled</code> value within JAMF Pro mobile devices or the registration of an AWS ARN with the AWS Backup service.\n\noptional"]
23417 #[serde(rename = "is_backed_up")]
23418 #[serde(skip_serializing_if = "Option::is_none")]
23419 pub is_backed_up: Option<bool>,
23420 #[doc = "Compliant Device\n\nThe event occurred on a compliant device.\n\noptional"]
23421 #[serde(rename = "is_compliant")]
23422 #[serde(skip_serializing_if = "Option::is_none")]
23423 pub is_compliant: Option<bool>,
23424 #[doc = "Managed Device\n\nThe event occurred on a managed device.\n\noptional"]
23425 #[serde(rename = "is_managed")]
23426 #[serde(skip_serializing_if = "Option::is_none")]
23427 pub is_managed: Option<bool>,
23428 #[doc = "Mobile Account Active\n\nIndicates whether the device has an active mobile account. For example, this is indicated by the <code>itunesStoreAccountActive</code> value within JAMF Pro mobile devices.\n\noptional"]
23429 #[serde(rename = "is_mobile_account_active")]
23430 #[serde(skip_serializing_if = "Option::is_none")]
23431 pub is_mobile_account_active: Option<bool>,
23432 #[doc = "Personal Device\n\nThe event occurred on a personal device.\n\noptional"]
23433 #[serde(rename = "is_personal")]
23434 #[serde(skip_serializing_if = "Option::is_none")]
23435 pub is_personal: Option<bool>,
23436 #[doc = "Shared Device\n\nThe event occurred on a shared device.\n\noptional"]
23437 #[serde(rename = "is_shared")]
23438 #[serde(skip_serializing_if = "Option::is_none")]
23439 pub is_shared: Option<bool>,
23440 #[doc = "Supervised Device\n\nThe event occurred on a supervised device. Devices that are supervised are typically mobile devices managed by a Mobile Device Management solution and are restricted from specific behaviors such as Apple AirDrop.\n\noptional"]
23441 #[serde(rename = "is_supervised")]
23442 #[serde(skip_serializing_if = "Option::is_none")]
23443 pub is_supervised: Option<bool>,
23444 #[doc = "Trusted Device\n\nThe event occurred on a trusted device.\n\noptional"]
23445 #[serde(rename = "is_trusted")]
23446 #[serde(skip_serializing_if = "Option::is_none")]
23447 pub is_trusted: Option<bool>,
23448 #[doc = "Last Seen\n\nThe most recent discovery time of the device.\n\noptional"]
23449 #[serde(rename = "last_seen_time")]
23450 #[serde(skip_serializing_if = "Option::is_none")]
23451 pub last_seen_time: Option<i64>,
23452 #[doc = "Last Seen\n\nThe most recent discovery time of the device.\n\noptional"]
23453 #[serde(rename = "last_seen_time_dt")]
23454 #[serde(skip_serializing_if = "Option::is_none")]
23455 pub last_seen_time_dt: Option<String>,
23456 #[doc = "Geo Location\n\nThe geographical location of the device.\n\noptional"]
23457 #[serde(rename = "location")]
23458 #[serde(skip_serializing_if = "Option::is_none")]
23459 pub location: Option<Box<Location>>,
23460 #[doc = "MAC Address\n\nThe Media Access Control (MAC) address of the endpoint.\n\noptional"]
23461 #[serde(rename = "mac")]
23462 #[serde(skip_serializing_if = "Option::is_none")]
23463 pub mac: Option<String>,
23464 #[doc = "MEID\n\nThe Mobile Equipment Identifier. It's a unique number that identifies a Code Division Multiple Access (CDMA) mobile device.\n\noptional"]
23465 #[serde(rename = "meid")]
23466 #[serde(skip_serializing_if = "Option::is_none")]
23467 pub meid: Option<String>,
23468 #[doc = "Model\n\nThe model of the device. For example <code>ThinkPad X1 Carbon</code>.\n\noptional"]
23469 #[serde(rename = "model")]
23470 #[serde(skip_serializing_if = "Option::is_none")]
23471 pub model: Option<String>,
23472 #[doc = "Modified Time\n\nThe time when the device was last known to have been modified.\n\noptional"]
23473 #[serde(rename = "modified_time")]
23474 #[serde(skip_serializing_if = "Option::is_none")]
23475 pub modified_time: Option<i64>,
23476 #[doc = "Modified Time\n\nThe time when the device was last known to have been modified.\n\noptional"]
23477 #[serde(rename = "modified_time_dt")]
23478 #[serde(skip_serializing_if = "Option::is_none")]
23479 pub modified_time_dt: Option<String>,
23480 #[doc = "Name\n\nThe alternate device name, ordinarily as assigned by an administrator. <p><b>Note:</b> The <b>Name</b> could be any other string that helps to identify the device, such as a phone number; for example <code>310-555-1234</code>.</p>\n\noptional"]
23481 #[serde(rename = "name")]
23482 #[serde(skip_serializing_if = "Option::is_none")]
23483 pub name: Option<String>,
23484 #[doc = "Namespace PID\n\nIf running under a process namespace (such as in a container), the process identifier within that process namespace.\n\nrecommended"]
23485 #[serde(rename = "namespace_pid")]
23486 #[serde(skip_serializing_if = "Option::is_none")]
23487 pub namespace_pid: Option<i64>,
23488 #[doc = "Network Interfaces\n\nThe physical or virtual network interfaces that are associated with the device, one for each unique MAC address/IP address/hostname/name combination.<p><b>Note:</b> The first element of the array is the network information that pertains to the event.</p>\n\noptional"]
23489 #[serde(rename = "network_interfaces")]
23490 #[serde(skip_serializing_if = "Option::is_none")]
23491 pub network_interfaces: Option<Vec<NetworkInterface>>,
23492 #[doc = "Organization\n\nOrganization and org unit related to the device.\n\noptional"]
23493 #[serde(rename = "org")]
23494 #[serde(skip_serializing_if = "Option::is_none")]
23495 pub org: Option<Box<Organization>>,
23496 #[doc = "OS\n\nThe endpoint operating system.\n\noptional"]
23497 #[serde(rename = "os")]
23498 #[serde(skip_serializing_if = "Option::is_none")]
23499 pub os: Option<Box<Os>>,
23500 #[doc = "OS Machine UUID\n\nThe operating system assigned Machine ID. In Windows, this is the value stored at the registry path: <code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid</code>. In Linux, this is stored in the file: <code>/etc/machine-id</code>.\n\noptional"]
23501 #[serde(rename = "os_machine_uuid")]
23502 #[serde(skip_serializing_if = "Option::is_none")]
23503 pub os_machine_uuid: Option<String>,
23504 #[doc = "Owner\n\nThe identity of the service or user account that owns the endpoint or was last logged into it.\n\nrecommended"]
23505 #[serde(rename = "owner")]
23506 #[serde(skip_serializing_if = "Option::is_none")]
23507 pub owner: Option<Box<User>>,
23508 #[doc = "Region\n\nThe region where the virtual machine is located. For example, an AWS Region.\n\nrecommended"]
23509 #[serde(rename = "region")]
23510 #[serde(skip_serializing_if = "Option::is_none")]
23511 pub region: Option<String>,
23512 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
23513 #[serde(rename = "risk_level")]
23514 #[serde(skip_serializing_if = "Option::is_none")]
23515 pub risk_level: Option<String>,
23516 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
23517 #[serde(rename = "risk_level_id")]
23518 #[serde(skip_serializing_if = "Option::is_none")]
23519 pub risk_level_id: Option<i64>,
23520 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
23521 #[serde(rename = "risk_score")]
23522 #[serde(skip_serializing_if = "Option::is_none")]
23523 pub risk_score: Option<i64>,
23524 #[doc = "Subnet\n\nThe subnet mask.\n\noptional"]
23525 #[serde(rename = "subnet")]
23526 #[serde(skip_serializing_if = "Option::is_none")]
23527 pub subnet: Option<String>,
23528 #[doc = "Subnet UID\n\nThe unique identifier of a virtual subnet.\n\noptional"]
23529 #[serde(rename = "subnet_uid")]
23530 #[serde(skip_serializing_if = "Option::is_none")]
23531 pub subnet_uid: Option<String>,
23532 #[doc = "Type\n\nThe device type. For example: <code>unknown</code>, <code>server</code>, <code>desktop</code>, <code>laptop</code>, <code>tablet</code>, <code>mobile</code>, <code>virtual</code>, <code>browser</code>, or <code>other</code>.\n\nrecommended"]
23533 #[serde(rename = "type")]
23534 #[serde(skip_serializing_if = "Option::is_none")]
23535 pub r#type: Option<String>,
23536 #[doc = "Type ID\n\nThe device type ID.\n\nrequired"]
23537 #[serde(rename = "type_id")]
23538 #[serde(skip_serializing_if = "Option::is_none")]
23539 pub type_id: Option<i64>,
23540 #[doc = "Unique Device Identifier\n\nThe Apple assigned Unique Device Identifier (UDID). For iOS, iPadOS, tvOS, watchOS and visionOS devices, this is the UDID. For macOS devices, it is the Provisioning UDID. For example: <code>00008020-008D4548007B4F26</code>\n\noptional"]
23541 #[serde(rename = "udid")]
23542 #[serde(skip_serializing_if = "Option::is_none")]
23543 pub udid: Option<String>,
23544 #[doc = "Unique ID\n\nThe unique identifier of the device. For example the Windows TargetSID or AWS EC2 ARN.\n\nrecommended"]
23545 #[serde(rename = "uid")]
23546 #[serde(skip_serializing_if = "Option::is_none")]
23547 pub uid: Option<String>,
23548 #[doc = "Alternate ID\n\nAn alternate unique identifier of the device if any. For example the ActiveDirectory DN.\n\noptional"]
23549 #[serde(rename = "uid_alt")]
23550 #[serde(skip_serializing_if = "Option::is_none")]
23551 pub uid_alt: Option<String>,
23552 #[doc = "Vendor Name\n\nThe vendor for the device. For example <code>Dell</code> or <code>Lenovo</code>.\n\nrecommended"]
23553 #[serde(rename = "vendor_name")]
23554 #[serde(skip_serializing_if = "Option::is_none")]
23555 pub vendor_name: Option<String>,
23556 #[doc = "VLAN\n\nThe Virtual LAN identifier.\n\noptional"]
23557 #[serde(rename = "vlan_uid")]
23558 #[serde(skip_serializing_if = "Option::is_none")]
23559 pub vlan_uid: Option<String>,
23560 #[doc = "VPC UID\n\nThe unique identifier of the Virtual Private Cloud (VPC).\n\noptional"]
23561 #[serde(rename = "vpc_uid")]
23562 #[serde(skip_serializing_if = "Option::is_none")]
23563 pub vpc_uid: Option<String>,
23564 #[doc = "Network Zone\n\nThe network zone or LAN segment.\n\noptional"]
23565 #[serde(rename = "zone")]
23566 #[serde(skip_serializing_if = "Option::is_none")]
23567 pub zone: Option<String>,
23568}
23569#[doc = "Device Hardware Info\n\nThe Device Hardware Information object contains details and specifications of the physical components that make up a device. This information provides an overview of the hardware capabilities, configuration, and characteristics of the device.\n\n[] Category: | Name: device_hw_info"]
23570#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23571#[serde(default)]
23572#[non_exhaustive]
23573pub struct DeviceHwInfo {
23574 #[doc = "BIOS Date\n\nThe BIOS date. For example: <code>03/31/16</code>.\n\noptional"]
23575 #[serde(rename = "bios_date")]
23576 #[serde(skip_serializing_if = "Option::is_none")]
23577 pub bios_date: Option<String>,
23578 #[doc = "BIOS Manufacturer\n\nThe BIOS manufacturer. For example: <code>LENOVO</code>.\n\noptional"]
23579 #[serde(rename = "bios_manufacturer")]
23580 #[serde(skip_serializing_if = "Option::is_none")]
23581 pub bios_manufacturer: Option<String>,
23582 #[doc = "BIOS Version\n\nThe BIOS version. For example: <code>LENOVO G5ETA2WW (2.62)</code>.\n\noptional"]
23583 #[serde(rename = "bios_ver")]
23584 #[serde(skip_serializing_if = "Option::is_none")]
23585 pub bios_ver: Option<String>,
23586 #[doc = "Chassis\n\nThe chassis type describes the system enclosure or physical form factor. Such as the following examples for Windows <a target='_blank' href='https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemenclosure'>Windows Chassis Types</a>\n\noptional"]
23587 #[serde(rename = "chassis")]
23588 #[serde(skip_serializing_if = "Option::is_none")]
23589 pub chassis: Option<String>,
23590 #[doc = "CPU Architecture\n\nThe CPU architecture, normalized to the caption of the <code>cpu_architecture_id</code> value. In the case of <code>Other</code>, it is defined by the source.\n\noptional"]
23591 #[serde(rename = "cpu_architecture")]
23592 #[serde(skip_serializing_if = "Option::is_none")]
23593 pub cpu_architecture: Option<String>,
23594 #[doc = "CPU Architecture ID\n\nThe normalized identifier of the CPU architecture.\n\noptional"]
23595 #[serde(rename = "cpu_architecture_id")]
23596 #[serde(skip_serializing_if = "Option::is_none")]
23597 pub cpu_architecture_id: Option<i64>,
23598 #[doc = "CPU Bits\n\nThe cpu architecture, the number of bits used for addressing in memory. For example: <code>32</code> or <code>64</code>.\n\noptional"]
23599 #[serde(rename = "cpu_bits")]
23600 #[serde(skip_serializing_if = "Option::is_none")]
23601 pub cpu_bits: Option<i64>,
23602 #[doc = "CPU Cores\n\nThe number of processor cores in all installed processors. For Example: <code>42</code>.\n\noptional"]
23603 #[serde(rename = "cpu_cores")]
23604 #[serde(skip_serializing_if = "Option::is_none")]
23605 pub cpu_cores: Option<i64>,
23606 #[doc = "CPU Count\n\nThe number of physical processors on a system. For example: <code>1</code>.\n\noptional"]
23607 #[serde(rename = "cpu_count")]
23608 #[serde(skip_serializing_if = "Option::is_none")]
23609 pub cpu_count: Option<i64>,
23610 #[doc = "Processor Speed\n\nThe speed of the processor in Mhz. For Example: <code>4200</code>.\n\noptional"]
23611 #[serde(rename = "cpu_speed")]
23612 #[serde(skip_serializing_if = "Option::is_none")]
23613 pub cpu_speed: Option<i64>,
23614 #[doc = "Processor Type\n\nThe processor type. For example: <code>x86 Family 6 Model 37 Stepping 5</code>.\n\noptional"]
23615 #[serde(rename = "cpu_type")]
23616 #[serde(skip_serializing_if = "Option::is_none")]
23617 pub cpu_type: Option<String>,
23618 #[doc = "Desktop Display\n\nThe desktop display affiliated with the event\n\noptional"]
23619 #[serde(rename = "desktop_display")]
23620 #[serde(skip_serializing_if = "Option::is_none")]
23621 pub desktop_display: Option<Box<Display>>,
23622 #[doc = "Keyboard Information\n\nThe keyboard detailed information.\n\noptional"]
23623 #[serde(rename = "keyboard_info")]
23624 #[serde(skip_serializing_if = "Option::is_none")]
23625 pub keyboard_info: Option<Box<KeyboardInfo>>,
23626 #[doc = "RAM Size\n\nThe total amount of installed RAM, in Megabytes. For example: <code>2048</code>.\n\noptional"]
23627 #[serde(rename = "ram_size")]
23628 #[serde(skip_serializing_if = "Option::is_none")]
23629 pub ram_size: Option<i64>,
23630 #[doc = "Serial Number\n\nThe device manufacturer serial number.\n\noptional"]
23631 #[serde(rename = "serial_number")]
23632 #[serde(skip_serializing_if = "Option::is_none")]
23633 pub serial_number: Option<String>,
23634 #[doc = "UUID\n\nThe device manufacturer assigned universally unique hardware identifier. For SMBIOS compatible devices such as those running Linux and Windows, it is the UUID member of the System Information structure in the SMBIOS information. For macOS devices, it is the Hardware UUID (also known as IOPlatformUUID in the I/O Registry).\n\noptional"]
23635 #[serde(rename = "uuid")]
23636 #[serde(skip_serializing_if = "Option::is_none")]
23637 pub uuid: Option<String>,
23638 #[doc = "Vendor Name\n\nThe device manufacturer.\n\noptional"]
23639 #[serde(rename = "vendor_name")]
23640 #[serde(skip_serializing_if = "Option::is_none")]
23641 pub vendor_name: Option<String>,
23642}
23643#[doc = "Digital Signature\n\nThe Digital Signature object contains information about the cryptographic mechanism used to verify the authenticity, integrity, and origin of the file or application.\n\n[] Category: | Name: digital_signature"]
23644#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23645#[serde(default)]
23646#[non_exhaustive]
23647pub struct DigitalSignature {
23648 #[doc = "Algorithm\n\nThe digital signature algorithm used to create the signature, normalized to the caption of 'algorithm_id'. In the case of 'Other', it is defined by the event source.\n\noptional"]
23649 #[serde(rename = "algorithm")]
23650 #[serde(skip_serializing_if = "Option::is_none")]
23651 pub algorithm: Option<String>,
23652 #[doc = "Algorithm ID\n\nThe identifier of the normalized digital signature algorithm.\n\nrequired"]
23653 #[serde(rename = "algorithm_id")]
23654 #[serde(skip_serializing_if = "Option::is_none")]
23655 pub algorithm_id: Option<i64>,
23656 #[doc = "Certificate\n\nThe certificate object containing information about the digital certificate.\n\nrecommended"]
23657 #[serde(rename = "certificate")]
23658 #[serde(skip_serializing_if = "Option::is_none")]
23659 pub certificate: Option<Box<Certificate>>,
23660 #[doc = "Created Time\n\nThe time when the digital signature was created.\n\noptional"]
23661 #[serde(rename = "created_time")]
23662 #[serde(skip_serializing_if = "Option::is_none")]
23663 pub created_time: Option<i64>,
23664 #[doc = "Created Time\n\nThe time when the digital signature was created.\n\noptional"]
23665 #[serde(rename = "created_time_dt")]
23666 #[serde(skip_serializing_if = "Option::is_none")]
23667 pub created_time_dt: Option<String>,
23668 #[doc = "Developer UID\n\nThe developer ID on the certificate that signed the file.\n\noptional"]
23669 #[serde(rename = "developer_uid")]
23670 #[serde(skip_serializing_if = "Option::is_none")]
23671 pub developer_uid: Option<String>,
23672 #[doc = "Message Digest\n\nThe message digest attribute contains the fixed length message hash representation and the corresponding hashing algorithm information.\n\noptional"]
23673 #[serde(rename = "digest")]
23674 #[serde(skip_serializing_if = "Option::is_none")]
23675 pub digest: Option<Box<Fingerprint>>,
23676 #[doc = "State\n\nThe digital signature state defines the signature state, normalized to the caption of 'state_id'. In the case of 'Other', it is defined by the event source.\n\noptional"]
23677 #[serde(rename = "state")]
23678 #[serde(skip_serializing_if = "Option::is_none")]
23679 pub state: Option<String>,
23680 #[doc = "State ID\n\nThe normalized identifier of the signature state.\n\noptional"]
23681 #[serde(rename = "state_id")]
23682 #[serde(skip_serializing_if = "Option::is_none")]
23683 pub state_id: Option<i64>,
23684}
23685#[doc = "Discovery Details\n\nThe Discovery Details object describes results of a discovery task/job.\n\n[] Category: | Name: discovery_details"]
23686#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23687#[serde(default)]
23688#[non_exhaustive]
23689pub struct DiscoveryDetails {
23690 #[doc = "Count\n\nThe number of discovered entities of the specified type.\n\nrecommended"]
23691 #[serde(rename = "count")]
23692 #[serde(skip_serializing_if = "Option::is_none")]
23693 pub count: Option<i64>,
23694 #[doc = "Occurrence Details\n\nDetails about where in the target entity, specified information was discovered. Only the attributes, relevant to the target entity type should be populated.\n\noptional"]
23695 #[serde(rename = "occurrence_details")]
23696 #[serde(skip_serializing_if = "Option::is_none")]
23697 pub occurrence_details: Option<Box<OccurrenceDetails>>,
23698 #[doc = "Occurrences\n\nDetails about where in the target entity, specified information was discovered. Only the attributes, relevant to the target entity type should be populated.\n\noptional"]
23699 #[serde(rename = "occurrences")]
23700 #[serde(skip_serializing_if = "Option::is_none")]
23701 pub occurrences: Option<Vec<OccurrenceDetails>>,
23702 #[doc = "Type\n\nThe specific type of information that was discovered. e.g.<code> name, phone_number, etc.</code>\n\nrecommended"]
23703 #[serde(rename = "type")]
23704 #[serde(skip_serializing_if = "Option::is_none")]
23705 pub r#type: Option<String>,
23706 #[doc = "Value\n\nOptionally, the specific value of discovered information.\n\noptional"]
23707 #[serde(rename = "value")]
23708 #[serde(skip_serializing_if = "Option::is_none")]
23709 pub value: Option<String>,
23710}
23711#[doc = "Display\n\nThe Display object contains information about the physical or virtual display connected to a computer system.\n\n[] Category: | Name: display"]
23712#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23713#[serde(default)]
23714#[non_exhaustive]
23715pub struct Display {
23716 #[doc = "Color Depth\n\nThe numeric color depth.\n\noptional"]
23717 #[serde(rename = "color_depth")]
23718 #[serde(skip_serializing_if = "Option::is_none")]
23719 pub color_depth: Option<i64>,
23720 #[doc = "Physical Height\n\nThe numeric physical height of display.\n\noptional"]
23721 #[serde(rename = "physical_height")]
23722 #[serde(skip_serializing_if = "Option::is_none")]
23723 pub physical_height: Option<i64>,
23724 #[doc = "Physical Orientation\n\nThe numeric physical orientation of display.\n\noptional"]
23725 #[serde(rename = "physical_orientation")]
23726 #[serde(skip_serializing_if = "Option::is_none")]
23727 pub physical_orientation: Option<i64>,
23728 #[doc = "Physical Width\n\nThe numeric physical width of display.\n\noptional"]
23729 #[serde(rename = "physical_width")]
23730 #[serde(skip_serializing_if = "Option::is_none")]
23731 pub physical_width: Option<i64>,
23732 #[doc = "Scale Factor\n\nThe numeric scale factor of display.\n\noptional"]
23733 #[serde(rename = "scale_factor")]
23734 #[serde(skip_serializing_if = "Option::is_none")]
23735 pub scale_factor: Option<i64>,
23736}
23737#[doc = "DNS Answer\n\nThe DNS Answer object represents a specific response provided by the Domain Name System (DNS) when querying for information about a domain or performing a DNS operation. It encapsulates the relevant details and data returned by the DNS server in response to a query.\n\n[] Category: | Name: dns_answer"]
23738#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23739#[serde(default)]
23740#[non_exhaustive]
23741pub struct DnsAnswer {
23742 #[doc = "Resource Record Class\n\nThe class of DNS data contained in this resource record. See <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc1035.txt'>RFC1035</a>. For example: <code>IN</code>.\n\nrecommended"]
23743 #[serde(rename = "class")]
23744 #[serde(skip_serializing_if = "Option::is_none")]
23745 pub class: Option<String>,
23746 #[doc = "DNS Header Flags\n\nThe list of DNS answer header flag IDs.\n\nrecommended"]
23747 #[serde(rename = "flag_ids")]
23748 #[serde(skip_serializing_if = "Option::is_none")]
23749 pub flag_ids: Option<Vec<i64>>,
23750 #[doc = "DNS Header Flags\n\nThe list of DNS answer header flags.\n\noptional"]
23751 #[serde(rename = "flags")]
23752 #[serde(skip_serializing_if = "Option::is_none")]
23753 pub flags: Option<Vec<String>>,
23754 #[doc = "Packet UID\n\nThe DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response.\n\nrecommended"]
23755 #[serde(rename = "packet_uid")]
23756 #[serde(skip_serializing_if = "Option::is_none")]
23757 pub packet_uid: Option<i64>,
23758 #[doc = "DNS RData\n\nThe data describing the DNS resource. The meaning of this data depends on the type and class of the resource record.\n\nrequired"]
23759 #[serde(rename = "rdata")]
23760 #[serde(skip_serializing_if = "Option::is_none")]
23761 pub rdata: Option<String>,
23762 #[doc = "TTL\n\nThe time interval that the resource record may be cached. Zero value means that the resource record can only be used for the transaction in progress, and should not be cached.\n\nrecommended"]
23763 #[serde(rename = "ttl")]
23764 #[serde(skip_serializing_if = "Option::is_none")]
23765 pub ttl: Option<i64>,
23766 #[doc = "Resource Record Type\n\nThe type of data contained in this resource record. See <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc1035.txt'>RFC1035</a>. For example: <code>CNAME</code>.\n\nrecommended"]
23767 #[serde(rename = "type")]
23768 #[serde(skip_serializing_if = "Option::is_none")]
23769 pub r#type: Option<String>,
23770}
23771#[doc = "DNS Query\n\nThe DNS query object represents a specific request made to the Domain Name System (DNS) to retrieve information about a domain or perform a DNS operation. This object encapsulates the necessary attributes and methods to construct and send DNS queries, specify the query type (e.g., A, AAAA, MX).\n\n[] Category: | Name: dns_query"]
23772#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23773#[serde(default)]
23774#[non_exhaustive]
23775pub struct DnsQuery {
23776 #[doc = "Resource Record Class\n\nThe class of resource records being queried. See <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc1035.txt'>RFC1035</a>. For example: <code>IN</code>.\n\nrecommended"]
23777 #[serde(rename = "class")]
23778 #[serde(skip_serializing_if = "Option::is_none")]
23779 pub class: Option<String>,
23780 #[doc = "Hostname\n\nThe hostname or domain being queried. For example: <code>www.example.com</code>\n\nrequired"]
23781 #[serde(rename = "hostname")]
23782 #[serde(skip_serializing_if = "Option::is_none")]
23783 pub hostname: Option<String>,
23784 #[doc = "DNS Opcode\n\nThe DNS opcode specifies the type of the query message.\n\noptional"]
23785 #[serde(rename = "opcode")]
23786 #[serde(skip_serializing_if = "Option::is_none")]
23787 pub opcode: Option<String>,
23788 #[doc = "DNS Opcode ID\n\nThe DNS opcode ID specifies the normalized query message type as defined in <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc5395.html'>RFC-5395</a>.\n\nrecommended"]
23789 #[serde(rename = "opcode_id")]
23790 #[serde(skip_serializing_if = "Option::is_none")]
23791 pub opcode_id: Option<i64>,
23792 #[doc = "Packet UID\n\nThe DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response.\n\nrecommended"]
23793 #[serde(rename = "packet_uid")]
23794 #[serde(skip_serializing_if = "Option::is_none")]
23795 pub packet_uid: Option<i64>,
23796 #[doc = "Resource Record Type\n\nThe type of resource records being queried. See <a target='_blank' href='https://www.rfc-editor.org/rfc/rfc1035.txt'>RFC1035</a>. For example: A, AAAA, CNAME, MX, and NS.\n\nrecommended"]
23797 #[serde(rename = "type")]
23798 #[serde(skip_serializing_if = "Option::is_none")]
23799 pub r#type: Option<String>,
23800}
23801#[doc = "Domain Contact\n\nThe contact information related to a domain registration, e.g., registrant, administrator, abuse, billing, or technical contact.\n\n[] Category: | Name: domain_contact"]
23802#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23803#[serde(default)]
23804#[non_exhaustive]
23805pub struct DomainContact {
23806 #[doc = "Contact Email\n\nThe user's primary email address.\n\nrecommended"]
23807 #[serde(rename = "email_addr")]
23808 #[serde(skip_serializing_if = "Option::is_none")]
23809 pub email_addr: Option<String>,
23810 #[doc = "Contact Location Information\n\nLocation details for the contract such as the city, state/province, country, etc.\n\nrecommended"]
23811 #[serde(rename = "location")]
23812 #[serde(skip_serializing_if = "Option::is_none")]
23813 pub location: Option<Box<Location>>,
23814 #[doc = "Name\n\nThe individual or organization name for the contact.\n\noptional"]
23815 #[serde(rename = "name")]
23816 #[serde(skip_serializing_if = "Option::is_none")]
23817 pub name: Option<String>,
23818 #[doc = "Phone Number\n\nThe number associated with the phone.\n\noptional"]
23819 #[serde(rename = "phone_number")]
23820 #[serde(skip_serializing_if = "Option::is_none")]
23821 pub phone_number: Option<String>,
23822 #[doc = "Domain Contact Type\n\nThe Domain Contact type, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source\n\noptional"]
23823 #[serde(rename = "type")]
23824 #[serde(skip_serializing_if = "Option::is_none")]
23825 pub r#type: Option<String>,
23826 #[doc = "Domain Contact Type ID\n\nThe normalized domain contact type ID.\n\nrequired"]
23827 #[serde(rename = "type_id")]
23828 #[serde(skip_serializing_if = "Option::is_none")]
23829 pub type_id: Option<i64>,
23830 #[doc = "Unique ID\n\nThe unique identifier of the contact information, typically provided in WHOIS information.\n\noptional"]
23831 #[serde(rename = "uid")]
23832 #[serde(skip_serializing_if = "Option::is_none")]
23833 pub uid: Option<String>,
23834}
23835#[doc = "Edge\n\nRepresents a connection or relationship between two nodes in a graph.\n\n[] Category: | Name: edge\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
23836#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23837#[serde(default)]
23838#[non_exhaustive]
23839pub struct Edge {
23840 #[doc = "Data\n\nAdditional data about the edge such as weight, distance, or custom properties.\n\noptional"]
23841 #[serde(rename = "data")]
23842 #[serde(skip_serializing_if = "Option::is_none")]
23843 pub data: Option<serde_json::Value>,
23844 #[doc = "Directed\n\nIndicates whether the edge is (<code>true</code>) or undirected (<code>false</code>).\n\noptional"]
23845 #[serde(rename = "is_directed")]
23846 #[serde(skip_serializing_if = "Option::is_none")]
23847 pub is_directed: Option<bool>,
23848 #[doc = "Name\n\nThe human-readable name or label for the edge.\n\nrecommended"]
23849 #[serde(rename = "name")]
23850 #[serde(skip_serializing_if = "Option::is_none")]
23851 pub name: Option<String>,
23852 #[doc = "Relation\n\nThe type of relationship between nodes (e.g. is-attached-to , depends-on, etc).\n\nrecommended"]
23853 #[serde(rename = "relation")]
23854 #[serde(skip_serializing_if = "Option::is_none")]
23855 pub relation: Option<String>,
23856 #[doc = "Source\n\nThe unique identifier of the node where the edge originates.\n\nrequired"]
23857 #[serde(rename = "source")]
23858 #[serde(skip_serializing_if = "Option::is_none")]
23859 pub source: Option<String>,
23860 #[doc = "Target\n\nThe unique identifier of the node where the edge terminates.\n\nrequired"]
23861 #[serde(rename = "target")]
23862 #[serde(skip_serializing_if = "Option::is_none")]
23863 pub target: Option<String>,
23864 #[doc = "Unique ID\n\nUnique identifier of the edge.\n\nrecommended"]
23865 #[serde(rename = "uid")]
23866 #[serde(skip_serializing_if = "Option::is_none")]
23867 pub uid: Option<String>,
23868}
23869#[doc = "Email\n\nThe Email object describes the email metadata such as sender, recipients, and direction, and can include embedded URLs and files.\n\n[] Category: | Name: email\n\n**Constraints:**\n* at_least_one: `[from`,`to]`\n"]
23870#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23871#[serde(default)]
23872#[non_exhaustive]
23873pub struct Email {
23874 #[doc = "Cc\n\nThe machine-readable email header Cc values, as defined by RFC 5322. For example <code>example.user@usersdomain.com</code>.\n\noptional"]
23875 #[serde(rename = "cc")]
23876 #[serde(skip_serializing_if = "Option::is_none")]
23877 pub cc: Option<Vec<String>>,
23878 #[doc = "Cc Mailboxes\n\nThe human-readable email header Cc Mailbox values. For example <code>'Example User <example.user@usersdomain.com>'</code>.\n\noptional"]
23879 #[serde(rename = "cc_mailboxes")]
23880 #[serde(skip_serializing_if = "Option::is_none")]
23881 pub cc_mailboxes: Option<Vec<String>>,
23882 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
23883 #[serde(rename = "data_classification")]
23884 #[serde(skip_serializing_if = "Option::is_none")]
23885 pub data_classification: Option<Box<DataClassification>>,
23886 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
23887 #[serde(rename = "data_classifications")]
23888 #[serde(skip_serializing_if = "Option::is_none")]
23889 pub data_classifications: Option<Vec<DataClassification>>,
23890 #[doc = "Delivered To\n\nThe machine-readable <strong>Delivered-To</strong> email header field. For example <code>example.user@usersdomain.com</code>\n\noptional"]
23891 #[serde(rename = "delivered_to")]
23892 #[serde(skip_serializing_if = "Option::is_none")]
23893 pub delivered_to: Option<String>,
23894 #[doc = "Delivered To List\n\nThe machine-readable <strong>Delivered-To</strong> email header values. For example <code>example.user@usersdomain.com</code>\n\noptional"]
23895 #[serde(rename = "delivered_to_list")]
23896 #[serde(skip_serializing_if = "Option::is_none")]
23897 pub delivered_to_list: Option<Vec<String>>,
23898 #[doc = "Files\n\nThe files embedded or attached to the email.\n\noptional"]
23899 #[serde(rename = "files")]
23900 #[serde(skip_serializing_if = "Option::is_none")]
23901 pub files: Option<Vec<File>>,
23902 #[doc = "From\n\nThe machine-readable email header From value, as defined by RFC 5322. For example <code>example.user@usersdomain.com</code>.\n\nrecommended"]
23903 #[serde(rename = "from")]
23904 #[serde(skip_serializing_if = "Option::is_none")]
23905 pub from: Option<String>,
23906 #[doc = "From List\n\nThe machine-readable email header From values. This array should contain the value in <code>from</code>. For example <code>example.user@usersdomain.com</code>.\n\noptional"]
23907 #[serde(rename = "from_list")]
23908 #[serde(skip_serializing_if = "Option::is_none")]
23909 pub from_list: Option<Vec<String>>,
23910 #[doc = "From Mailbox\n\nThe human-readable email header From Mailbox value. For example <code>'Example User <example.user@usersdomain.com>'</code>.\n\noptional"]
23911 #[serde(rename = "from_mailbox")]
23912 #[serde(skip_serializing_if = "Option::is_none")]
23913 pub from_mailbox: Option<String>,
23914 #[doc = "From Mailboxes\n\nThe human-readable email header From Mailbox values. This array should contain the value in <code>from_mailbox</code>. For example <code>'Example User <example.user@usersdomain.com>'</code>.\n\noptional"]
23915 #[serde(rename = "from_mailboxes")]
23916 #[serde(skip_serializing_if = "Option::is_none")]
23917 pub from_mailboxes: Option<Vec<String>>,
23918 #[doc = "HTTP Headers\n\nAdditional HTTP headers of an HTTP request or response.\n\noptional"]
23919 #[serde(rename = "http_headers")]
23920 #[serde(skip_serializing_if = "Option::is_none")]
23921 pub http_headers: Option<Vec<HttpHeader>>,
23922 #[doc = "Read\n\nThe indication of whether the email has been read.\n\noptional"]
23923 #[serde(rename = "is_read")]
23924 #[serde(skip_serializing_if = "Option::is_none")]
23925 pub is_read: Option<bool>,
23926 #[doc = "Message UID\n\nThe email header Message-ID value, as defined by RFC 5322.\n\nrecommended"]
23927 #[serde(rename = "message_uid")]
23928 #[serde(skip_serializing_if = "Option::is_none")]
23929 pub message_uid: Option<String>,
23930 #[doc = "Raw Header\n\nThe email authentication header.\n\noptional"]
23931 #[serde(rename = "raw_header")]
23932 #[serde(skip_serializing_if = "Option::is_none")]
23933 pub raw_header: Option<String>,
23934 #[doc = "Reply To\n\nThe machine-readable email header Reply-To value, as defined by RFC 5322. For example <code>example.user@usersdomain.com</code>\n\nrecommended"]
23935 #[serde(rename = "reply_to")]
23936 #[serde(skip_serializing_if = "Option::is_none")]
23937 pub reply_to: Option<String>,
23938 #[doc = "Reply To List\n\nThe machine-readable email header Reply-To values, as defined by RFC 5322. For example <code>example.user@usersdomain.com</code>\n\noptional"]
23939 #[serde(rename = "reply_to_list")]
23940 #[serde(skip_serializing_if = "Option::is_none")]
23941 pub reply_to_list: Option<Vec<String>>,
23942 #[doc = "Reply To Mailboxes\n\nThe human-readable email header Reply To Mailbox values. For example <code>'Example User <example.user@usersdomain.com>'</code>.\n\noptional"]
23943 #[serde(rename = "reply_to_mailboxes")]
23944 #[serde(skip_serializing_if = "Option::is_none")]
23945 pub reply_to_mailboxes: Option<Vec<String>>,
23946 #[doc = "Return Path\n\nThe address found in the 'Return-Path' header, which indicates where bounce messages (non-delivery reports) should be sent. This address is often set by the sending system and may differ from the 'From' or 'Sender' addresses. For example, <code>mailer-daemon@senderserver.com</code>.\n\noptional"]
23947 #[serde(rename = "return_path")]
23948 #[serde(skip_serializing_if = "Option::is_none")]
23949 pub return_path: Option<String>,
23950 #[doc = "Sender\n\nThe machine readable email address of the system or server that actually transmitted the email message, extracted from the email headers per RFC 5322. This differs from the <code>from</code> field, which shows the message author. The sender field is most commonly used when multiple addresses appear in the <code> from_list </code> field, or when the transmitting system is different from the message author (such as when sending on behalf of someone else).\n\noptional"]
23951 #[serde(rename = "sender")]
23952 #[serde(skip_serializing_if = "Option::is_none")]
23953 pub sender: Option<String>,
23954 #[doc = "Sender Mailbox\n\nThe human readable email address of the system or server that actually transmitted the email message, extracted from the email headers per RFC 5322. This differs from the <code>from_mailbox</code> field, which shows the message author. The sender mailbox field is most commonly used when multiple addresses appear in the <code> from_mailboxes </code> field, or when the transmitting system is different from the message author (such as when sending on behalf of someone else).\n\noptional"]
23955 #[serde(rename = "sender_mailbox")]
23956 #[serde(skip_serializing_if = "Option::is_none")]
23957 pub sender_mailbox: Option<String>,
23958 #[doc = "Size\n\nThe size in bytes of the email, including attachments.\n\nrecommended"]
23959 #[serde(rename = "size")]
23960 #[serde(skip_serializing_if = "Option::is_none")]
23961 pub size: Option<i64>,
23962 #[doc = "SMTP From\n\nThe value of the SMTP MAIL FROM command.\n\nrecommended"]
23963 #[serde(rename = "smtp_from")]
23964 #[serde(skip_serializing_if = "Option::is_none")]
23965 pub smtp_from: Option<String>,
23966 #[doc = "SMTP To\n\nThe value of the SMTP envelope RCPT TO command.\n\nrecommended"]
23967 #[serde(rename = "smtp_to")]
23968 #[serde(skip_serializing_if = "Option::is_none")]
23969 pub smtp_to: Option<Vec<String>>,
23970 #[doc = "Subject\n\nThe email header Subject value, as defined by RFC 5322.\n\nrecommended"]
23971 #[serde(rename = "subject")]
23972 #[serde(skip_serializing_if = "Option::is_none")]
23973 pub subject: Option<String>,
23974 #[doc = "To\n\nThe machine-readable email header To values, as defined by RFC 5322. For example <code>example.user@usersdomain.com</code>\n\nrecommended"]
23975 #[serde(rename = "to")]
23976 #[serde(skip_serializing_if = "Option::is_none")]
23977 pub to: Option<Vec<String>>,
23978 #[doc = "To Mailboxes\n\nThe human-readable email header To Mailbox values. For example <code>'Example User <example.user@usersdomain.com>'</code>.\n\noptional"]
23979 #[serde(rename = "to_mailboxes")]
23980 #[serde(skip_serializing_if = "Option::is_none")]
23981 pub to_mailboxes: Option<Vec<String>>,
23982 #[doc = "Email Thread UID\n\nThe unique identifier of the email thread.\n\nrecommended"]
23983 #[serde(rename = "uid")]
23984 #[serde(skip_serializing_if = "Option::is_none")]
23985 pub uid: Option<String>,
23986 #[doc = "URLs\n\nThe URLs embedded in the email.\n\noptional"]
23987 #[serde(rename = "urls")]
23988 #[serde(skip_serializing_if = "Option::is_none")]
23989 pub urls: Option<Vec<Url>>,
23990 #[doc = "X-Originating-IP\n\nThe X-Originating-IP header identifying the emails originating IP address(es).\n\noptional"]
23991 #[serde(rename = "x_originating_ip")]
23992 #[serde(skip_serializing_if = "Option::is_none")]
23993 pub x_originating_ip: Option<Vec<String>>,
23994}
23995#[doc = "Email Authentication\n\nThe Email Authentication object describes the Sender Policy Framework (SPF), DomainKeys Identified Mail (DKIM) and Domain-based Message Authentication, Reporting and Conformance (DMARC) attributes of an email.\n\n[] Category: | Name: email_auth"]
23996#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
23997#[serde(default)]
23998#[non_exhaustive]
23999pub struct EmailAuth {
24000 #[doc = "DKIM Status\n\nThe DomainKeys Identified Mail (DKIM) status of the email.\n\nrecommended"]
24001 #[serde(rename = "dkim")]
24002 #[serde(skip_serializing_if = "Option::is_none")]
24003 pub dkim: Option<String>,
24004 #[doc = "DKIM Domain\n\nThe DomainKeys Identified Mail (DKIM) signing domain of the email.\n\nrecommended"]
24005 #[serde(rename = "dkim_domain")]
24006 #[serde(skip_serializing_if = "Option::is_none")]
24007 pub dkim_domain: Option<String>,
24008 #[doc = "DKIM Signature\n\nThe DomainKeys Identified Mail (DKIM) signature used by the sending/receiving system.\n\nrecommended"]
24009 #[serde(rename = "dkim_signature")]
24010 #[serde(skip_serializing_if = "Option::is_none")]
24011 pub dkim_signature: Option<String>,
24012 #[doc = "DMARC Status\n\nThe Domain-based Message Authentication, Reporting and Conformance (DMARC) status of the email.\n\nrecommended"]
24013 #[serde(rename = "dmarc")]
24014 #[serde(skip_serializing_if = "Option::is_none")]
24015 pub dmarc: Option<String>,
24016 #[doc = "DMARC Override\n\nThe Domain-based Message Authentication, Reporting and Conformance (DMARC) override action.\n\nrecommended"]
24017 #[serde(rename = "dmarc_override")]
24018 #[serde(skip_serializing_if = "Option::is_none")]
24019 pub dmarc_override: Option<String>,
24020 #[doc = "DMARC Policy\n\nThe Domain-based Message Authentication, Reporting and Conformance (DMARC) policy status.\n\nrecommended"]
24021 #[serde(rename = "dmarc_policy")]
24022 #[serde(skip_serializing_if = "Option::is_none")]
24023 pub dmarc_policy: Option<String>,
24024 #[doc = "SPF Status\n\nThe Sender Policy Framework (SPF) status of the email.\n\nrecommended"]
24025 #[serde(rename = "spf")]
24026 #[serde(skip_serializing_if = "Option::is_none")]
24027 pub spf: Option<String>,
24028}
24029#[doc = "Encryption Details\n\nDetails about the encryption methodology utilized.\n\n[] Category: | Name: encryption_details"]
24030#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24031#[serde(default)]
24032#[non_exhaustive]
24033pub struct EncryptionDetails {
24034 #[doc = "Encryption Algorithm\n\nThe encryption algorithm used, normalized to the caption of 'algorithm_id\n\noptional"]
24035 #[serde(rename = "algorithm")]
24036 #[serde(skip_serializing_if = "Option::is_none")]
24037 pub algorithm: Option<String>,
24038 #[doc = "Encryption Algorithm ID\n\nThe encryption algorithm used.\n\nrecommended"]
24039 #[serde(rename = "algorithm_id")]
24040 #[serde(skip_serializing_if = "Option::is_none")]
24041 pub algorithm_id: Option<i64>,
24042 #[doc = "Encryption Key Length\n\nThe length of the encryption key used.\n\noptional"]
24043 #[serde(rename = "key_length")]
24044 #[serde(skip_serializing_if = "Option::is_none")]
24045 pub key_length: Option<i64>,
24046 #[doc = "Key UID\n\nThe unique identifier of the key used for encryption. For example, AWS KMS Key ARN.\n\noptional"]
24047 #[serde(rename = "key_uid")]
24048 #[serde(skip_serializing_if = "Option::is_none")]
24049 pub key_uid: Option<String>,
24050 #[doc = "Encryption Type\n\nThe type of the encryption used.\n\nrecommended"]
24051 #[serde(rename = "type")]
24052 #[serde(skip_serializing_if = "Option::is_none")]
24053 pub r#type: Option<String>,
24054}
24055#[doc = "Endpoint\n\nThe Endpoint object describes a physical or virtual device that connects to and exchanges information with a computer network. Some examples of endpoints are mobile devices, desktop computers, virtual machines, embedded devices, and servers. Internet-of-Things devices—like cameras, lighting, refrigerators, security systems, smart speakers, and thermostats—are also endpoints.\n\n[] Category: | Name: endpoint\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24056#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24057#[serde(default)]
24058#[non_exhaustive]
24059pub struct Endpoint {
24060 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
24061 #[serde(rename = "agent_list")]
24062 #[serde(skip_serializing_if = "Option::is_none")]
24063 pub agent_list: Option<Vec<Agent>>,
24064 #[doc = "Container\n\nThe information describing an instance of a container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\nrecommended"]
24065 #[serde(rename = "container")]
24066 #[serde(skip_serializing_if = "Option::is_none")]
24067 pub container: Option<Box<Container>>,
24068 #[doc = "Domain\n\nThe name of the domain that the endpoint belongs to or that corresponds to the endpoint.\n\noptional"]
24069 #[serde(rename = "domain")]
24070 #[serde(skip_serializing_if = "Option::is_none")]
24071 pub domain: Option<String>,
24072 #[doc = "Hostname\n\nThe fully qualified name of the endpoint.\n\nrecommended"]
24073 #[serde(rename = "hostname")]
24074 #[serde(skip_serializing_if = "Option::is_none")]
24075 pub hostname: Option<String>,
24076 #[doc = "Hardware Info\n\nThe endpoint hardware information.\n\noptional"]
24077 #[serde(rename = "hw_info")]
24078 #[serde(skip_serializing_if = "Option::is_none")]
24079 pub hw_info: Option<Box<DeviceHwInfo>>,
24080 #[doc = "Instance ID\n\nThe unique identifier of a VM instance.\n\nrecommended"]
24081 #[serde(rename = "instance_uid")]
24082 #[serde(skip_serializing_if = "Option::is_none")]
24083 pub instance_uid: Option<String>,
24084 #[doc = "Network Interface Name\n\nThe name of the network interface (e.g. eth2).\n\nrecommended"]
24085 #[serde(rename = "interface_name")]
24086 #[serde(skip_serializing_if = "Option::is_none")]
24087 pub interface_name: Option<String>,
24088 #[doc = "Network Interface ID\n\nThe unique identifier of the network interface.\n\nrecommended"]
24089 #[serde(rename = "interface_uid")]
24090 #[serde(skip_serializing_if = "Option::is_none")]
24091 pub interface_uid: Option<String>,
24092 #[doc = "IP Address\n\nThe IP address of the endpoint, in either IPv4 or IPv6 format.\n\nrecommended"]
24093 #[serde(rename = "ip")]
24094 #[serde(skip_serializing_if = "Option::is_none")]
24095 pub ip: Option<String>,
24096 #[doc = "Geo Location\n\nThe geographical location of the endpoint.\n\noptional"]
24097 #[serde(rename = "location")]
24098 #[serde(skip_serializing_if = "Option::is_none")]
24099 pub location: Option<Box<Location>>,
24100 #[doc = "MAC Address\n\nThe Media Access Control (MAC) address of the endpoint.\n\noptional"]
24101 #[serde(rename = "mac")]
24102 #[serde(skip_serializing_if = "Option::is_none")]
24103 pub mac: Option<String>,
24104 #[doc = "Name\n\nThe short name of the endpoint.\n\nrecommended"]
24105 #[serde(rename = "name")]
24106 #[serde(skip_serializing_if = "Option::is_none")]
24107 pub name: Option<String>,
24108 #[doc = "Namespace PID\n\nIf running under a process namespace (such as in a container), the process identifier within that process namespace.\n\nrecommended"]
24109 #[serde(rename = "namespace_pid")]
24110 #[serde(skip_serializing_if = "Option::is_none")]
24111 pub namespace_pid: Option<i64>,
24112 #[doc = "OS\n\nThe endpoint operating system.\n\noptional"]
24113 #[serde(rename = "os")]
24114 #[serde(skip_serializing_if = "Option::is_none")]
24115 pub os: Option<Box<Os>>,
24116 #[doc = "Owner\n\nThe identity of the service or user account that owns the endpoint or was last logged into it.\n\nrecommended"]
24117 #[serde(rename = "owner")]
24118 #[serde(skip_serializing_if = "Option::is_none")]
24119 pub owner: Option<Box<User>>,
24120 #[doc = "Subnet UID\n\nThe unique identifier of a virtual subnet.\n\noptional"]
24121 #[serde(rename = "subnet_uid")]
24122 #[serde(skip_serializing_if = "Option::is_none")]
24123 pub subnet_uid: Option<String>,
24124 #[doc = "Type\n\nThe endpoint type. For example: <code>unknown</code>, <code>server</code>, <code>desktop</code>, <code>laptop</code>, <code>tablet</code>, <code>mobile</code>, <code>virtual</code>, <code>browser</code>, or <code>other</code>.\n\noptional"]
24125 #[serde(rename = "type")]
24126 #[serde(skip_serializing_if = "Option::is_none")]
24127 pub r#type: Option<String>,
24128 #[doc = "Type ID\n\nThe endpoint type ID.\n\nrecommended"]
24129 #[serde(rename = "type_id")]
24130 #[serde(skip_serializing_if = "Option::is_none")]
24131 pub type_id: Option<i64>,
24132 #[doc = "Unique ID\n\nThe unique identifier of the endpoint.\n\nrecommended"]
24133 #[serde(rename = "uid")]
24134 #[serde(skip_serializing_if = "Option::is_none")]
24135 pub uid: Option<String>,
24136 #[doc = "VLAN\n\nThe Virtual LAN identifier.\n\noptional"]
24137 #[serde(rename = "vlan_uid")]
24138 #[serde(skip_serializing_if = "Option::is_none")]
24139 pub vlan_uid: Option<String>,
24140 #[doc = "VPC UID\n\nThe unique identifier of the Virtual Private Cloud (VPC).\n\noptional"]
24141 #[serde(rename = "vpc_uid")]
24142 #[serde(skip_serializing_if = "Option::is_none")]
24143 pub vpc_uid: Option<String>,
24144 #[doc = "Network Zone\n\nThe network zone or LAN segment.\n\noptional"]
24145 #[serde(rename = "zone")]
24146 #[serde(skip_serializing_if = "Option::is_none")]
24147 pub zone: Option<String>,
24148}
24149#[doc = "Endpoint Connection\n\nThe Endpoint Connection object contains information detailing a connection attempt to an endpoint.\n\n[] Category: | Name: endpoint_connection\n\n**Constraints:**\n* at_least_one: `[network_endpoint`,`code]`\n"]
24150#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24151#[serde(default)]
24152#[non_exhaustive]
24153pub struct EndpointConnection {
24154 #[doc = "Response Code\n\nA numerical response status code providing details about the connection.\n\nrecommended"]
24155 #[serde(rename = "code")]
24156 #[serde(skip_serializing_if = "Option::is_none")]
24157 pub code: Option<i64>,
24158 #[doc = "Network Endpoint\n\nProvides characteristics of the network endpoint.\n\nrecommended"]
24159 #[serde(rename = "network_endpoint")]
24160 #[serde(skip_serializing_if = "Option::is_none")]
24161 pub network_endpoint: Option<Box<NetworkEndpoint>>,
24162}
24163#[doc = "Enrichment\n\nThe Enrichment object provides inline enrichment data for specific attributes of interest within an event. It serves as a mechanism to enhance or supplement the information associated with the event by adding additional relevant details or context.\n\n[] Category: | Name: enrichment"]
24164#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24165#[serde(default)]
24166#[non_exhaustive]
24167pub struct Enrichment {
24168 #[doc = "Created Time\n\nThe time when the enrichment data was generated.\n\nrecommended"]
24169 #[serde(rename = "created_time")]
24170 #[serde(skip_serializing_if = "Option::is_none")]
24171 pub created_time: Option<i64>,
24172 #[doc = "Created Time\n\nThe time when the enrichment data was generated.\n\noptional"]
24173 #[serde(rename = "created_time_dt")]
24174 #[serde(skip_serializing_if = "Option::is_none")]
24175 pub created_time_dt: Option<String>,
24176 #[doc = "Data\n\nThe enrichment data associated with the attribute and value. The meaning of this data depends on the type the enrichment record.\n\nrequired"]
24177 #[serde(rename = "data")]
24178 #[serde(skip_serializing_if = "Option::is_none")]
24179 pub data: Option<serde_json::Value>,
24180 #[doc = "Description\n\nA long description of the enrichment data.\n\noptional"]
24181 #[serde(rename = "desc")]
24182 #[serde(skip_serializing_if = "Option::is_none")]
24183 pub desc: Option<String>,
24184 #[doc = "Name\n\nThe name of the attribute to which the enriched data pertains.\n\nrequired"]
24185 #[serde(rename = "name")]
24186 #[serde(skip_serializing_if = "Option::is_none")]
24187 pub name: Option<String>,
24188 #[doc = "Provider\n\nThe enrichment data provider name.\n\nrecommended"]
24189 #[serde(rename = "provider")]
24190 #[serde(skip_serializing_if = "Option::is_none")]
24191 pub provider: Option<String>,
24192 #[doc = "Reputation Scores\n\nThe reputation of the enrichment data.\n\noptional"]
24193 #[serde(rename = "reputation")]
24194 #[serde(skip_serializing_if = "Option::is_none")]
24195 pub reputation: Option<Box<Reputation>>,
24196 #[doc = "Short Description\n\nA short description of the enrichment data.\n\nrecommended"]
24197 #[serde(rename = "short_desc")]
24198 #[serde(skip_serializing_if = "Option::is_none")]
24199 pub short_desc: Option<String>,
24200 #[doc = "Source URL\n\nThe URL of the source of the enrichment data.\n\nrecommended"]
24201 #[serde(rename = "src_url")]
24202 #[serde(skip_serializing_if = "Option::is_none")]
24203 pub src_url: Option<String>,
24204 #[doc = "Type\n\nThe enrichment type. For example: <code>location</code>.\n\nrecommended"]
24205 #[serde(rename = "type")]
24206 #[serde(skip_serializing_if = "Option::is_none")]
24207 pub r#type: Option<String>,
24208 #[doc = "Value\n\nThe value of the attribute to which the enriched data pertains.\n\nrequired"]
24209 #[serde(rename = "value")]
24210 #[serde(skip_serializing_if = "Option::is_none")]
24211 pub value: Option<String>,
24212}
24213#[doc = "Environment Variable\n\nAn environment variable.\n\n[] Category: | Name: environment_variable"]
24214#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24215#[serde(default)]
24216#[non_exhaustive]
24217pub struct EnvironmentVariable {
24218 #[doc = "Name\n\nThe name of the environment variable.\n\nrequired"]
24219 #[serde(rename = "name")]
24220 #[serde(skip_serializing_if = "Option::is_none")]
24221 pub name: Option<String>,
24222 #[doc = "Value\n\nThe value of the environment variable.\n\nrequired"]
24223 #[serde(rename = "value")]
24224 #[serde(skip_serializing_if = "Option::is_none")]
24225 pub value: Option<String>,
24226}
24227#[doc = "EPSS\n\nThe Exploit Prediction Scoring System (EPSS) object describes the estimated probability a vulnerability will be exploited. EPSS is a community-driven effort to combine descriptive information about vulnerabilities (CVEs) with evidence of actual exploitation in-the-wild. (<a target='_blank' href='https://www.first.org/epss/'>EPSS</a>).\n\n[] Category: | Name: epss"]
24228#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24229#[serde(default)]
24230#[non_exhaustive]
24231pub struct Epss {
24232 #[doc = "Created Time\n\nThe timestamp indicating when the EPSS score was calculated.\n\nrecommended"]
24233 #[serde(rename = "created_time")]
24234 #[serde(skip_serializing_if = "Option::is_none")]
24235 pub created_time: Option<i64>,
24236 #[doc = "Created Time\n\nThe timestamp indicating when the EPSS score was calculated.\n\noptional"]
24237 #[serde(rename = "created_time_dt")]
24238 #[serde(skip_serializing_if = "Option::is_none")]
24239 pub created_time_dt: Option<String>,
24240 #[doc = "EPSS Percentile\n\nThe EPSS score's percentile representing relative importance and ranking of the score in the larger EPSS dataset.\n\noptional"]
24241 #[serde(rename = "percentile")]
24242 #[serde(skip_serializing_if = "Option::is_none")]
24243 pub percentile: Option<f64>,
24244 #[doc = "EPPS Score\n\nThe EPSS score representing the probability [0-1] of exploitation in the wild in the next 30 days (following score publication).\n\nrequired"]
24245 #[serde(rename = "score")]
24246 #[serde(skip_serializing_if = "Option::is_none")]
24247 pub score: Option<String>,
24248 #[doc = "Version\n\nThe version of the EPSS model used to calculate the score.\n\nrecommended"]
24249 #[serde(rename = "version")]
24250 #[serde(skip_serializing_if = "Option::is_none")]
24251 pub version: Option<String>,
24252}
24253#[doc = "Windows Evidence Artifacts\n\nExtends the evidences object to add Windows specific fields\n\n[] Category: | Name: evidences\n\n**Constraints:**\n* at_least_one: `[actor`,`api`,`connection_info`,`data`,`database`,`databucket`,`device`,`dst_endpoint`,`email`,`file`,`process`,`query`,`src_endpoint`,`url`,`user`,`job`,`script`,`reg_key`,`reg_value`,`win_service]`\n"]
24254#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24255#[serde(default)]
24256#[non_exhaustive]
24257pub struct Evidences {
24258 #[doc = "Actor\n\nDescribes details about the user/role/process that was the source of the activity that triggered the detection.\n\nrecommended"]
24259 #[serde(rename = "actor")]
24260 #[serde(skip_serializing_if = "Option::is_none")]
24261 pub actor: Option<Box<Actor>>,
24262 #[doc = "API Details\n\nDescribes details about the API call associated to the activity that triggered the detection.\n\nrecommended"]
24263 #[serde(rename = "api")]
24264 #[serde(skip_serializing_if = "Option::is_none")]
24265 pub api: Option<Box<Api>>,
24266 #[doc = "Connection Info\n\nDescribes details about the network connection associated to the activity that triggered the detection.\n\nrecommended"]
24267 #[serde(rename = "connection_info")]
24268 #[serde(skip_serializing_if = "Option::is_none")]
24269 pub connection_info: Option<Box<NetworkConnectionInfo>>,
24270 #[doc = "Container\n\nDescribes details about the container associated to the activity that triggered the detection.\n\nrecommended"]
24271 #[serde(rename = "container")]
24272 #[serde(skip_serializing_if = "Option::is_none")]
24273 pub container: Option<Box<Container>>,
24274 #[doc = "Data\n\nAdditional evidence data that is not accounted for in the specific evidence attributes.<code> Use only when absolutely necessary.</code>\n\noptional"]
24275 #[serde(rename = "data")]
24276 #[serde(skip_serializing_if = "Option::is_none")]
24277 pub data: Option<serde_json::Value>,
24278 #[doc = "Database\n\nDescribes details about the database associated to the activity that triggered the detection.\n\nrecommended"]
24279 #[serde(rename = "database")]
24280 #[serde(skip_serializing_if = "Option::is_none")]
24281 pub database: Option<Box<Database>>,
24282 #[doc = "Databucket\n\nDescribes details about the databucket associated to the activity that triggered the detection.\n\nrecommended"]
24283 #[serde(rename = "databucket")]
24284 #[serde(skip_serializing_if = "Option::is_none")]
24285 pub databucket: Option<Box<Databucket>>,
24286 #[doc = "Device\n\nAn addressable device, computer system or host associated to the activity that triggered the detection.\n\nrecommended"]
24287 #[serde(rename = "device")]
24288 #[serde(skip_serializing_if = "Option::is_none")]
24289 pub device: Option<Box<Device>>,
24290 #[doc = "Destination Endpoint\n\nDescribes details about the destination of the network activity that triggered the detection.\n\nrecommended"]
24291 #[serde(rename = "dst_endpoint")]
24292 #[serde(skip_serializing_if = "Option::is_none")]
24293 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
24294 #[doc = "Email\n\nThe email object associated to the activity that triggered the detection.\n\nrecommended"]
24295 #[serde(rename = "email")]
24296 #[serde(skip_serializing_if = "Option::is_none")]
24297 pub email: Option<Box<Email>>,
24298 #[doc = "File\n\nDescribes details about the file associated to the activity that triggered the detection.\n\nrecommended"]
24299 #[serde(rename = "file")]
24300 #[serde(skip_serializing_if = "Option::is_none")]
24301 pub file: Option<Box<File>>,
24302 #[doc = "HTTP Request\n\nDescribes details about the http request associated to the activity that triggered the detection.\n\nrecommended"]
24303 #[serde(rename = "http_request")]
24304 #[serde(skip_serializing_if = "Option::is_none")]
24305 pub http_request: Option<Box<HttpRequest>>,
24306 #[doc = "HTTP Response\n\nDescribes details about the http response associated to the activity that triggered the detection.\n\nrecommended"]
24307 #[serde(rename = "http_response")]
24308 #[serde(skip_serializing_if = "Option::is_none")]
24309 pub http_response: Option<Box<HttpResponse>>,
24310 #[doc = "JA4+ Fingerprints\n\nDescribes details about the JA4+ fingerprints that triggered the detection.\n\nrecommended"]
24311 #[serde(rename = "ja4_fingerprint_list")]
24312 #[serde(skip_serializing_if = "Option::is_none")]
24313 pub ja4_fingerprint_list: Option<Vec<Ja4Fingerprint>>,
24314 #[doc = "Job\n\nDescribes details about the scheduled job that was associated with the activity that triggered the detection.\n\nrecommended"]
24315 #[serde(rename = "job")]
24316 #[serde(skip_serializing_if = "Option::is_none")]
24317 pub job: Option<Box<Job>>,
24318 #[doc = "Name\n\nThe naming convention or type identifier of the evidence associated with the security detection. For example, the <code>@odata.type</code> from Microsoft Graph Alerts V2 or <code>display_name</code> from CrowdStrike Falcon Incident Behaviors.\n\noptional"]
24319 #[serde(rename = "name")]
24320 #[serde(skip_serializing_if = "Option::is_none")]
24321 pub name: Option<String>,
24322 #[doc = "Process\n\nDescribes details about the process associated to the activity that triggered the detection.\n\nrecommended"]
24323 #[serde(rename = "process")]
24324 #[serde(skip_serializing_if = "Option::is_none")]
24325 pub process: Option<Box<Process>>,
24326 #[doc = "DNS Query\n\nDescribes details about the DNS query associated to the activity that triggered the detection.\n\nrecommended"]
24327 #[serde(rename = "query")]
24328 #[serde(skip_serializing_if = "Option::is_none")]
24329 pub query: Option<Box<DnsQuery>>,
24330 #[doc = "Registry Key\n\nDescribes details about the registry key that triggered the detection.\n\nrecommended"]
24331 #[serde(rename = "reg_key")]
24332 #[serde(skip_serializing_if = "Option::is_none")]
24333 pub reg_key: Option<Box<WinRegKey>>,
24334 #[doc = "Registry Value\n\nDescribes details about the registry value that triggered the detection.\n\nrecommended"]
24335 #[serde(rename = "reg_value")]
24336 #[serde(skip_serializing_if = "Option::is_none")]
24337 pub reg_value: Option<Box<WinRegValue>>,
24338 #[doc = "Cloud Resources\n\nDescribes details about the cloud resources directly related to activity that triggered the detection. For resources impacted by the detection, use <code>Affected Resources</code> at the top-level of the finding.\n\nrecommended"]
24339 #[serde(rename = "resources")]
24340 #[serde(skip_serializing_if = "Option::is_none")]
24341 pub resources: Option<Vec<ResourceDetails>>,
24342 #[doc = "Script\n\nDescribes details about the script that was associated with the activity that triggered the detection.\n\nrecommended"]
24343 #[serde(rename = "script")]
24344 #[serde(skip_serializing_if = "Option::is_none")]
24345 pub script: Option<Box<Script>>,
24346 #[doc = "Source Endpoint\n\nDescribes details about the source of the network activity that triggered the detection.\n\nrecommended"]
24347 #[serde(rename = "src_endpoint")]
24348 #[serde(skip_serializing_if = "Option::is_none")]
24349 pub src_endpoint: Option<Box<NetworkEndpoint>>,
24350 #[doc = "TLS\n\nDescribes details about the Transport Layer Security (TLS) activity that triggered the detection.\n\nrecommended"]
24351 #[serde(rename = "tls")]
24352 #[serde(skip_serializing_if = "Option::is_none")]
24353 pub tls: Option<Box<Tls>>,
24354 #[doc = "Unique ID\n\nThe unique identifier of the evidence associated with the security detection. For example, the <code>activity_id</code> from CrowdStrike Falcon Alerts or <code>behavior_id</code> from CrowdStrike Falcon Incident Behaviors.\n\noptional"]
24355 #[serde(rename = "uid")]
24356 #[serde(skip_serializing_if = "Option::is_none")]
24357 pub uid: Option<String>,
24358 #[doc = "URL\n\nThe URL object that pertains to the event or object associated to the activity that triggered the detection.\n\nrecommended"]
24359 #[serde(rename = "url")]
24360 #[serde(skip_serializing_if = "Option::is_none")]
24361 pub url: Option<Box<Url>>,
24362 #[doc = "User\n\nDescribes details about the user that was the target or somehow else associated with the activity that triggered the detection.\n\nrecommended"]
24363 #[serde(rename = "user")]
24364 #[serde(skip_serializing_if = "Option::is_none")]
24365 pub user: Option<Box<User>>,
24366 #[doc = "Verdict\n\nThe normalized verdict of the evidence associated with the security detection. \n\noptional"]
24367 #[serde(rename = "verdict")]
24368 #[serde(skip_serializing_if = "Option::is_none")]
24369 pub verdict: Option<String>,
24370 #[doc = "Verdict ID\n\nThe normalized verdict (or status) ID of the evidence associated with the security detection. For example, Microsoft Graph Security Alerts contain a <code>verdict</code> enumeration for each type of <code>evidence</code> associated with the Alert. This is typically set by an automated investigation process or an analyst/investigator assigned to the finding.\n\noptional"]
24371 #[serde(rename = "verdict_id")]
24372 #[serde(skip_serializing_if = "Option::is_none")]
24373 pub verdict_id: Option<i64>,
24374 #[doc = "Windows Service\n\nDescribes details about the Windows service that triggered the detection.\n\nrecommended"]
24375 #[serde(rename = "win_service")]
24376 #[serde(skip_serializing_if = "Option::is_none")]
24377 pub win_service: Option<Box<WinWinService>>,
24378}
24379#[doc = "Schema Extension\n\nThe OCSF Schema Extension object provides detailed information about the schema extension used to construct the event. The schema extensions are registered in the <a target='_blank' href='https://github.com/ocsf/ocsf-schema/blob/main/extensions.md'>extensions.md</a> file.\n\n[] Category: | Name: extension\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24380#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24381#[serde(default)]
24382#[non_exhaustive]
24383pub struct Extension {
24384 #[doc = "Name\n\nThe schema extension name. For example: <code>dev</code>.\n\nrecommended"]
24385 #[serde(rename = "name")]
24386 #[serde(skip_serializing_if = "Option::is_none")]
24387 pub name: Option<String>,
24388 #[doc = "Unique ID\n\nThe schema extension unique identifier. For example: <code>999</code>.\n\nrecommended"]
24389 #[serde(rename = "uid")]
24390 #[serde(skip_serializing_if = "Option::is_none")]
24391 pub uid: Option<String>,
24392 #[doc = "Version\n\nThe schema extension version. For example: <code>1.0.0-alpha.2</code>.\n\nrequired"]
24393 #[serde(rename = "version")]
24394 #[serde(skip_serializing_if = "Option::is_none")]
24395 pub version: Option<String>,
24396}
24397#[doc = "Feature\n\nThe Feature object provides information about the software product feature that generated a specific event. It encompasses details related to the capabilities, components, user interface (UI) design, and performance upgrades associated with the feature.\n\n[] Category: | Name: feature\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24398#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24399#[serde(default)]
24400#[non_exhaustive]
24401pub struct Feature {
24402 #[doc = "Name\n\nThe name of the feature.\n\nrecommended"]
24403 #[serde(rename = "name")]
24404 #[serde(skip_serializing_if = "Option::is_none")]
24405 pub name: Option<String>,
24406 #[doc = "Unique ID\n\nThe unique identifier of the feature.\n\nrecommended"]
24407 #[serde(rename = "uid")]
24408 #[serde(skip_serializing_if = "Option::is_none")]
24409 pub uid: Option<String>,
24410 #[doc = "Version\n\nThe version of the feature.\n\nrecommended"]
24411 #[serde(rename = "version")]
24412 #[serde(skip_serializing_if = "Option::is_none")]
24413 pub version: Option<String>,
24414}
24415#[doc = "File\n\nThe File object represents the metadata associated with a file stored in a computer system. It encompasses information about the file itself, including its attributes, properties, and organizational details.\n\n[] Category: | Name: file\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24416#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24417#[serde(default)]
24418#[non_exhaustive]
24419pub struct File {
24420 #[doc = "Accessed Time\n\nThe time when the file was last accessed.\n\noptional"]
24421 #[serde(rename = "accessed_time")]
24422 #[serde(skip_serializing_if = "Option::is_none")]
24423 pub accessed_time: Option<i64>,
24424 #[doc = "Accessed Time\n\nThe time when the file was last accessed.\n\noptional"]
24425 #[serde(rename = "accessed_time_dt")]
24426 #[serde(skip_serializing_if = "Option::is_none")]
24427 pub accessed_time_dt: Option<String>,
24428 #[doc = "Accessor\n\nThe name of the user who last accessed the object.\n\noptional"]
24429 #[serde(rename = "accessor")]
24430 #[serde(skip_serializing_if = "Option::is_none")]
24431 pub accessor: Option<Box<User>>,
24432 #[doc = "Attributes\n\nThe bitmask value that represents the file attributes.\n\noptional"]
24433 #[serde(rename = "attributes")]
24434 #[serde(skip_serializing_if = "Option::is_none")]
24435 pub attributes: Option<i64>,
24436 #[doc = "Company Name\n\nThe name of the company that published the file. For example: <code>Microsoft Corporation</code>.\n\noptional"]
24437 #[serde(rename = "company_name")]
24438 #[serde(skip_serializing_if = "Option::is_none")]
24439 pub company_name: Option<String>,
24440 #[doc = "Confidentiality\n\nThe file content confidentiality, normalized to the confidentiality_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
24441 #[serde(rename = "confidentiality")]
24442 #[serde(skip_serializing_if = "Option::is_none")]
24443 pub confidentiality: Option<String>,
24444 #[doc = "Confidentiality ID\n\nThe normalized identifier of the file content confidentiality indicator.\n\noptional"]
24445 #[serde(rename = "confidentiality_id")]
24446 #[serde(skip_serializing_if = "Option::is_none")]
24447 pub confidentiality_id: Option<i64>,
24448 #[doc = "Created Time\n\nThe time when the file was created.\n\noptional"]
24449 #[serde(rename = "created_time")]
24450 #[serde(skip_serializing_if = "Option::is_none")]
24451 pub created_time: Option<i64>,
24452 #[doc = "Created Time\n\nThe time when the file was created.\n\noptional"]
24453 #[serde(rename = "created_time_dt")]
24454 #[serde(skip_serializing_if = "Option::is_none")]
24455 pub created_time_dt: Option<String>,
24456 #[doc = "Creator\n\nThe user that created the file.\n\noptional"]
24457 #[serde(rename = "creator")]
24458 #[serde(skip_serializing_if = "Option::is_none")]
24459 pub creator: Option<Box<User>>,
24460 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
24461 #[serde(rename = "data_classification")]
24462 #[serde(skip_serializing_if = "Option::is_none")]
24463 pub data_classification: Option<Box<DataClassification>>,
24464 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
24465 #[serde(rename = "data_classifications")]
24466 #[serde(skip_serializing_if = "Option::is_none")]
24467 pub data_classifications: Option<Vec<DataClassification>>,
24468 #[doc = "Description\n\nThe description of the file, as returned by file system. For example: the description as returned by the Unix file command or the Windows file type.\n\noptional"]
24469 #[serde(rename = "desc")]
24470 #[serde(skip_serializing_if = "Option::is_none")]
24471 pub desc: Option<String>,
24472 #[doc = "Drive Type\n\nThe drive type, normalized to the caption of the <code>drive_type_id</code> value. In the case of <code>Other</code>, it is defined by the source.\n\noptional"]
24473 #[serde(rename = "drive_type")]
24474 #[serde(skip_serializing_if = "Option::is_none")]
24475 pub drive_type: Option<String>,
24476 #[doc = "Drive Type ID\n\nIdentifies the type of a disk drive, i.e. fixed, removable, etc.\n\noptional"]
24477 #[serde(rename = "drive_type_id")]
24478 #[serde(skip_serializing_if = "Option::is_none")]
24479 pub drive_type_id: Option<i64>,
24480 #[doc = "Encryption Details\n\nThe encryption details of the file. Should be populated if the file is encrypted.\n\noptional"]
24481 #[serde(rename = "encryption_details")]
24482 #[serde(skip_serializing_if = "Option::is_none")]
24483 pub encryption_details: Option<Box<EncryptionDetails>>,
24484 #[doc = "File Extension\n\nThe extension of the file, excluding the leading dot. For example: <code>exe</code> from <code>svchost.exe</code>, or <code>gz</code> from <code>export.tar.gz</code>.\n\nrecommended"]
24485 #[serde(rename = "ext")]
24486 #[serde(skip_serializing_if = "Option::is_none")]
24487 pub ext: Option<String>,
24488 #[doc = "Hashes\n\nAn array of hash attributes.\n\nrecommended"]
24489 #[serde(rename = "hashes")]
24490 #[serde(skip_serializing_if = "Option::is_none")]
24491 pub hashes: Option<Vec<Fingerprint>>,
24492 #[doc = "Internal Name\n\nThe name of the file as identified within the file itself. This contrasts with the name by which the file is known on disk. Where available, the internal name is widely used by security practitioners and detection content because the on-disk file name is not reliable. On the Windows OS, most PE files contain a <a href=\"https://learn.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource\">VERSIONINFO</a> resource from which the internal name can be obtained. On macOS, binaries can optionally embed a copy of the application's Info.plist file which in turn contains the name of the executable.\n\noptional"]
24493 #[serde(rename = "internal_name")]
24494 #[serde(skip_serializing_if = "Option::is_none")]
24495 pub internal_name: Option<String>,
24496 #[doc = "Deleted\n\nIndicates if the file was deleted from the filesystem.\n\noptional"]
24497 #[serde(rename = "is_deleted")]
24498 #[serde(skip_serializing_if = "Option::is_none")]
24499 pub is_deleted: Option<bool>,
24500 #[doc = "Encrypted\n\nIndicates if the file is encrypted.\n\noptional"]
24501 #[serde(rename = "is_encrypted")]
24502 #[serde(skip_serializing_if = "Option::is_none")]
24503 pub is_encrypted: Option<bool>,
24504 #[doc = "Public\n\nIndicates if the file is publicly accessible. For example in an object's public access in AWS S3\n\noptional"]
24505 #[serde(rename = "is_public")]
24506 #[serde(skip_serializing_if = "Option::is_none")]
24507 pub is_public: Option<bool>,
24508 #[doc = "Read-Only\n\nIndicates that the file cannot be modified.\n\noptional"]
24509 #[serde(rename = "is_readonly")]
24510 #[serde(skip_serializing_if = "Option::is_none")]
24511 pub is_readonly: Option<bool>,
24512 #[doc = "System\n\nThe indication of whether the object is part of the operating system.\n\noptional"]
24513 #[serde(rename = "is_system")]
24514 #[serde(skip_serializing_if = "Option::is_none")]
24515 pub is_system: Option<bool>,
24516 #[doc = "MIME type\n\nThe Multipurpose Internet Mail Extensions (MIME) type of the file, if applicable.\n\noptional"]
24517 #[serde(rename = "mime_type")]
24518 #[serde(skip_serializing_if = "Option::is_none")]
24519 pub mime_type: Option<String>,
24520 #[doc = "Modified Time\n\nThe time when the file was last modified.\n\noptional"]
24521 #[serde(rename = "modified_time")]
24522 #[serde(skip_serializing_if = "Option::is_none")]
24523 pub modified_time: Option<i64>,
24524 #[doc = "Modified Time\n\nThe time when the file was last modified.\n\noptional"]
24525 #[serde(rename = "modified_time_dt")]
24526 #[serde(skip_serializing_if = "Option::is_none")]
24527 pub modified_time_dt: Option<String>,
24528 #[doc = "Modifier\n\nThe user that last modified the file.\n\noptional"]
24529 #[serde(rename = "modifier")]
24530 #[serde(skip_serializing_if = "Option::is_none")]
24531 pub modifier: Option<Box<User>>,
24532 #[doc = "Name\n\nThe name of the file. For example: <code>svchost.exe</code>\n\nrequired"]
24533 #[serde(rename = "name")]
24534 #[serde(skip_serializing_if = "Option::is_none")]
24535 pub name: Option<String>,
24536 #[doc = "Owner\n\nThe user that owns the file/object.\n\noptional"]
24537 #[serde(rename = "owner")]
24538 #[serde(skip_serializing_if = "Option::is_none")]
24539 pub owner: Option<Box<User>>,
24540 #[doc = "Parent Folder\n\nThe parent folder in which the file resides. For example: <code>c:\\windows\\system32</code>\n\noptional"]
24541 #[serde(rename = "parent_folder")]
24542 #[serde(skip_serializing_if = "Option::is_none")]
24543 pub parent_folder: Option<String>,
24544 #[doc = "Path\n\nThe full path to the file. For example: <code>c:\\windows\\system32\\svchost.exe</code>.\n\nrecommended"]
24545 #[serde(rename = "path")]
24546 #[serde(skip_serializing_if = "Option::is_none")]
24547 pub path: Option<String>,
24548 #[doc = "Product\n\nThe product that created or installed the file.\n\noptional"]
24549 #[serde(rename = "product")]
24550 #[serde(skip_serializing_if = "Option::is_none")]
24551 pub product: Option<Box<Product>>,
24552 #[doc = "Security Descriptor\n\nThe object security descriptor.\n\noptional"]
24553 #[serde(rename = "security_descriptor")]
24554 #[serde(skip_serializing_if = "Option::is_none")]
24555 pub security_descriptor: Option<String>,
24556 #[doc = "Digital Signature\n\nThe digital signature of the file.\n\noptional"]
24557 #[serde(rename = "signature")]
24558 #[serde(skip_serializing_if = "Option::is_none")]
24559 pub signature: Option<Box<DigitalSignature>>,
24560 #[doc = "Digital Signatures\n\nA collection of <code>Digital Signature</code> objects.\n\noptional"]
24561 #[serde(rename = "signatures")]
24562 #[serde(skip_serializing_if = "Option::is_none")]
24563 pub signatures: Option<Vec<DigitalSignature>>,
24564 #[doc = "Size\n\nThe size of data, in bytes.\n\noptional"]
24565 #[serde(rename = "size")]
24566 #[serde(skip_serializing_if = "Option::is_none")]
24567 pub size: Option<i64>,
24568 #[doc = "Storage Class\n\nThe storage class of the file. For example in AWS S3: <code>STANDARD, STANDARD_IA, GLACIER</code>.\n\noptional"]
24569 #[serde(rename = "storage_class")]
24570 #[serde(skip_serializing_if = "Option::is_none")]
24571 pub storage_class: Option<String>,
24572 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the file.\n\noptional"]
24573 #[serde(rename = "tags")]
24574 #[serde(skip_serializing_if = "Option::is_none")]
24575 pub tags: Option<Vec<KeyValueObject>>,
24576 #[doc = "Type\n\nThe file type.\n\noptional"]
24577 #[serde(rename = "type")]
24578 #[serde(skip_serializing_if = "Option::is_none")]
24579 pub r#type: Option<String>,
24580 #[doc = "Type ID\n\nThe file type ID. Note the distinction between a <code>Regular File</code> and an <code>Executable File</code>. If the distinction is not known, or not indicated by the log, use <code>Regular File</code>. In this case, it should not be assumed that a Regular File is not executable.\n\nrequired"]
24581 #[serde(rename = "type_id")]
24582 #[serde(skip_serializing_if = "Option::is_none")]
24583 pub type_id: Option<i64>,
24584 #[doc = "Unique ID\n\nThe unique identifier of the file as defined by the storage system, such the file system file ID.\n\noptional"]
24585 #[serde(rename = "uid")]
24586 #[serde(skip_serializing_if = "Option::is_none")]
24587 pub uid: Option<String>,
24588 #[doc = "File URI\n\nThe file URI, such as those reporting by static analysis tools. E.g., <code>file:///C:/dev/sarif/sarif-tutorials/samples/Introduction/simple-example.js</code>\n\noptional"]
24589 #[serde(rename = "uri")]
24590 #[serde(skip_serializing_if = "Option::is_none")]
24591 pub uri: Option<String>,
24592 #[doc = "URL\n\nThe URL of the file, when applicable.\n\noptional"]
24593 #[serde(rename = "url")]
24594 #[serde(skip_serializing_if = "Option::is_none")]
24595 pub url: Option<Box<Url>>,
24596 #[doc = "Version\n\nThe file version. For example: <code>8.0.7601.17514</code>.\n\noptional"]
24597 #[serde(rename = "version")]
24598 #[serde(skip_serializing_if = "Option::is_none")]
24599 pub version: Option<String>,
24600 #[doc = "Volume\n\nThe volume on the storage device where the file is located.\n\noptional"]
24601 #[serde(rename = "volume")]
24602 #[serde(skip_serializing_if = "Option::is_none")]
24603 pub volume: Option<String>,
24604 #[doc = "Extended Attributes\n\nAn unordered collection of zero or more name/value pairs where each pair represents a file or folder extended attribute.</p>For example: Windows alternate data stream attributes (ADS stream name, ADS size, etc.), user-defined or application-defined attributes, ACL, owner, primary group, etc. Examples from DCS: </p><ul><li><strong>ads_name</strong></li><li><strong>ads_size</strong></li><li><strong>dacl</strong></li><li><strong>owner</strong></li><li><strong>primary_group</strong></li><li><strong>link_name</strong> - name of the link associated to the file.</li><li><strong>hard_link_count</strong> - the number of links that are associated to the file.</li></ul>\n\noptional"]
24605 #[serde(rename = "xattributes")]
24606 #[serde(skip_serializing_if = "Option::is_none")]
24607 pub xattributes: Option<serde_json::Value>,
24608}
24609#[doc = "Finding\n\nThe Finding object describes metadata related to a security finding generated by a security tool or system.\n\n[] Category: | Name: finding"]
24610#[deprecated(note = "Use the new <code>finding_info</code> object. (Since 1.0.0)")]
24611#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24612#[serde(default)]
24613#[non_exhaustive]
24614pub struct Finding {
24615 #[doc = "Created Time\n\nThe time when the finding was created.\n\noptional"]
24616 #[serde(rename = "created_time")]
24617 #[serde(skip_serializing_if = "Option::is_none")]
24618 pub created_time: Option<i64>,
24619 #[doc = "Created Time\n\nThe time when the finding was created.\n\noptional"]
24620 #[serde(rename = "created_time_dt")]
24621 #[serde(skip_serializing_if = "Option::is_none")]
24622 pub created_time_dt: Option<String>,
24623 #[doc = "Description\n\nThe description of the reported finding.\n\noptional"]
24624 #[serde(rename = "desc")]
24625 #[serde(skip_serializing_if = "Option::is_none")]
24626 pub desc: Option<String>,
24627 #[doc = "First Seen\n\nThe time when the finding was first observed.\n\noptional"]
24628 #[serde(rename = "first_seen_time")]
24629 #[serde(skip_serializing_if = "Option::is_none")]
24630 pub first_seen_time: Option<i64>,
24631 #[doc = "First Seen\n\nThe time when the finding was first observed.\n\noptional"]
24632 #[serde(rename = "first_seen_time_dt")]
24633 #[serde(skip_serializing_if = "Option::is_none")]
24634 pub first_seen_time_dt: Option<String>,
24635 #[doc = "Last Seen\n\nThe time when the finding was most recently observed.\n\noptional"]
24636 #[serde(rename = "last_seen_time")]
24637 #[serde(skip_serializing_if = "Option::is_none")]
24638 pub last_seen_time: Option<i64>,
24639 #[doc = "Last Seen\n\nThe time when the finding was most recently observed.\n\noptional"]
24640 #[serde(rename = "last_seen_time_dt")]
24641 #[serde(skip_serializing_if = "Option::is_none")]
24642 pub last_seen_time_dt: Option<String>,
24643 #[doc = "Modified Time\n\nThe time when the finding was last modified.\n\noptional"]
24644 #[serde(rename = "modified_time")]
24645 #[serde(skip_serializing_if = "Option::is_none")]
24646 pub modified_time: Option<i64>,
24647 #[doc = "Modified Time\n\nThe time when the finding was last modified.\n\noptional"]
24648 #[serde(rename = "modified_time_dt")]
24649 #[serde(skip_serializing_if = "Option::is_none")]
24650 pub modified_time_dt: Option<String>,
24651 #[doc = "Product\n\nDetails about the product that reported the finding.\n\noptional"]
24652 #[serde(rename = "product")]
24653 #[serde(skip_serializing_if = "Option::is_none")]
24654 pub product: Option<Box<Product>>,
24655 #[doc = "Product Identifier\n\nThe unique identifier of the product that reported the finding.\n\noptional"]
24656 #[serde(rename = "product_uid")]
24657 #[serde(skip_serializing_if = "Option::is_none")]
24658 pub product_uid: Option<String>,
24659 #[doc = "Related Events/Findings\n\nDescribes events and/or other findings related to the finding as identified by the security product. Note that these events may or may not be in OCSF.\n\noptional"]
24660 #[serde(rename = "related_events")]
24661 #[serde(skip_serializing_if = "Option::is_none")]
24662 pub related_events: Option<Vec<RelatedEvent>>,
24663 #[doc = "Remediation Guidance\n\nDescribes the recommended remediation steps to address identified issue(s).\n\noptional"]
24664 #[serde(rename = "remediation")]
24665 #[serde(skip_serializing_if = "Option::is_none")]
24666 pub remediation: Option<Box<Remediation>>,
24667 #[doc = "Source URL\n\nThe URL pointing to the source of the finding.\n\noptional"]
24668 #[serde(rename = "src_url")]
24669 #[serde(skip_serializing_if = "Option::is_none")]
24670 pub src_url: Option<String>,
24671 #[doc = "Supporting Data\n\nAdditional data supporting a finding as provided by security tool\n\noptional"]
24672 #[serde(rename = "supporting_data")]
24673 #[serde(skip_serializing_if = "Option::is_none")]
24674 pub supporting_data: Option<serde_json::Value>,
24675 #[doc = "Title\n\nA title or a brief phrase summarizing the reported finding.\n\nrequired"]
24676 #[serde(rename = "title")]
24677 #[serde(skip_serializing_if = "Option::is_none")]
24678 pub title: Option<String>,
24679 #[doc = "Types\n\nOne or more types of the reported finding.\n\noptional"]
24680 #[serde(rename = "types")]
24681 #[serde(skip_serializing_if = "Option::is_none")]
24682 pub types: Option<Vec<String>>,
24683 #[doc = "Unique ID\n\nThe unique identifier of the reported finding.\n\nrequired"]
24684 #[serde(rename = "uid")]
24685 #[serde(skip_serializing_if = "Option::is_none")]
24686 pub uid: Option<String>,
24687}
24688#[doc = "Finding Information\n\nThe Finding Information object describes metadata related to a security finding generated by a security tool or system.\n\n[] Category: | Name: finding_info"]
24689#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24690#[serde(default)]
24691#[non_exhaustive]
24692pub struct FindingInfo {
24693 #[doc = "Analytic\n\nThe analytic technique used to analyze and derive insights from the data or information that led to the finding or conclusion.\n\nrecommended"]
24694 #[serde(rename = "analytic")]
24695 #[serde(skip_serializing_if = "Option::is_none")]
24696 pub analytic: Option<Box<Analytic>>,
24697 #[doc = "Attack Graph\n\nAn Attack Graph describes possible routes an attacker could take through an environment. It describes relationships between resources and their findings, such as malware detections, vulnerabilities, misconfigurations, and other security actions.\n\noptional"]
24698 #[serde(rename = "attack_graph")]
24699 #[serde(skip_serializing_if = "Option::is_none")]
24700 pub attack_graph: Option<Box<Graph>>,
24701 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nThe <a target='_blank' href='https://attack.mitre.org'>MITRE ATT&CK®</a> technique and associated tactics related to the finding.\n\noptional"]
24702 #[serde(rename = "attacks")]
24703 #[serde(skip_serializing_if = "Option::is_none")]
24704 pub attacks: Option<Vec<Attack>>,
24705 #[doc = "Created Time\n\nThe time when the finding was created.\n\noptional"]
24706 #[serde(rename = "created_time")]
24707 #[serde(skip_serializing_if = "Option::is_none")]
24708 pub created_time: Option<i64>,
24709 #[doc = "Created Time\n\nThe time when the finding was created.\n\noptional"]
24710 #[serde(rename = "created_time_dt")]
24711 #[serde(skip_serializing_if = "Option::is_none")]
24712 pub created_time_dt: Option<String>,
24713 #[doc = "Data Sources\n\nA list of data sources utilized in generation of the finding.\n\noptional"]
24714 #[serde(rename = "data_sources")]
24715 #[serde(skip_serializing_if = "Option::is_none")]
24716 pub data_sources: Option<Vec<String>>,
24717 #[doc = "Description\n\nThe description of the reported finding.\n\noptional"]
24718 #[serde(rename = "desc")]
24719 #[serde(skip_serializing_if = "Option::is_none")]
24720 pub desc: Option<String>,
24721 #[doc = "First Seen\n\nThe time when the finding was first observed. e.g. The time when a vulnerability was first observed. <p>It can differ from the <code>created_time</code> timestamp, which reflects the time this finding was created.</p>\n\noptional"]
24722 #[serde(rename = "first_seen_time")]
24723 #[serde(skip_serializing_if = "Option::is_none")]
24724 pub first_seen_time: Option<i64>,
24725 #[doc = "First Seen\n\nThe time when the finding was first observed. e.g. The time when a vulnerability was first observed. <p>It can differ from the <code>created_time</code> timestamp, which reflects the time this finding was created.</p>\n\noptional"]
24726 #[serde(rename = "first_seen_time_dt")]
24727 #[serde(skip_serializing_if = "Option::is_none")]
24728 pub first_seen_time_dt: Option<String>,
24729 #[doc = "Kill Chain\n\nThe <a target='_blank' href='https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html'>Cyber Kill Chain®</a> provides a detailed description of each phase and its associated activities within the broader context of a cyber attack.\n\noptional"]
24730 #[serde(rename = "kill_chain")]
24731 #[serde(skip_serializing_if = "Option::is_none")]
24732 pub kill_chain: Option<Vec<KillChainPhase>>,
24733 #[doc = "Last Seen\n\nThe time when the finding was most recently observed. e.g. The time when a vulnerability was most recently observed. <p>It can differ from the <code>modified_time</code> timestamp, which reflects the time this finding was last modified.</p>\n\noptional"]
24734 #[serde(rename = "last_seen_time")]
24735 #[serde(skip_serializing_if = "Option::is_none")]
24736 pub last_seen_time: Option<i64>,
24737 #[doc = "Last Seen\n\nThe time when the finding was most recently observed. e.g. The time when a vulnerability was most recently observed. <p>It can differ from the <code>modified_time</code> timestamp, which reflects the time this finding was last modified.</p>\n\noptional"]
24738 #[serde(rename = "last_seen_time_dt")]
24739 #[serde(skip_serializing_if = "Option::is_none")]
24740 pub last_seen_time_dt: Option<String>,
24741 #[doc = "Modified Time\n\nThe time when the finding was last modified.\n\noptional"]
24742 #[serde(rename = "modified_time")]
24743 #[serde(skip_serializing_if = "Option::is_none")]
24744 pub modified_time: Option<i64>,
24745 #[doc = "Modified Time\n\nThe time when the finding was last modified.\n\noptional"]
24746 #[serde(rename = "modified_time_dt")]
24747 #[serde(skip_serializing_if = "Option::is_none")]
24748 pub modified_time_dt: Option<String>,
24749 #[doc = "Product\n\nDetails about the product that reported the finding.\n\noptional"]
24750 #[serde(rename = "product")]
24751 #[serde(skip_serializing_if = "Option::is_none")]
24752 pub product: Option<Box<Product>>,
24753 #[doc = "Product Identifier\n\nThe unique identifier of the product that reported the finding.\n\noptional"]
24754 #[serde(rename = "product_uid")]
24755 #[serde(skip_serializing_if = "Option::is_none")]
24756 pub product_uid: Option<String>,
24757 #[doc = "Related Analytics\n\nOther analytics related to this finding.\n\noptional"]
24758 #[serde(rename = "related_analytics")]
24759 #[serde(skip_serializing_if = "Option::is_none")]
24760 pub related_analytics: Option<Vec<Analytic>>,
24761 #[doc = "Related Events/Findings\n\nDescribes events and/or other findings related to the finding as identified by the security product. Note that these events may or may not be in OCSF.\n\noptional"]
24762 #[serde(rename = "related_events")]
24763 #[serde(skip_serializing_if = "Option::is_none")]
24764 pub related_events: Option<Vec<RelatedEvent>>,
24765 #[doc = "Related Events/Findings Count\n\nNumber of related events or findings.\n\noptional"]
24766 #[serde(rename = "related_events_count")]
24767 #[serde(skip_serializing_if = "Option::is_none")]
24768 pub related_events_count: Option<i64>,
24769 #[doc = "Source URL\n\nThe URL pointing to the source of the finding.\n\noptional"]
24770 #[serde(rename = "src_url")]
24771 #[serde(skip_serializing_if = "Option::is_none")]
24772 pub src_url: Option<String>,
24773 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated with the finding.\n\noptional"]
24774 #[serde(rename = "tags")]
24775 #[serde(skip_serializing_if = "Option::is_none")]
24776 pub tags: Option<Vec<KeyValueObject>>,
24777 #[doc = "Title\n\nA title or a brief phrase summarizing the reported finding.\n\nrecommended"]
24778 #[serde(rename = "title")]
24779 #[serde(skip_serializing_if = "Option::is_none")]
24780 pub title: Option<String>,
24781 #[doc = "Traits\n\nThe list of key traits or characteristics extracted from the finding.\n\noptional"]
24782 #[serde(rename = "traits")]
24783 #[serde(skip_serializing_if = "Option::is_none")]
24784 pub traits: Option<Vec<Trait>>,
24785 #[doc = "Types\n\nOne or more types of the reported finding.\n\noptional"]
24786 #[serde(rename = "types")]
24787 #[serde(skip_serializing_if = "Option::is_none")]
24788 pub types: Option<Vec<String>>,
24789 #[doc = "Unique ID\n\nThe unique identifier of the reported finding.\n\nrequired"]
24790 #[serde(rename = "uid")]
24791 #[serde(skip_serializing_if = "Option::is_none")]
24792 pub uid: Option<String>,
24793 #[doc = "Alternate ID\n\nThe alternative unique identifier of the reported finding.\n\noptional"]
24794 #[serde(rename = "uid_alt")]
24795 #[serde(skip_serializing_if = "Option::is_none")]
24796 pub uid_alt: Option<String>,
24797}
24798#[doc = "Fingerprint\n\nThe Fingerprint object provides detailed information about a digital fingerprint, which is a compact representation of data used to identify a longer piece of information, such as a public key or file content. It contains the algorithm and value of the fingerprint, enabling efficient and reliable identification of the associated data.\n\n[] Category: | Name: fingerprint"]
24799#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24800#[serde(default)]
24801#[non_exhaustive]
24802pub struct Fingerprint {
24803 #[doc = "Algorithm\n\nThe hash algorithm used to create the digital fingerprint, normalized to the caption of <code>algorithm_id</code>. In the case of <code>Other</code>, it is defined by the event source.\n\noptional"]
24804 #[serde(rename = "algorithm")]
24805 #[serde(skip_serializing_if = "Option::is_none")]
24806 pub algorithm: Option<String>,
24807 #[doc = "Algorithm ID\n\nThe identifier of the normalized hash algorithm, which was used to create the digital fingerprint.\n\nrequired"]
24808 #[serde(rename = "algorithm_id")]
24809 #[serde(skip_serializing_if = "Option::is_none")]
24810 pub algorithm_id: Option<i64>,
24811 #[doc = "Value\n\nThe digital fingerprint value.\n\nrequired"]
24812 #[serde(rename = "value")]
24813 #[serde(skip_serializing_if = "Option::is_none")]
24814 pub value: Option<String>,
24815}
24816#[doc = "Firewall Rule\n\nThe Firewall Rule object represents a specific rule within a firewall policy or event. It contains information about a rule's configuration, properties, and associated actions that define how network traffic is handled by the firewall.\n\n[] Category: | Name: firewall_rule\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24817#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24818#[serde(default)]
24819#[non_exhaustive]
24820pub struct FirewallRule {
24821 #[doc = "Category\n\nThe rule category.\n\noptional"]
24822 #[serde(rename = "category")]
24823 #[serde(skip_serializing_if = "Option::is_none")]
24824 pub category: Option<String>,
24825 #[doc = "Condition\n\nThe rule trigger condition for the rule. For example: SQL_INJECTION.\n\noptional"]
24826 #[serde(rename = "condition")]
24827 #[serde(skip_serializing_if = "Option::is_none")]
24828 pub condition: Option<String>,
24829 #[doc = "Description\n\nThe description of the rule that generated the event.\n\noptional"]
24830 #[serde(rename = "desc")]
24831 #[serde(skip_serializing_if = "Option::is_none")]
24832 pub desc: Option<String>,
24833 #[doc = "Duration Milliseconds\n\nThe rule response time duration, usually used for challenge completion time.\n\noptional"]
24834 #[serde(rename = "duration")]
24835 #[serde(skip_serializing_if = "Option::is_none")]
24836 pub duration: Option<i64>,
24837 #[doc = "Match Details\n\nThe data in a request that rule matched. For example: '[\"10\",\"and\",\"1\"]'.\n\noptional"]
24838 #[serde(rename = "match_details")]
24839 #[serde(skip_serializing_if = "Option::is_none")]
24840 pub match_details: Option<Vec<String>>,
24841 #[doc = "Match Location\n\nThe location of the matched data in the source which resulted in the triggered firewall rule. For example: HEADER.\n\noptional"]
24842 #[serde(rename = "match_location")]
24843 #[serde(skip_serializing_if = "Option::is_none")]
24844 pub match_location: Option<String>,
24845 #[doc = "Name\n\nThe name of the rule that generated the event.\n\nrecommended"]
24846 #[serde(rename = "name")]
24847 #[serde(skip_serializing_if = "Option::is_none")]
24848 pub name: Option<String>,
24849 #[doc = "Rate Limit\n\nThe rate limit for a rate-based rule.\n\noptional"]
24850 #[serde(rename = "rate_limit")]
24851 #[serde(skip_serializing_if = "Option::is_none")]
24852 pub rate_limit: Option<i64>,
24853 #[doc = "Sensitivity\n\nThe sensitivity of the firewall rule in the matched event. For example: HIGH.\n\noptional"]
24854 #[serde(rename = "sensitivity")]
24855 #[serde(skip_serializing_if = "Option::is_none")]
24856 pub sensitivity: Option<String>,
24857 #[doc = "Type\n\nThe rule type.\n\noptional"]
24858 #[serde(rename = "type")]
24859 #[serde(skip_serializing_if = "Option::is_none")]
24860 pub r#type: Option<String>,
24861 #[doc = "Unique ID\n\nThe unique identifier of the rule that generated the event.\n\nrecommended"]
24862 #[serde(rename = "uid")]
24863 #[serde(skip_serializing_if = "Option::is_none")]
24864 pub uid: Option<String>,
24865 #[doc = "Version\n\nThe rule version. For example: <code>1.1</code>.\n\noptional"]
24866 #[serde(rename = "version")]
24867 #[serde(skip_serializing_if = "Option::is_none")]
24868 pub version: Option<String>,
24869}
24870#[doc = "Function Invocation\n\nThe Function Invocation object provides details regarding the invocation of a function.\n\n[] Category: | Name: function_invocation\n\n**Constraints:**\n* at_least_one: `[parameters`,`return_value`,`error]`\n"]
24871#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24872#[serde(default)]
24873#[non_exhaustive]
24874pub struct FunctionInvocation {
24875 #[doc = "Error Code\n\nThe error indication returned from the function. This may differ from the return value (e.g. when <code>errno</code> is used).\n\noptional"]
24876 #[serde(rename = "error")]
24877 #[serde(skip_serializing_if = "Option::is_none")]
24878 pub error: Option<String>,
24879 #[doc = "Parameters\n\nThe parameters passed into a function invocation.\n\noptional"]
24880 #[serde(rename = "parameters")]
24881 #[serde(skip_serializing_if = "Option::is_none")]
24882 pub parameters: Option<Vec<Parameter>>,
24883 #[doc = "Return Value\n\nThe value returned from a function.\n\noptional"]
24884 #[serde(rename = "return_value")]
24885 #[serde(skip_serializing_if = "Option::is_none")]
24886 pub return_value: Option<String>,
24887}
24888#[doc = "Graph\n\nA graph data structure representation with nodes and edges.\n\n[] Category: | Name: graph\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24889#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24890#[serde(default)]
24891#[non_exhaustive]
24892pub struct Graph {
24893 #[doc = "Description\n\nThe graph description - provides additional details about the graph's purpose and contents.\n\noptional"]
24894 #[serde(rename = "desc")]
24895 #[serde(skip_serializing_if = "Option::is_none")]
24896 pub desc: Option<String>,
24897 #[doc = "Edges\n\nThe edges/connections between nodes in the graph - contains the collection of <code>edge</code> objects defining relationships between nodes.\n\noptional"]
24898 #[serde(rename = "edges")]
24899 #[serde(skip_serializing_if = "Option::is_none")]
24900 pub edges: Option<Vec<Edge>>,
24901 #[doc = "Directed\n\nIndicates if the graph is directed (<code>true</code>) or undirected (<code>false</code>).\n\noptional"]
24902 #[serde(rename = "is_directed")]
24903 #[serde(skip_serializing_if = "Option::is_none")]
24904 pub is_directed: Option<bool>,
24905 #[doc = "Name\n\nThe graph name - a human readable identifier for the graph.\n\nrecommended"]
24906 #[serde(rename = "name")]
24907 #[serde(skip_serializing_if = "Option::is_none")]
24908 pub name: Option<String>,
24909 #[doc = "Nodes\n\nThe nodes/vertices of the graph - contains the collection of <code>node</code> objects that make up the graph.\n\nrequired"]
24910 #[serde(rename = "nodes")]
24911 #[serde(skip_serializing_if = "Option::is_none")]
24912 pub nodes: Option<Vec<Node>>,
24913 #[doc = "Query Language\n\nThe graph query language, normalized to the caption of the <code>query_language_id</code> value.\n\noptional"]
24914 #[serde(rename = "query_language")]
24915 #[serde(skip_serializing_if = "Option::is_none")]
24916 pub query_language: Option<String>,
24917 #[doc = "Query Language ID\n\nThe normalized identifier of a graph query language that can be used to interact with the graph.\n\nrecommended"]
24918 #[serde(rename = "query_language_id")]
24919 #[serde(skip_serializing_if = "Option::is_none")]
24920 pub query_language_id: Option<i64>,
24921 #[doc = "Type\n\nThe graph type. Typically useful to represent the specific type of graph that is used.\n\noptional"]
24922 #[serde(rename = "type")]
24923 #[serde(skip_serializing_if = "Option::is_none")]
24924 pub r#type: Option<String>,
24925 #[doc = "Unique ID\n\nUnique identifier of the graph - a unique ID to reference this specific graph.\n\nrecommended"]
24926 #[serde(rename = "uid")]
24927 #[serde(skip_serializing_if = "Option::is_none")]
24928 pub uid: Option<String>,
24929}
24930#[doc = "Group\n\nThe Group object represents a collection or association of entities, such as users, policies, or devices. It serves as a logical grouping mechanism to organize and manage entities with similar characteristics or permissions within a system or organization, including but not limited to purposes of access control.\n\n[] Category: | Name: group\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
24931#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24932#[serde(default)]
24933#[non_exhaustive]
24934pub struct Group {
24935 #[doc = "Description\n\nThe group description.\n\noptional"]
24936 #[serde(rename = "desc")]
24937 #[serde(skip_serializing_if = "Option::is_none")]
24938 pub desc: Option<String>,
24939 #[doc = "Domain\n\nThe domain where the group is defined. For example: the LDAP or Active Directory domain.\n\noptional"]
24940 #[serde(rename = "domain")]
24941 #[serde(skip_serializing_if = "Option::is_none")]
24942 pub domain: Option<String>,
24943 #[doc = "Name\n\nThe group name.\n\nrecommended"]
24944 #[serde(rename = "name")]
24945 #[serde(skip_serializing_if = "Option::is_none")]
24946 pub name: Option<String>,
24947 #[doc = "Privileges\n\nThe group privileges.\n\noptional"]
24948 #[serde(rename = "privileges")]
24949 #[serde(skip_serializing_if = "Option::is_none")]
24950 pub privileges: Option<Vec<String>>,
24951 #[doc = "Account Type\n\nThe type of the group or account.\n\noptional"]
24952 #[serde(rename = "type")]
24953 #[serde(skip_serializing_if = "Option::is_none")]
24954 pub r#type: Option<String>,
24955 #[doc = "Unique ID\n\nThe unique identifier of the group. For example, for Windows events this is the security identifier (SID) of the group.\n\nrecommended"]
24956 #[serde(rename = "uid")]
24957 #[serde(skip_serializing_if = "Option::is_none")]
24958 pub uid: Option<String>,
24959}
24960#[doc = "HASSH\n\nThe HASSH object contains SSH network fingerprinting values for specific client/server implementations. It provides a standardized way of identifying and categorizing SSH connections based on their unique characteristics and behavior.\n\n[] Category: | Name: hassh"]
24961#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24962#[serde(default)]
24963#[non_exhaustive]
24964pub struct Hassh {
24965 #[doc = "Algorithm\n\nThe concatenation of key exchange, encryption, authentication and compression algorithms (separated by ';'). NOTE: This is not the underlying algorithm for the hash implementation.\n\nrecommended"]
24966 #[serde(rename = "algorithm")]
24967 #[serde(skip_serializing_if = "Option::is_none")]
24968 pub algorithm: Option<String>,
24969 #[doc = "Fingerprint\n\nThe hash of the key exchange, encryption, authentication and compression algorithms.\n\nrequired"]
24970 #[serde(rename = "fingerprint")]
24971 #[serde(skip_serializing_if = "Option::is_none")]
24972 pub fingerprint: Option<Box<Fingerprint>>,
24973}
24974#[doc = "HTTP Cookie\n\nThe HTTP Cookie object, also known as a web cookie or browser cookie, contains details and values pertaining to a small piece of data that a server sends to a user's web browser. This data is then stored by the browser and sent back to the server with subsequent requests, allowing the server to remember and track certain information about the user's browsing session or preferences.\n\n[] Category: | Name: http_cookie"]
24975#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
24976#[serde(default)]
24977#[non_exhaustive]
24978pub struct HttpCookie {
24979 #[doc = "Domain\n\nThe domain name for the server from which the http_cookie is served.\n\noptional"]
24980 #[serde(rename = "domain")]
24981 #[serde(skip_serializing_if = "Option::is_none")]
24982 pub domain: Option<String>,
24983 #[doc = "Expiration Time\n\nThe expiration time of the HTTP cookie.\n\noptional"]
24984 #[serde(rename = "expiration_time")]
24985 #[serde(skip_serializing_if = "Option::is_none")]
24986 pub expiration_time: Option<i64>,
24987 #[doc = "Expiration Time\n\nThe expiration time of the HTTP cookie.\n\noptional"]
24988 #[serde(rename = "expiration_time_dt")]
24989 #[serde(skip_serializing_if = "Option::is_none")]
24990 pub expiration_time_dt: Option<String>,
24991 #[doc = "HTTP Only\n\nA cookie attribute to make it inaccessible via JavaScript\n\noptional"]
24992 #[serde(rename = "http_only")]
24993 #[serde(skip_serializing_if = "Option::is_none")]
24994 pub http_only: Option<bool>,
24995 #[doc = "HTTP Only\n\nThis attribute prevents the cookie from being accessed via JavaScript.\n\noptional"]
24996 #[serde(rename = "is_http_only")]
24997 #[serde(skip_serializing_if = "Option::is_none")]
24998 pub is_http_only: Option<bool>,
24999 #[doc = "Secure\n\nThe cookie attribute indicates that cookies are sent to the server only when the request is encrypted using the HTTPS protocol.\n\noptional"]
25000 #[serde(rename = "is_secure")]
25001 #[serde(skip_serializing_if = "Option::is_none")]
25002 pub is_secure: Option<bool>,
25003 #[doc = "Name\n\nThe HTTP cookie name.\n\nrequired"]
25004 #[serde(rename = "name")]
25005 #[serde(skip_serializing_if = "Option::is_none")]
25006 pub name: Option<String>,
25007 #[doc = "Path\n\nThe path of the HTTP cookie.\n\noptional"]
25008 #[serde(rename = "path")]
25009 #[serde(skip_serializing_if = "Option::is_none")]
25010 pub path: Option<String>,
25011 #[doc = "SameSite\n\nThe cookie attribute that lets servers specify whether/when cookies are sent with cross-site requests. Values are: Strict, Lax or None\n\noptional"]
25012 #[serde(rename = "samesite")]
25013 #[serde(skip_serializing_if = "Option::is_none")]
25014 pub samesite: Option<String>,
25015 #[doc = "Secure\n\nThe cookie attribute to only send cookies to the server with an encrypted request over the HTTPS protocol.\n\noptional"]
25016 #[serde(rename = "secure")]
25017 #[serde(skip_serializing_if = "Option::is_none")]
25018 pub secure: Option<bool>,
25019 #[doc = "Value\n\nThe HTTP cookie value.\n\nrequired"]
25020 #[serde(rename = "value")]
25021 #[serde(skip_serializing_if = "Option::is_none")]
25022 pub value: Option<String>,
25023}
25024#[doc = "HTTP Header\n\nThe HTTP Header object represents the headers sent in an HTTP request or response. HTTP headers are key-value pairs that convey additional information about the HTTP message, including details about the content, caching, authentication, encoding, and other aspects of the communication.\n\n[] Category: | Name: http_header"]
25025#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25026#[serde(default)]
25027#[non_exhaustive]
25028pub struct HttpHeader {
25029 #[doc = "Name\n\nThe name of the HTTP header.\n\nrequired"]
25030 #[serde(rename = "name")]
25031 #[serde(skip_serializing_if = "Option::is_none")]
25032 pub name: Option<String>,
25033 #[doc = "Value\n\nThe value of the HTTP header.\n\nrequired"]
25034 #[serde(rename = "value")]
25035 #[serde(skip_serializing_if = "Option::is_none")]
25036 pub value: Option<String>,
25037}
25038#[doc = "HTTP Request\n\nThe HTTP Request object represents the attributes of a request made to a web server. It encapsulates the details and metadata associated with an HTTP request, including the request method, headers, URL, query parameters, body content, and other relevant information.\n\n[] Category: | Name: http_request"]
25039#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25040#[serde(default)]
25041#[non_exhaustive]
25042pub struct HttpRequest {
25043 #[doc = "HTTP Arguments\n\nThe arguments sent along with the HTTP request.\n\noptional"]
25044 #[serde(rename = "args")]
25045 #[serde(skip_serializing_if = "Option::is_none")]
25046 pub args: Option<String>,
25047 #[doc = "Request Body Length\n\nThe actual length of the HTTP request body, in number of bytes, independent of a potentially existing Content-Length header.\n\noptional"]
25048 #[serde(rename = "body_length")]
25049 #[serde(skip_serializing_if = "Option::is_none")]
25050 pub body_length: Option<i64>,
25051 #[doc = "HTTP Headers\n\nAdditional HTTP headers of an HTTP request or response.\n\nrecommended"]
25052 #[serde(rename = "http_headers")]
25053 #[serde(skip_serializing_if = "Option::is_none")]
25054 pub http_headers: Option<Vec<HttpHeader>>,
25055 #[doc = "HTTP Method\n\nThe <a target='_blank' href='https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods'>HTTP request method</a> indicates the desired action to be performed for a given resource.\n\nrecommended"]
25056 #[serde(rename = "http_method")]
25057 #[serde(skip_serializing_if = "Option::is_none")]
25058 pub http_method: Option<String>,
25059 #[doc = "Request Length\n\nThe length of the entire HTTP request, in number of bytes.\n\noptional"]
25060 #[serde(rename = "length")]
25061 #[serde(skip_serializing_if = "Option::is_none")]
25062 pub length: Option<i64>,
25063 #[doc = "HTTP Referrer\n\nThe request header that identifies the address of the previous web page, which is linked to the current web page or resource being requested.\n\noptional"]
25064 #[serde(rename = "referrer")]
25065 #[serde(skip_serializing_if = "Option::is_none")]
25066 pub referrer: Option<String>,
25067 #[doc = "Unique ID\n\nThe unique identifier of the http request.\n\noptional"]
25068 #[serde(rename = "uid")]
25069 #[serde(skip_serializing_if = "Option::is_none")]
25070 pub uid: Option<String>,
25071 #[doc = "URL\n\nThe URL object that pertains to the request.\n\nrecommended"]
25072 #[serde(rename = "url")]
25073 #[serde(skip_serializing_if = "Option::is_none")]
25074 pub url: Option<Box<Url>>,
25075 #[doc = "HTTP User-Agent\n\nThe request header that identifies the operating system and web browser.\n\nrecommended"]
25076 #[serde(rename = "user_agent")]
25077 #[serde(skip_serializing_if = "Option::is_none")]
25078 pub user_agent: Option<String>,
25079 #[doc = "HTTP Version\n\nThe Hypertext Transfer Protocol (HTTP) version.\n\nrecommended"]
25080 #[serde(rename = "version")]
25081 #[serde(skip_serializing_if = "Option::is_none")]
25082 pub version: Option<String>,
25083 #[doc = "X-Forwarded-For\n\nThe X-Forwarded-For header identifying the originating IP address(es) of a client connecting to a web server through an HTTP proxy or a load balancer.\n\noptional"]
25084 #[serde(rename = "x_forwarded_for")]
25085 #[serde(skip_serializing_if = "Option::is_none")]
25086 pub x_forwarded_for: Option<Vec<String>>,
25087}
25088#[doc = "HTTP Response\n\nThe HTTP Response object contains detailed information about the response sent from a web server to the requester. It encompasses attributes and metadata that describe the response status, headers, body content, and other relevant information.\n\n[] Category: | Name: http_response"]
25089#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25090#[serde(default)]
25091#[non_exhaustive]
25092pub struct HttpResponse {
25093 #[doc = "Response Body Length\n\nThe actual length of the HTTP response body, in number of bytes, independent of a potentially existing Content-Length header.\n\noptional"]
25094 #[serde(rename = "body_length")]
25095 #[serde(skip_serializing_if = "Option::is_none")]
25096 pub body_length: Option<i64>,
25097 #[doc = "Response Code\n\nThe Hypertext Transfer Protocol (HTTP) status code returned from the web server to the client. For example, 200.\n\nrequired"]
25098 #[serde(rename = "code")]
25099 #[serde(skip_serializing_if = "Option::is_none")]
25100 pub code: Option<i64>,
25101 #[doc = "HTTP Content Type\n\nThe request header that identifies the original <a target='_blank' href='https://www.iana.org/assignments/media-types/media-types.xhtml'>media type </a> of the resource (prior to any content encoding applied for sending).\n\noptional"]
25102 #[serde(rename = "content_type")]
25103 #[serde(skip_serializing_if = "Option::is_none")]
25104 pub content_type: Option<String>,
25105 #[doc = "HTTP Headers\n\nAdditional HTTP headers of an HTTP request or response.\n\nrecommended"]
25106 #[serde(rename = "http_headers")]
25107 #[serde(skip_serializing_if = "Option::is_none")]
25108 pub http_headers: Option<Vec<HttpHeader>>,
25109 #[doc = "Latency\n\nThe HTTP response latency measured in milliseconds.\n\noptional"]
25110 #[serde(rename = "latency")]
25111 #[serde(skip_serializing_if = "Option::is_none")]
25112 pub latency: Option<i64>,
25113 #[doc = "Response Length\n\nThe length of the entire HTTP response, in number of bytes.\n\noptional"]
25114 #[serde(rename = "length")]
25115 #[serde(skip_serializing_if = "Option::is_none")]
25116 pub length: Option<i64>,
25117 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\noptional"]
25118 #[serde(rename = "message")]
25119 #[serde(skip_serializing_if = "Option::is_none")]
25120 pub message: Option<String>,
25121 #[doc = "Status\n\nThe response status. For example: A successful HTTP status of 'OK' which corresponds to a code of 200.\n\noptional"]
25122 #[serde(rename = "status")]
25123 #[serde(skip_serializing_if = "Option::is_none")]
25124 pub status: Option<String>,
25125}
25126#[doc = "Identity Activity Metrics\n\nThe Identity Activity Metrics object captures usage patterns, authentication activity, credential usage and other metrics for identities across cloud and on-premises environments. Example identities include AWS IAM Users, Roles, Azure AD Principals, GCP Service Accounts, on-premises Active Directory accounts.\n\n[] Category: | Name: identity_activity_metrics"]
25127#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25128#[serde(default)]
25129#[non_exhaustive]
25130pub struct IdentityActivityMetrics {
25131 #[doc = "First Seen\n\nThe timestamp when this identity was first observed or created in the system. This helps establish the identity's age and lifecycle stage for risk assessment.\n\noptional"]
25132 #[serde(rename = "first_seen_time")]
25133 #[serde(skip_serializing_if = "Option::is_none")]
25134 pub first_seen_time: Option<i64>,
25135 #[doc = "First Seen\n\nThe timestamp when this identity was first observed or created in the system. This helps establish the identity's age and lifecycle stage for risk assessment.\n\noptional"]
25136 #[serde(rename = "first_seen_time_dt")]
25137 #[serde(skip_serializing_if = "Option::is_none")]
25138 pub first_seen_time_dt: Option<String>,
25139 #[doc = "Last Authentication Time\n\nThe timestamp when this identity last successfully authenticated to any system or service. This differs from <code>last_seen_time</code> as it specifically tracks authentication events rather than all activities.\n\noptional"]
25140 #[serde(rename = "last_authentication_time")]
25141 #[serde(skip_serializing_if = "Option::is_none")]
25142 pub last_authentication_time: Option<i64>,
25143 #[doc = "Last Authentication Time\n\nThe timestamp when this identity last successfully authenticated to any system or service. This differs from <code>last_seen_time</code> as it specifically tracks authentication events rather than all activities.\n\noptional"]
25144 #[serde(rename = "last_authentication_time_dt")]
25145 #[serde(skip_serializing_if = "Option::is_none")]
25146 pub last_authentication_time_dt: Option<String>,
25147 #[doc = "Last Seen\n\nThe timestamp of the most recent activity performed by this identity, including authentication, resource access, or API calls. This is the most comprehensive indicator of identity usage recency.\n\nrecommended"]
25148 #[serde(rename = "last_seen_time")]
25149 #[serde(skip_serializing_if = "Option::is_none")]
25150 pub last_seen_time: Option<i64>,
25151 #[doc = "Last Seen\n\nThe timestamp of the most recent activity performed by this identity, including authentication, resource access, or API calls. This is the most comprehensive indicator of identity usage recency.\n\noptional"]
25152 #[serde(rename = "last_seen_time_dt")]
25153 #[serde(skip_serializing_if = "Option::is_none")]
25154 pub last_seen_time_dt: Option<String>,
25155 #[doc = "Password Last Used Time\n\nThe timestamp when password-based authentication was last used by this identity. This helps distinguish between password and other authentication methods (MFA, SSO, certificates) and identify password-specific usage patterns.\n\noptional"]
25156 #[serde(rename = "password_last_used_time")]
25157 #[serde(skip_serializing_if = "Option::is_none")]
25158 pub password_last_used_time: Option<i64>,
25159 #[doc = "Password Last Used Time\n\nThe timestamp when password-based authentication was last used by this identity. This helps distinguish between password and other authentication methods (MFA, SSO, certificates) and identify password-specific usage patterns.\n\noptional"]
25160 #[serde(rename = "password_last_used_time_dt")]
25161 #[serde(skip_serializing_if = "Option::is_none")]
25162 pub password_last_used_time_dt: Option<String>,
25163 #[doc = "Programmatic Credentials\n\nDetails about the programmatic credentials associated with this identity, such as API keys, service account keys, access tokens, and client certificates used for automated access.\n\noptional"]
25164 #[serde(rename = "programmatic_credentials")]
25165 #[serde(skip_serializing_if = "Option::is_none")]
25166 pub programmatic_credentials: Option<Vec<ProgrammaticCredential>>,
25167}
25168#[doc = "Identity Provider\n\nThe Identity Provider object contains detailed information about a provider responsible for creating, maintaining, and managing identity information while offering authentication services to applications. An Identity Provider (IdP) serves as a trusted authority that verifies the identity of users and issues authentication tokens or assertions to enable secure access to applications or services.\n\n[] Category: | Name: idp\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25169#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25170#[serde(default)]
25171#[non_exhaustive]
25172pub struct Idp {
25173 #[doc = "Authentication Factors\n\nThe Authentication Factors object describes the different types of Multi-Factor Authentication (MFA) methods and/or devices supported by the Identity Provider.\n\noptional"]
25174 #[serde(rename = "auth_factors")]
25175 #[serde(skip_serializing_if = "Option::is_none")]
25176 pub auth_factors: Option<Vec<AuthFactor>>,
25177 #[doc = "Domain\n\nThe primary domain associated with the Identity Provider.\n\noptional"]
25178 #[serde(rename = "domain")]
25179 #[serde(skip_serializing_if = "Option::is_none")]
25180 pub domain: Option<String>,
25181 #[doc = "Certificate Fingerprint\n\nThe fingerprint of the X.509 certificate used by the Identity Provider.\n\noptional"]
25182 #[serde(rename = "fingerprint")]
25183 #[serde(skip_serializing_if = "Option::is_none")]
25184 pub fingerprint: Option<Box<Fingerprint>>,
25185 #[doc = "MFA Enforced\n\nThe Identity Provider enforces Multi Factor Authentication (MFA).\n\noptional"]
25186 #[serde(rename = "has_mfa")]
25187 #[serde(skip_serializing_if = "Option::is_none")]
25188 pub has_mfa: Option<bool>,
25189 #[doc = "Issuer Details\n\nThe unique identifier (often a URL) used by the Identity Provider as its issuer.\n\noptional"]
25190 #[serde(rename = "issuer")]
25191 #[serde(skip_serializing_if = "Option::is_none")]
25192 pub issuer: Option<String>,
25193 #[doc = "Name\n\nThe name of the Identity Provider.\n\nrecommended"]
25194 #[serde(rename = "name")]
25195 #[serde(skip_serializing_if = "Option::is_none")]
25196 pub name: Option<String>,
25197 #[doc = "Supported Protocol\n\nThe supported protocol of the Identity Provider. E.g., <code>SAML</code>, <code>OIDC</code>, or <code>OAuth2</code>.\n\noptional"]
25198 #[serde(rename = "protocol_name")]
25199 #[serde(skip_serializing_if = "Option::is_none")]
25200 pub protocol_name: Option<String>,
25201 #[doc = "SCIM\n\nThe System for Cross-domain Identity Management (SCIM) resource object provides a structured set of attributes related to SCIM protocols used for identity provisioning and management across cloud-based platforms. It standardizes user and group provisioning details, enabling identity synchronization and lifecycle management with compatible Identity Providers (IdPs) and applications. SCIM is defined in <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc7643'>RFC-7634</a>\n\noptional"]
25202 #[serde(rename = "scim")]
25203 #[serde(skip_serializing_if = "Option::is_none")]
25204 pub scim: Option<Box<Scim>>,
25205 #[doc = "SSO\n\nThe Single Sign-On (SSO) object provides a structure for normalizing SSO attributes, configuration, and/or settings from Identity Providers.\n\noptional"]
25206 #[serde(rename = "sso")]
25207 #[serde(skip_serializing_if = "Option::is_none")]
25208 pub sso: Option<Box<Sso>>,
25209 #[doc = "State\n\nThe configuration state of the Identity Provider, normalized to the caption of the <code>state_id</code> value. In the case of <code>Other</code>, it is defined by the event source.\n\noptional"]
25210 #[serde(rename = "state")]
25211 #[serde(skip_serializing_if = "Option::is_none")]
25212 pub state: Option<String>,
25213 #[doc = "State ID\n\nThe normalized state ID of the Identity Provider to reflect its configuration or activation status.\n\noptional"]
25214 #[serde(rename = "state_id")]
25215 #[serde(skip_serializing_if = "Option::is_none")]
25216 pub state_id: Option<i64>,
25217 #[doc = "Tenant UID\n\nThe tenant ID associated with the Identity Provider.\n\noptional"]
25218 #[serde(rename = "tenant_uid")]
25219 #[serde(skip_serializing_if = "Option::is_none")]
25220 pub tenant_uid: Option<String>,
25221 #[doc = "Unique ID\n\nThe unique identifier of the Identity Provider.\n\nrecommended"]
25222 #[serde(rename = "uid")]
25223 #[serde(skip_serializing_if = "Option::is_none")]
25224 pub uid: Option<String>,
25225 #[doc = "Configuration URL\n\nThe URL for accessing the configuration or metadata of the Identity Provider.\n\noptional"]
25226 #[serde(rename = "url_string")]
25227 #[serde(skip_serializing_if = "Option::is_none")]
25228 pub url_string: Option<String>,
25229}
25230#[doc = "Image\n\nThe Image object provides a description of a specific Virtual Machine (VM) or Container image.\n\n[] Category: | Name: image\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25231#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25232#[serde(default)]
25233#[non_exhaustive]
25234pub struct Image {
25235 #[doc = "Labels\n\nThe list of labels associated to the image.\n\noptional"]
25236 #[serde(rename = "labels")]
25237 #[serde(skip_serializing_if = "Option::is_none")]
25238 pub labels: Option<Vec<String>>,
25239 #[doc = "Name\n\nThe image name. For example: <code>elixir</code>.\n\nrecommended"]
25240 #[serde(rename = "name")]
25241 #[serde(skip_serializing_if = "Option::is_none")]
25242 pub name: Option<String>,
25243 #[doc = "Path\n\nThe full path to the image file.\n\noptional"]
25244 #[serde(rename = "path")]
25245 #[serde(skip_serializing_if = "Option::is_none")]
25246 pub path: Option<String>,
25247 #[doc = "Image Tag\n\nThe image tag. For example: <code>1.11-alpine</code>.\n\noptional"]
25248 #[serde(rename = "tag")]
25249 #[serde(skip_serializing_if = "Option::is_none")]
25250 pub tag: Option<String>,
25251 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the image.\n\noptional"]
25252 #[serde(rename = "tags")]
25253 #[serde(skip_serializing_if = "Option::is_none")]
25254 pub tags: Option<Vec<KeyValueObject>>,
25255 #[doc = "Unique ID\n\nThe unique image ID. For example: <code>77af4d6b9913</code>.\n\nrequired"]
25256 #[serde(rename = "uid")]
25257 #[serde(skip_serializing_if = "Option::is_none")]
25258 pub uid: Option<String>,
25259}
25260#[doc = "JA4+ Fingerprint\n\nThe JA4+ fingerprint object provides detailed fingerprint information about various aspects of network traffic which is both machine and human readable.\n\n[] Category: | Name: ja4_fingerprint"]
25261#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25262#[serde(default)]
25263#[non_exhaustive]
25264pub struct Ja4Fingerprint {
25265 #[doc = "JA4 Section A\n\nThe 'a' section of the JA4 fingerprint.\n\noptional"]
25266 #[serde(rename = "section_a")]
25267 #[serde(skip_serializing_if = "Option::is_none")]
25268 pub section_a: Option<String>,
25269 #[doc = "JA4 Section B\n\nThe 'b' section of the JA4 fingerprint.\n\noptional"]
25270 #[serde(rename = "section_b")]
25271 #[serde(skip_serializing_if = "Option::is_none")]
25272 pub section_b: Option<String>,
25273 #[doc = "JA4 Section C\n\nThe 'c' section of the JA4 fingerprint.\n\noptional"]
25274 #[serde(rename = "section_c")]
25275 #[serde(skip_serializing_if = "Option::is_none")]
25276 pub section_c: Option<String>,
25277 #[doc = "JA4 Section D\n\nThe 'd' section of the JA4 fingerprint.\n\noptional"]
25278 #[serde(rename = "section_d")]
25279 #[serde(skip_serializing_if = "Option::is_none")]
25280 pub section_d: Option<String>,
25281 #[doc = "Type\n\nThe JA4+ fingerprint type as defined by <a href='https://blog.foxio.io/ja4+-network-fingerprinting target='_blank'>FoxIO</a>, normalized to the caption of 'type_id'. In the case of 'Other', it is defined by the event source.\n\noptional"]
25282 #[serde(rename = "type")]
25283 #[serde(skip_serializing_if = "Option::is_none")]
25284 pub r#type: Option<String>,
25285 #[doc = "Type ID\n\nThe identifier of the JA4+ fingerprint type.\n\nrequired"]
25286 #[serde(rename = "type_id")]
25287 #[serde(skip_serializing_if = "Option::is_none")]
25288 pub type_id: Option<i64>,
25289 #[doc = "Value\n\nThe JA4+ fingerprint value.\n\nrequired"]
25290 #[serde(rename = "value")]
25291 #[serde(skip_serializing_if = "Option::is_none")]
25292 pub value: Option<String>,
25293}
25294#[doc = "Job\n\nThe Job object provides information about a scheduled job or task, including its name, command line, and state. It encompasses attributes that describe the properties and status of the scheduled job.\n\n[] Category: | Name: job"]
25295#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25296#[serde(default)]
25297#[non_exhaustive]
25298pub struct Job {
25299 #[doc = "Command Line\n\nThe job command line.\n\nrecommended"]
25300 #[serde(rename = "cmd_line")]
25301 #[serde(skip_serializing_if = "Option::is_none")]
25302 pub cmd_line: Option<String>,
25303 #[doc = "Created Time\n\nThe time when the job was created.\n\nrecommended"]
25304 #[serde(rename = "created_time")]
25305 #[serde(skip_serializing_if = "Option::is_none")]
25306 pub created_time: Option<i64>,
25307 #[doc = "Created Time\n\nThe time when the job was created.\n\noptional"]
25308 #[serde(rename = "created_time_dt")]
25309 #[serde(skip_serializing_if = "Option::is_none")]
25310 pub created_time_dt: Option<String>,
25311 #[doc = "Description\n\nThe description of the job.\n\nrecommended"]
25312 #[serde(rename = "desc")]
25313 #[serde(skip_serializing_if = "Option::is_none")]
25314 pub desc: Option<String>,
25315 #[doc = "File\n\nThe file that pertains to the job.\n\noptional"]
25316 #[serde(rename = "file")]
25317 #[serde(skip_serializing_if = "Option::is_none")]
25318 pub file: Option<Box<File>>,
25319 #[doc = "Last Run\n\nThe time when the job was last run.\n\nrecommended"]
25320 #[serde(rename = "last_run_time")]
25321 #[serde(skip_serializing_if = "Option::is_none")]
25322 pub last_run_time: Option<i64>,
25323 #[doc = "Last Run\n\nThe time when the job was last run.\n\noptional"]
25324 #[serde(rename = "last_run_time_dt")]
25325 #[serde(skip_serializing_if = "Option::is_none")]
25326 pub last_run_time_dt: Option<String>,
25327 #[doc = "Name\n\nThe name of the job.\n\nrequired"]
25328 #[serde(rename = "name")]
25329 #[serde(skip_serializing_if = "Option::is_none")]
25330 pub name: Option<String>,
25331 #[doc = "Next Run\n\nThe time when the job will next be run.\n\noptional"]
25332 #[serde(rename = "next_run_time")]
25333 #[serde(skip_serializing_if = "Option::is_none")]
25334 pub next_run_time: Option<i64>,
25335 #[doc = "Next Run\n\nThe time when the job will next be run.\n\noptional"]
25336 #[serde(rename = "next_run_time_dt")]
25337 #[serde(skip_serializing_if = "Option::is_none")]
25338 pub next_run_time_dt: Option<String>,
25339 #[doc = "Run State\n\nThe run state of the job.\n\noptional"]
25340 #[serde(rename = "run_state")]
25341 #[serde(skip_serializing_if = "Option::is_none")]
25342 pub run_state: Option<String>,
25343 #[doc = "Run State ID\n\nThe run state ID of the job.\n\nrecommended"]
25344 #[serde(rename = "run_state_id")]
25345 #[serde(skip_serializing_if = "Option::is_none")]
25346 pub run_state_id: Option<i64>,
25347 #[doc = "User\n\nThe user that created the job.\n\noptional"]
25348 #[serde(rename = "user")]
25349 #[serde(skip_serializing_if = "Option::is_none")]
25350 pub user: Option<Box<User>>,
25351}
25352#[doc = "KB Article\n\nThe KB Article object contains metadata that describes the patch or update.\n\n[] Category: | Name: kb_article\n\n**Constraints:**\n* at_least_one: `[uid`,`src_url]`\n"]
25353#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25354#[serde(default)]
25355#[non_exhaustive]
25356pub struct KbArticle {
25357 #[doc = "Average Timespan\n\nThe average time to patch.\n\noptional"]
25358 #[serde(rename = "avg_timespan")]
25359 #[serde(skip_serializing_if = "Option::is_none")]
25360 pub avg_timespan: Option<Box<Timespan>>,
25361 #[doc = "Patch Bulletin\n\nThe kb article bulletin identifier.\n\noptional"]
25362 #[serde(rename = "bulletin")]
25363 #[serde(skip_serializing_if = "Option::is_none")]
25364 pub bulletin: Option<String>,
25365 #[doc = "Classification\n\nThe vendors classification of the kb article.\n\noptional"]
25366 #[serde(rename = "classification")]
25367 #[serde(skip_serializing_if = "Option::is_none")]
25368 pub classification: Option<String>,
25369 #[doc = "Created Time\n\nThe date the kb article was released by the vendor.\n\noptional"]
25370 #[serde(rename = "created_time")]
25371 #[serde(skip_serializing_if = "Option::is_none")]
25372 pub created_time: Option<i64>,
25373 #[doc = "Created Time\n\nThe date the kb article was released by the vendor.\n\noptional"]
25374 #[serde(rename = "created_time_dt")]
25375 #[serde(skip_serializing_if = "Option::is_none")]
25376 pub created_time_dt: Option<String>,
25377 #[doc = "Install State\n\nThe install state of the kb article.\n\nrecommended"]
25378 #[serde(rename = "install_state")]
25379 #[serde(skip_serializing_if = "Option::is_none")]
25380 pub install_state: Option<String>,
25381 #[doc = "Install State ID\n\nThe normalized install state ID of the kb article.\n\nrecommended"]
25382 #[serde(rename = "install_state_id")]
25383 #[serde(skip_serializing_if = "Option::is_none")]
25384 pub install_state_id: Option<i64>,
25385 #[doc = "The patch is superseded.\n\nThe kb article has been replaced by another.\n\noptional"]
25386 #[serde(rename = "is_superseded")]
25387 #[serde(skip_serializing_if = "Option::is_none")]
25388 pub is_superseded: Option<bool>,
25389 #[doc = "OS\n\nThe operating system the kb article applies.\n\nrecommended"]
25390 #[serde(rename = "os")]
25391 #[serde(skip_serializing_if = "Option::is_none")]
25392 pub os: Option<Box<Os>>,
25393 #[doc = "Product\n\nThe product details the kb article applies.\n\noptional"]
25394 #[serde(rename = "product")]
25395 #[serde(skip_serializing_if = "Option::is_none")]
25396 pub product: Option<Box<Product>>,
25397 #[doc = "Severity\n\nThe severity of the kb article.\n\nrecommended"]
25398 #[serde(rename = "severity")]
25399 #[serde(skip_serializing_if = "Option::is_none")]
25400 pub severity: Option<String>,
25401 #[doc = "Size\n\nThe size in bytes for the kb article.\n\noptional"]
25402 #[serde(rename = "size")]
25403 #[serde(skip_serializing_if = "Option::is_none")]
25404 pub size: Option<i64>,
25405 #[doc = "Source URL\n\nThe kb article link from the source vendor.\n\noptional"]
25406 #[serde(rename = "src_url")]
25407 #[serde(skip_serializing_if = "Option::is_none")]
25408 pub src_url: Option<String>,
25409 #[doc = "Title\n\nThe title of the kb article.\n\nrecommended"]
25410 #[serde(rename = "title")]
25411 #[serde(skip_serializing_if = "Option::is_none")]
25412 pub title: Option<String>,
25413 #[doc = "Unique ID\n\nThe unique identifier for the kb article.\n\nrecommended"]
25414 #[serde(rename = "uid")]
25415 #[serde(skip_serializing_if = "Option::is_none")]
25416 pub uid: Option<String>,
25417}
25418#[doc = "Kernel Resource\n\nThe Kernel Resource object provides information about a specific kernel resource, including its name and type. It describes essential attributes associated with a resource managed by the kernel of an operating system.\n\n[] Category: | Name: kernel"]
25419#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25420#[serde(default)]
25421#[non_exhaustive]
25422pub struct Kernel {
25423 #[doc = "System\n\nThe indication of whether the object is part of the operating system.\n\noptional"]
25424 #[serde(rename = "is_system")]
25425 #[serde(skip_serializing_if = "Option::is_none")]
25426 pub is_system: Option<bool>,
25427 #[doc = "Name\n\nThe name of the kernel resource.\n\nrequired"]
25428 #[serde(rename = "name")]
25429 #[serde(skip_serializing_if = "Option::is_none")]
25430 pub name: Option<String>,
25431 #[doc = "Path\n\nThe full path of the kernel resource.\n\noptional"]
25432 #[serde(rename = "path")]
25433 #[serde(skip_serializing_if = "Option::is_none")]
25434 pub path: Option<String>,
25435 #[doc = "System Call\n\nThe system call that was invoked.\n\noptional"]
25436 #[serde(rename = "system_call")]
25437 #[serde(skip_serializing_if = "Option::is_none")]
25438 pub system_call: Option<String>,
25439 #[doc = "Type\n\nThe type of the kernel resource.\n\noptional"]
25440 #[serde(rename = "type")]
25441 #[serde(skip_serializing_if = "Option::is_none")]
25442 pub r#type: Option<String>,
25443 #[doc = "Type ID\n\nThe type of the kernel resource.\n\nrequired"]
25444 #[serde(rename = "type_id")]
25445 #[serde(skip_serializing_if = "Option::is_none")]
25446 pub type_id: Option<i64>,
25447}
25448#[doc = "Kernel Extension\n\nThe Kernel Extension object describes a kernel driver that has been loaded or unloaded into the operating system (OS) kernel.\n\n[] Category: | Name: kernel_driver"]
25449#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25450#[serde(default)]
25451#[non_exhaustive]
25452pub struct KernelDriver {
25453 #[doc = "File\n\nThe driver/extension file object.\n\nrequired"]
25454 #[serde(rename = "file")]
25455 #[serde(skip_serializing_if = "Option::is_none")]
25456 pub file: Option<Box<File>>,
25457}
25458#[doc = "Key:Value object\n\nA generic object allowing to define a <code>{key:value}</code> pair.\n\n[] Category: | Name: key_value_object\n\n**Constraints:**\n* at_least_one: `[value`,`values]`\n"]
25459#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25460#[serde(default)]
25461#[non_exhaustive]
25462pub struct KeyValueObject {
25463 #[doc = "Name\n\nThe name of the key.\n\nrequired"]
25464 #[serde(rename = "name")]
25465 #[serde(skip_serializing_if = "Option::is_none")]
25466 pub name: Option<String>,
25467 #[doc = "Value\n\nThe value associated to the key.\n\nrecommended"]
25468 #[serde(rename = "value")]
25469 #[serde(skip_serializing_if = "Option::is_none")]
25470 pub value: Option<String>,
25471 #[doc = "Values\n\nOptional, the values associated to the key. You can populate this attribute, when you have multiple values for the same key.\n\nrecommended"]
25472 #[serde(rename = "values")]
25473 #[serde(skip_serializing_if = "Option::is_none")]
25474 pub values: Option<Vec<String>>,
25475}
25476#[doc = "Keyboard Information\n\nThe Keyboard Information object contains details and attributes related to a computer or device keyboard. It encompasses information that describes the characteristics, capabilities, and configuration of the keyboard.\n\n[] Category: | Name: keyboard_info"]
25477#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25478#[serde(default)]
25479#[non_exhaustive]
25480pub struct KeyboardInfo {
25481 #[doc = "Function Keys\n\nThe number of function keys on client keyboard.\n\noptional"]
25482 #[serde(rename = "function_keys")]
25483 #[serde(skip_serializing_if = "Option::is_none")]
25484 pub function_keys: Option<i64>,
25485 #[doc = "IME\n\nThe Input Method Editor (IME) file name.\n\noptional"]
25486 #[serde(rename = "ime")]
25487 #[serde(skip_serializing_if = "Option::is_none")]
25488 pub ime: Option<String>,
25489 #[doc = "Keyboard Layout\n\nThe keyboard locale identifier name (e.g., en-US).\n\noptional"]
25490 #[serde(rename = "keyboard_layout")]
25491 #[serde(skip_serializing_if = "Option::is_none")]
25492 pub keyboard_layout: Option<String>,
25493 #[doc = "Keyboard Subtype\n\nThe keyboard numeric code.\n\noptional"]
25494 #[serde(rename = "keyboard_subtype")]
25495 #[serde(skip_serializing_if = "Option::is_none")]
25496 pub keyboard_subtype: Option<i64>,
25497 #[doc = "Keyboard Type\n\nThe keyboard type (e.g., xt, ico).\n\noptional"]
25498 #[serde(rename = "keyboard_type")]
25499 #[serde(skip_serializing_if = "Option::is_none")]
25500 pub keyboard_type: Option<String>,
25501}
25502#[doc = "Kill Chain Phase\n\nThe Kill Chain Phase object represents a single phase of a cyber attack, including the initial reconnaissance and planning stages up to the final objective of the attacker. It provides a detailed description of each phase and its associated activities within the broader context of a cyber attack. See <a target='_blank' href='https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html'>Cyber Kill Chain®</a>.\n\n[] Category: | Name: kill_chain_phase"]
25503#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25504#[serde(default)]
25505#[non_exhaustive]
25506pub struct KillChainPhase {
25507 #[doc = "Kill Chain Phase\n\nThe cyber kill chain phase.\n\nrecommended"]
25508 #[serde(rename = "phase")]
25509 #[serde(skip_serializing_if = "Option::is_none")]
25510 pub phase: Option<String>,
25511 #[doc = "Kill Chain Phase ID\n\nThe cyber kill chain phase identifier.\n\nrequired"]
25512 #[serde(rename = "phase_id")]
25513 #[serde(skip_serializing_if = "Option::is_none")]
25514 pub phase_id: Option<i64>,
25515}
25516#[doc = "LDAP Person\n\nThe additional LDAP attributes that describe a person.\n\n[] Category: | Name: ldap_person"]
25517#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25518#[serde(default)]
25519#[non_exhaustive]
25520pub struct LdapPerson {
25521 #[doc = "Cost Center\n\nThe cost center associated with the user.\n\noptional"]
25522 #[serde(rename = "cost_center")]
25523 #[serde(skip_serializing_if = "Option::is_none")]
25524 pub cost_center: Option<String>,
25525 #[doc = "Created Time\n\nThe timestamp when the user was created.\n\noptional"]
25526 #[serde(rename = "created_time")]
25527 #[serde(skip_serializing_if = "Option::is_none")]
25528 pub created_time: Option<i64>,
25529 #[doc = "Created Time\n\nThe timestamp when the user was created.\n\noptional"]
25530 #[serde(rename = "created_time_dt")]
25531 #[serde(skip_serializing_if = "Option::is_none")]
25532 pub created_time_dt: Option<String>,
25533 #[doc = "Deleted Time\n\nThe timestamp when the user was deleted. In Active Directory (AD), when a user is deleted they are moved to a temporary container and then removed after 30 days. So, this field can be populated even after a user is deleted for the next 30 days.\n\noptional"]
25534 #[serde(rename = "deleted_time")]
25535 #[serde(skip_serializing_if = "Option::is_none")]
25536 pub deleted_time: Option<i64>,
25537 #[doc = "Deleted Time\n\nThe timestamp when the user was deleted. In Active Directory (AD), when a user is deleted they are moved to a temporary container and then removed after 30 days. So, this field can be populated even after a user is deleted for the next 30 days.\n\noptional"]
25538 #[serde(rename = "deleted_time_dt")]
25539 #[serde(skip_serializing_if = "Option::is_none")]
25540 pub deleted_time_dt: Option<String>,
25541 #[doc = "Display Name\n\nThe display name of the LDAP person. According to RFC 2798, this is the preferred name of a person to be used when displaying entries.\n\noptional"]
25542 #[serde(rename = "display_name")]
25543 #[serde(skip_serializing_if = "Option::is_none")]
25544 pub display_name: Option<String>,
25545 #[doc = "Email Addresses\n\nA list of additional email addresses for the user.\n\noptional"]
25546 #[serde(rename = "email_addrs")]
25547 #[serde(skip_serializing_if = "Option::is_none")]
25548 pub email_addrs: Option<Vec<String>>,
25549 #[doc = "Employee ID\n\nThe employee identifier assigned to the user by the organization.\n\noptional"]
25550 #[serde(rename = "employee_uid")]
25551 #[serde(skip_serializing_if = "Option::is_none")]
25552 pub employee_uid: Option<String>,
25553 #[doc = "Given Name\n\nThe given or first name of the user.\n\noptional"]
25554 #[serde(rename = "given_name")]
25555 #[serde(skip_serializing_if = "Option::is_none")]
25556 pub given_name: Option<String>,
25557 #[doc = "Hire Time\n\nThe timestamp when the user was or will be hired by the organization.\n\noptional"]
25558 #[serde(rename = "hire_time")]
25559 #[serde(skip_serializing_if = "Option::is_none")]
25560 pub hire_time: Option<i64>,
25561 #[doc = "Hire Time\n\nThe timestamp when the user was or will be hired by the organization.\n\noptional"]
25562 #[serde(rename = "hire_time_dt")]
25563 #[serde(skip_serializing_if = "Option::is_none")]
25564 pub hire_time_dt: Option<String>,
25565 #[doc = "Job Title\n\nThe user's job title.\n\noptional"]
25566 #[serde(rename = "job_title")]
25567 #[serde(skip_serializing_if = "Option::is_none")]
25568 pub job_title: Option<String>,
25569 #[doc = "Labels\n\nThe labels associated with the user. For example in AD this could be the <code>userType</code>, <code>employeeType</code>. For example: <code>Member, Employee</code>.\n\noptional"]
25570 #[serde(rename = "labels")]
25571 #[serde(skip_serializing_if = "Option::is_none")]
25572 pub labels: Option<Vec<String>>,
25573 #[doc = "Last Login\n\nThe last time when the user logged in.\n\noptional"]
25574 #[serde(rename = "last_login_time")]
25575 #[serde(skip_serializing_if = "Option::is_none")]
25576 pub last_login_time: Option<i64>,
25577 #[doc = "Last Login\n\nThe last time when the user logged in.\n\noptional"]
25578 #[serde(rename = "last_login_time_dt")]
25579 #[serde(skip_serializing_if = "Option::is_none")]
25580 pub last_login_time_dt: Option<String>,
25581 #[doc = "LDAP Common Name\n\nThe LDAP and X.500 <code>commonName</code> attribute, typically the full name of the person. For example, <code>John Doe</code>.\n\noptional"]
25582 #[serde(rename = "ldap_cn")]
25583 #[serde(skip_serializing_if = "Option::is_none")]
25584 pub ldap_cn: Option<String>,
25585 #[doc = "LDAP Distinguished Name\n\nThe X.500 Distinguished Name (DN) is a structured string that uniquely identifies an entry, such as a user, in an X.500 directory service For example, <code>cn=John Doe,ou=People,dc=example,dc=com</code>.\n\noptional"]
25586 #[serde(rename = "ldap_dn")]
25587 #[serde(skip_serializing_if = "Option::is_none")]
25588 pub ldap_dn: Option<String>,
25589 #[doc = "Leave Time\n\nThe timestamp when the user left or will be leaving the organization.\n\noptional"]
25590 #[serde(rename = "leave_time")]
25591 #[serde(skip_serializing_if = "Option::is_none")]
25592 pub leave_time: Option<i64>,
25593 #[doc = "Leave Time\n\nThe timestamp when the user left or will be leaving the organization.\n\noptional"]
25594 #[serde(rename = "leave_time_dt")]
25595 #[serde(skip_serializing_if = "Option::is_none")]
25596 pub leave_time_dt: Option<String>,
25597 #[doc = "Geo Location\n\nThe geographical location associated with a user. This is typically the user's usual work location.\n\noptional"]
25598 #[serde(rename = "location")]
25599 #[serde(skip_serializing_if = "Option::is_none")]
25600 pub location: Option<Box<Location>>,
25601 #[doc = "Manager\n\nThe user's manager. This helps in understanding an org hierarchy. This should only ever be populated once in an event. I.e. there should not be a manager's manager in an event.\n\noptional"]
25602 #[serde(rename = "manager")]
25603 #[serde(skip_serializing_if = "Option::is_none")]
25604 pub manager: Option<Box<User>>,
25605 #[doc = "Modified Time\n\nThe timestamp when the user entry was last modified.\n\noptional"]
25606 #[serde(rename = "modified_time")]
25607 #[serde(skip_serializing_if = "Option::is_none")]
25608 pub modified_time: Option<i64>,
25609 #[doc = "Modified Time\n\nThe timestamp when the user entry was last modified.\n\noptional"]
25610 #[serde(rename = "modified_time_dt")]
25611 #[serde(skip_serializing_if = "Option::is_none")]
25612 pub modified_time_dt: Option<String>,
25613 #[doc = "Office Location\n\nThe primary office location associated with the user. This could be any string and isn't a specific address. For example, <code>South East Virtual</code>.\n\noptional"]
25614 #[serde(rename = "office_location")]
25615 #[serde(skip_serializing_if = "Option::is_none")]
25616 pub office_location: Option<String>,
25617 #[doc = "Telephone Number\n\nThe telephone number of the user. Corresponds to the LDAP <code>Telephone-Number</code> CN.\n\noptional"]
25618 #[serde(rename = "phone_number")]
25619 #[serde(skip_serializing_if = "Option::is_none")]
25620 pub phone_number: Option<String>,
25621 #[doc = "Surname\n\nThe last or family name for the user.\n\noptional"]
25622 #[serde(rename = "surname")]
25623 #[serde(skip_serializing_if = "Option::is_none")]
25624 pub surname: Option<String>,
25625 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the user.\n\noptional"]
25626 #[serde(rename = "tags")]
25627 #[serde(skip_serializing_if = "Option::is_none")]
25628 pub tags: Option<Vec<KeyValueObject>>,
25629}
25630#[doc = "Load Balancer\n\nThe load balancer object describes the load balancer entity and contains additional information regarding the distribution of traffic across a network.\n\n[] Category: | Name: load_balancer\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25631#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25632#[serde(default)]
25633#[non_exhaustive]
25634pub struct LoadBalancer {
25635 #[doc = "Classification\n\nThe request classification as defined by the load balancer.\n\noptional"]
25636 #[serde(rename = "classification")]
25637 #[serde(skip_serializing_if = "Option::is_none")]
25638 pub classification: Option<String>,
25639 #[doc = "Response Code\n\nThe numeric response status code detailing the connection from the load balancer to the destination target.\n\nrecommended"]
25640 #[serde(rename = "code")]
25641 #[serde(skip_serializing_if = "Option::is_none")]
25642 pub code: Option<i64>,
25643 #[doc = "Destination Endpoint\n\nThe destination to which the load balancer is distributing traffic.\n\nrecommended"]
25644 #[serde(rename = "dst_endpoint")]
25645 #[serde(skip_serializing_if = "Option::is_none")]
25646 pub dst_endpoint: Option<Box<NetworkEndpoint>>,
25647 #[doc = "Endpoint Connections\n\nAn object detailing the load balancer connection attempts and responses.\n\nrecommended"]
25648 #[serde(rename = "endpoint_connections")]
25649 #[serde(skip_serializing_if = "Option::is_none")]
25650 pub endpoint_connections: Option<Vec<EndpointConnection>>,
25651 #[doc = "Error Message\n\nThe load balancer error message.\n\noptional"]
25652 #[serde(rename = "error_message")]
25653 #[serde(skip_serializing_if = "Option::is_none")]
25654 pub error_message: Option<String>,
25655 #[doc = "IP Address\n\nThe IP address of the load balancer node that handled the client request. Note: the load balancer may have other IP addresses, and this is not an IP address of the target/distribution endpoint - see <code>dst_endpoint</code>.\n\noptional"]
25656 #[serde(rename = "ip")]
25657 #[serde(skip_serializing_if = "Option::is_none")]
25658 pub ip: Option<String>,
25659 #[doc = "Message\n\nThe load balancer message.\n\noptional"]
25660 #[serde(rename = "message")]
25661 #[serde(skip_serializing_if = "Option::is_none")]
25662 pub message: Option<String>,
25663 #[doc = "Metrics\n\nGeneral purpose metrics associated with the load balancer.\n\noptional"]
25664 #[serde(rename = "metrics")]
25665 #[serde(skip_serializing_if = "Option::is_none")]
25666 pub metrics: Option<Vec<Metric>>,
25667 #[doc = "Name\n\nThe name of the load balancer.\n\nrecommended"]
25668 #[serde(rename = "name")]
25669 #[serde(skip_serializing_if = "Option::is_none")]
25670 pub name: Option<String>,
25671 #[doc = "Status Detail\n\nThe status detail contains additional status information about the load balancer distribution event.\n\noptional"]
25672 #[serde(rename = "status_detail")]
25673 #[serde(skip_serializing_if = "Option::is_none")]
25674 pub status_detail: Option<String>,
25675 #[doc = "Unique ID\n\nThe unique identifier for the load balancer.\n\nrecommended"]
25676 #[serde(rename = "uid")]
25677 #[serde(skip_serializing_if = "Option::is_none")]
25678 pub uid: Option<String>,
25679}
25680#[doc = "Geo Location\n\nThe Geo Location object describes a geographical location, usually associated with an IP address.\n\n[] Category: | Name: location\n\n**Constraints:**\n* at_least_one: `[city`,`country`,`postal_code`,`region]`\n"]
25681#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25682#[serde(default)]
25683#[non_exhaustive]
25684pub struct Location {
25685 #[doc = "Aerial Height\n\nExpressed as either height above takeoff location or height above ground level (AGL) for a UAS current location. This value is provided in meters and must have a minimum resolution of 1 m. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
25686 #[serde(rename = "aerial_height")]
25687 #[serde(skip_serializing_if = "Option::is_none")]
25688 pub aerial_height: Option<String>,
25689 #[doc = "City\n\nThe name of the city.\n\nrecommended"]
25690 #[serde(rename = "city")]
25691 #[serde(skip_serializing_if = "Option::is_none")]
25692 pub city: Option<String>,
25693 #[doc = "Continent\n\nThe name of the continent.\n\nrecommended"]
25694 #[serde(rename = "continent")]
25695 #[serde(skip_serializing_if = "Option::is_none")]
25696 pub continent: Option<String>,
25697 #[doc = "Coordinates\n\nA two-element array, containing a longitude/latitude pair. The format conforms with <a target='_blank' href='https://geojson.org'>GeoJSON</a>. For example: <code>[-73.983, 40.719]</code>.\n\noptional"]
25698 #[serde(rename = "coordinates")]
25699 #[serde(skip_serializing_if = "Option::is_none")]
25700 pub coordinates: Option<Vec<f64>>,
25701 #[doc = "Country\n\nThe ISO 3166-1 Alpha-2 country code.<p><b>Note:</b> The two letter country code should be capitalized. For example: <code>US</code> or <code>CA</code>.</p>\n\nrecommended"]
25702 #[serde(rename = "country")]
25703 #[serde(skip_serializing_if = "Option::is_none")]
25704 pub country: Option<String>,
25705 #[doc = "Description\n\nThe description of the geographical location.\n\noptional"]
25706 #[serde(rename = "desc")]
25707 #[serde(skip_serializing_if = "Option::is_none")]
25708 pub desc: Option<String>,
25709 #[doc = "Geodetic Altitude\n\nThe aircraft distance above or below the ellipsoid as measured along a line that passes through the aircraft and is normal to the surface of the WGS-84 ellipsoid. This value is provided in meters and must have a minimum resolution of 1 m. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
25710 #[serde(rename = "geodetic_altitude")]
25711 #[serde(skip_serializing_if = "Option::is_none")]
25712 pub geodetic_altitude: Option<String>,
25713 #[doc = "Geodetic Vertical Accuracy\n\nProvides quality/containment on geodetic altitude. This is based on ADS-B Geodetic Vertical Accuracy (GVA). Measured in meters.\n\noptional"]
25714 #[serde(rename = "geodetic_vertical_accuracy")]
25715 #[serde(skip_serializing_if = "Option::is_none")]
25716 pub geodetic_vertical_accuracy: Option<String>,
25717 #[doc = "Geohash\n\n<p>Geohash of the geo-coordinates (latitude and longitude).</p><a target='_blank' href='https://en.wikipedia.org/wiki/Geohash'>Geohashing</a> is a geocoding system used to encode geographic coordinates in decimal degrees, to a single string.\n\noptional"]
25718 #[serde(rename = "geohash")]
25719 #[serde(skip_serializing_if = "Option::is_none")]
25720 pub geohash: Option<String>,
25721 #[doc = "Horizontal Accuracy\n\nProvides quality/containment on horizontal position. This is based on ADS-B NACp. Measured in meters.\n\noptional"]
25722 #[serde(rename = "horizontal_accuracy")]
25723 #[serde(skip_serializing_if = "Option::is_none")]
25724 pub horizontal_accuracy: Option<String>,
25725 #[doc = "On Premises\n\nThe indication of whether the location is on premises.\n\noptional"]
25726 #[serde(rename = "is_on_premises")]
25727 #[serde(skip_serializing_if = "Option::is_none")]
25728 pub is_on_premises: Option<bool>,
25729 #[doc = "ISP Name\n\nThe name of the Internet Service Provider (ISP).\n\noptional"]
25730 #[serde(rename = "isp")]
25731 #[serde(skip_serializing_if = "Option::is_none")]
25732 pub isp: Option<String>,
25733 #[doc = "Latitude\n\nThe geographical Latitude coordinate represented in Decimal Degrees (DD). For example: <code>42.361145</code>.\n\noptional"]
25734 #[serde(rename = "lat")]
25735 #[serde(skip_serializing_if = "Option::is_none")]
25736 pub lat: Option<f64>,
25737 #[doc = "Longitude\n\nThe geographical Longitude coordinate represented in Decimal Degrees (DD). For example: <code>-71.057083</code>.\n\noptional"]
25738 #[serde(rename = "long")]
25739 #[serde(skip_serializing_if = "Option::is_none")]
25740 pub long: Option<f64>,
25741 #[doc = "Postal Code\n\nThe postal code of the location.\n\noptional"]
25742 #[serde(rename = "postal_code")]
25743 #[serde(skip_serializing_if = "Option::is_none")]
25744 pub postal_code: Option<String>,
25745 #[doc = "Pressure Altitude\n\nThe uncorrected barometric pressure altitude (based on reference standard 29.92 inHg, 1013.25 mb) provides a reference for algorithms that utilize 'altitude deltas' between aircraft. This value is provided in meters and must have a minimum resolution of 1 m.. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
25746 #[serde(rename = "pressure_altitude")]
25747 #[serde(skip_serializing_if = "Option::is_none")]
25748 pub pressure_altitude: Option<String>,
25749 #[doc = "Provider\n\nThe provider of the geographical location data.\n\noptional"]
25750 #[serde(rename = "provider")]
25751 #[serde(skip_serializing_if = "Option::is_none")]
25752 pub provider: Option<String>,
25753 #[doc = "Region\n\nThe alphanumeric code that identifies the principal subdivision (e.g. province or state) of the country. For example, 'CH-VD' for the Canton of Vaud, Switzerland\n\noptional"]
25754 #[serde(rename = "region")]
25755 #[serde(skip_serializing_if = "Option::is_none")]
25756 pub region: Option<String>,
25757}
25758#[doc = "Logger\n\nThe Logger object represents the device and product where events are stored with times for receipt and transmission. This may be at the source device where the event occurred, a remote scanning device, intermediate hops, or the ultimate destination.\n\n[] Category: | Name: logger\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25759#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25760#[serde(default)]
25761#[non_exhaustive]
25762pub struct Logger {
25763 #[doc = "Device\n\nThe device where the events are logged.\n\nrecommended"]
25764 #[serde(rename = "device")]
25765 #[serde(skip_serializing_if = "Option::is_none")]
25766 pub device: Option<Box<Device>>,
25767 #[doc = "Event UID\n\nThe unique identifier of the event assigned by the logger.\n\noptional"]
25768 #[serde(rename = "event_uid")]
25769 #[serde(skip_serializing_if = "Option::is_none")]
25770 pub event_uid: Option<String>,
25771 #[doc = "Is Truncated\n\nIndicates whether the OCSF event data has been truncated due to size limitations. When <code>true</code>, some event data may have been omitted to fit within system constraints.\n\noptional"]
25772 #[serde(rename = "is_truncated")]
25773 #[serde(skip_serializing_if = "Option::is_none")]
25774 pub is_truncated: Option<bool>,
25775 #[doc = "Log Format\n\nThe format of data in the log. For example JSON, syslog or CSV.\n\noptional"]
25776 #[serde(rename = "log_format")]
25777 #[serde(skip_serializing_if = "Option::is_none")]
25778 pub log_format: Option<String>,
25779 #[doc = "Log Level\n\nThe level at which an event was logged. This can be log provider specific. For example the audit level.\n\noptional"]
25780 #[serde(rename = "log_level")]
25781 #[serde(skip_serializing_if = "Option::is_none")]
25782 pub log_level: Option<String>,
25783 #[doc = "Log Name\n\nThe log name for the logging provider log, or the file name of the system log. This may be an intermediate store-and-forward log or a vendor destination log. For example /archive/server1/var/log/messages.0 or /var/log/.\n\nrecommended"]
25784 #[serde(rename = "log_name")]
25785 #[serde(skip_serializing_if = "Option::is_none")]
25786 pub log_name: Option<String>,
25787 #[doc = "Log Provider\n\nThe logging provider or logging service that logged the event. This may be an intermediate application store-and-forward log or a vendor destination log.\n\nrecommended"]
25788 #[serde(rename = "log_provider")]
25789 #[serde(skip_serializing_if = "Option::is_none")]
25790 pub log_provider: Option<String>,
25791 #[doc = "Log Version\n\nThe event log schema version of the original event. For example the syslog version or the Cisco Log Schema version\n\noptional"]
25792 #[serde(rename = "log_version")]
25793 #[serde(skip_serializing_if = "Option::is_none")]
25794 pub log_version: Option<String>,
25795 #[doc = "Logged Time\n\n<p>The time when the logging system collected and logged the event.</p>This attribute is distinct from the event time in that event time typically contain the time extracted from the original event. Most of the time, these two times will be different.\n\nrecommended"]
25796 #[serde(rename = "logged_time")]
25797 #[serde(skip_serializing_if = "Option::is_none")]
25798 pub logged_time: Option<i64>,
25799 #[doc = "Logged Time\n\n<p>The time when the logging system collected and logged the event.</p>This attribute is distinct from the event time in that event time typically contain the time extracted from the original event. Most of the time, these two times will be different.\n\noptional"]
25800 #[serde(rename = "logged_time_dt")]
25801 #[serde(skip_serializing_if = "Option::is_none")]
25802 pub logged_time_dt: Option<String>,
25803 #[doc = "Name\n\nThe name of the logging product instance.\n\nrecommended"]
25804 #[serde(rename = "name")]
25805 #[serde(skip_serializing_if = "Option::is_none")]
25806 pub name: Option<String>,
25807 #[doc = "Product\n\nThe product logging the event. This may be the event source product, a management server product, a scanning product, a SIEM, etc.\n\nrecommended"]
25808 #[serde(rename = "product")]
25809 #[serde(skip_serializing_if = "Option::is_none")]
25810 pub product: Option<Box<Product>>,
25811 #[doc = "Transmission Time\n\nThe time when the event was transmitted from the logging device to it's next destination.\n\nrecommended"]
25812 #[serde(rename = "transmit_time")]
25813 #[serde(skip_serializing_if = "Option::is_none")]
25814 pub transmit_time: Option<i64>,
25815 #[doc = "Transmission Time\n\nThe time when the event was transmitted from the logging device to it's next destination.\n\noptional"]
25816 #[serde(rename = "transmit_time_dt")]
25817 #[serde(skip_serializing_if = "Option::is_none")]
25818 pub transmit_time_dt: Option<String>,
25819 #[doc = "Unique ID\n\nThe unique identifier of the logging product instance.\n\nrecommended"]
25820 #[serde(rename = "uid")]
25821 #[serde(skip_serializing_if = "Option::is_none")]
25822 pub uid: Option<String>,
25823 #[doc = "Untruncated Size\n\nThe original size of the OCSF event data in kilobytes before any truncation occurred. This field is typically populated when <code>is_truncated</code> is <code>true</code> to indicate the full size of the original event.\n\noptional"]
25824 #[serde(rename = "untruncated_size")]
25825 #[serde(skip_serializing_if = "Option::is_none")]
25826 pub untruncated_size: Option<i64>,
25827 #[doc = "Version\n\nThe version of the logging provider.\n\noptional"]
25828 #[serde(rename = "version")]
25829 #[serde(skip_serializing_if = "Option::is_none")]
25830 pub version: Option<String>,
25831}
25832#[doc = "Long String\n\nThis object is a used to capture strings which may be truncated by a security product due to their length.\n\n[] Category: | Name: long_string"]
25833#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25834#[serde(default)]
25835#[non_exhaustive]
25836pub struct LongString {
25837 #[doc = "Is Truncated\n\nIndicates that <code>value</code> has been truncated. May be omitted if truncation has not occurred.\n\noptional"]
25838 #[serde(rename = "is_truncated")]
25839 #[serde(skip_serializing_if = "Option::is_none")]
25840 pub is_truncated: Option<bool>,
25841 #[doc = "Untruncated Size\n\nThe size in bytes of the string represented by <code>value</code> before truncation. Should be omitted if truncation has not occurred.\n\noptional"]
25842 #[serde(rename = "untruncated_size")]
25843 #[serde(skip_serializing_if = "Option::is_none")]
25844 pub untruncated_size: Option<i64>,
25845 #[doc = "Value\n\nThe string value, truncated if <code>is_truncated</code> is <code>true</code>.\n\nrequired"]
25846 #[serde(rename = "value")]
25847 #[serde(skip_serializing_if = "Option::is_none")]
25848 pub value: Option<String>,
25849}
25850#[doc = "Malware\n\nThe Malware object describes the classification of known malicious software, which is intentionally designed to cause damage to a computer, server, client, or computer network.\n\n[] Category: | Name: malware\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25851#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25852#[serde(default)]
25853#[non_exhaustive]
25854pub struct Malware {
25855 #[doc = "Classification IDs\n\nThe list of normalized identifiers of the malware classifications.\n\nrequired"]
25856 #[serde(rename = "classification_ids")]
25857 #[serde(skip_serializing_if = "Option::is_none")]
25858 pub classification_ids: Option<Vec<i64>>,
25859 #[doc = "Classifications\n\nThe list of malware classifications, normalized to the captions of the <code>classification_ids</code> values. In the case of 'Other', they are defined by the event source.\n\noptional"]
25860 #[serde(rename = "classifications")]
25861 #[serde(skip_serializing_if = "Option::is_none")]
25862 pub classifications: Option<Vec<String>>,
25863 #[doc = "CVE List\n\nThe list of Common Vulnerabilities and Exposures (CVE) identifiers associated with the malware. Reference: <a target='_blank' href='https://cve.mitre.org/'>CVE</a>\n\noptional"]
25864 #[serde(rename = "cves")]
25865 #[serde(skip_serializing_if = "Option::is_none")]
25866 pub cves: Option<Vec<Cve>>,
25867 #[doc = "Files\n\nThe list of file objects representing files that were identified as infected by the malware.\n\noptional"]
25868 #[serde(rename = "files")]
25869 #[serde(skip_serializing_if = "Option::is_none")]
25870 pub files: Option<Vec<File>>,
25871 #[doc = "Name\n\nThe malware name, as reported by the detection engine.\n\nrecommended"]
25872 #[serde(rename = "name")]
25873 #[serde(skip_serializing_if = "Option::is_none")]
25874 pub name: Option<String>,
25875 #[doc = "Number of Infected Entities\n\nThe number of files that were identified to be infected by the malware.\n\noptional"]
25876 #[serde(rename = "num_infected")]
25877 #[serde(skip_serializing_if = "Option::is_none")]
25878 pub num_infected: Option<i64>,
25879 #[doc = "Path\n\nThe filesystem path of the malware that was observed.\n\nrecommended"]
25880 #[serde(rename = "path")]
25881 #[serde(skip_serializing_if = "Option::is_none")]
25882 pub path: Option<String>,
25883 #[doc = "Provider\n\nThe name or identifier of the security solution or service that provided the malware detection information.\n\nrecommended"]
25884 #[serde(rename = "provider")]
25885 #[serde(skip_serializing_if = "Option::is_none")]
25886 pub provider: Option<String>,
25887 #[doc = "Severity\n\nThe severity of the malware, normalized to the captions of the <code>severity_id</code> values. In the case of 'Other', they are defined by the event source.\n\noptional"]
25888 #[serde(rename = "severity")]
25889 #[serde(skip_serializing_if = "Option::is_none")]
25890 pub severity: Option<String>,
25891 #[doc = "Severity ID\n\nThe normalized identifier of the malware severity.\n\nrecommended"]
25892 #[serde(rename = "severity_id")]
25893 #[serde(skip_serializing_if = "Option::is_none")]
25894 pub severity_id: Option<i64>,
25895 #[doc = "Unique ID\n\nA unique identifier for the specific malware instance, as assigned by the detection engine (e.g., virus signature ID or IPS rule ID).\n\nrecommended"]
25896 #[serde(rename = "uid")]
25897 #[serde(skip_serializing_if = "Option::is_none")]
25898 pub uid: Option<String>,
25899}
25900#[doc = "Malware Scan Info\n\nThe malware scan information object describes characteristics, metadata of a malware scanning job.\n\n[] Category: | Name: malware_scan_info\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25901#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25902#[serde(default)]
25903#[non_exhaustive]
25904pub struct MalwareScanInfo {
25905 #[doc = "End Time\n\nThe timestamp indicating when the scan job completed execution.\n\noptional"]
25906 #[serde(rename = "end_time")]
25907 #[serde(skip_serializing_if = "Option::is_none")]
25908 pub end_time: Option<i64>,
25909 #[doc = "End Time\n\nThe timestamp indicating when the scan job completed execution.\n\noptional"]
25910 #[serde(rename = "end_time_dt")]
25911 #[serde(skip_serializing_if = "Option::is_none")]
25912 pub end_time_dt: Option<String>,
25913 #[doc = "Name\n\nThe administrator-supplied or application-generated name of the scan. For example: \"Home office weekly user database scan\", \"Scan folders for viruses\", \"Full system virus scan\"\n\nrecommended"]
25914 #[serde(rename = "name")]
25915 #[serde(skip_serializing_if = "Option::is_none")]
25916 pub name: Option<String>,
25917 #[doc = "Scanned Files\n\nThe total number of files analyzed during the scan.\n\noptional"]
25918 #[serde(rename = "num_files")]
25919 #[serde(skip_serializing_if = "Option::is_none")]
25920 pub num_files: Option<i64>,
25921 #[doc = "Number of Infected Entities\n\nThe total number of files identified as infected with malware during the scan.\n\noptional"]
25922 #[serde(rename = "num_infected")]
25923 #[serde(skip_serializing_if = "Option::is_none")]
25924 pub num_infected: Option<i64>,
25925 #[doc = "Number of Volumes\n\nThe total number of storage volumes examined during the malware scan.\n\noptional"]
25926 #[serde(rename = "num_volumes")]
25927 #[serde(skip_serializing_if = "Option::is_none")]
25928 pub num_volumes: Option<i64>,
25929 #[doc = "Size\n\nThe total size in bytes of all files that were scanned.\n\noptional"]
25930 #[serde(rename = "size")]
25931 #[serde(skip_serializing_if = "Option::is_none")]
25932 pub size: Option<i64>,
25933 #[doc = "Start Time\n\nThe timestamp indicating when the scan job began execution.\n\noptional"]
25934 #[serde(rename = "start_time")]
25935 #[serde(skip_serializing_if = "Option::is_none")]
25936 pub start_time: Option<i64>,
25937 #[doc = "Start Time\n\nThe timestamp indicating when the scan job began execution.\n\noptional"]
25938 #[serde(rename = "start_time_dt")]
25939 #[serde(skip_serializing_if = "Option::is_none")]
25940 pub start_time_dt: Option<String>,
25941 #[doc = "Type\n\nThe type of scan.\n\noptional"]
25942 #[serde(rename = "type")]
25943 #[serde(skip_serializing_if = "Option::is_none")]
25944 pub r#type: Option<String>,
25945 #[doc = "Type ID\n\nThe type id of the scan.\n\nrequired"]
25946 #[serde(rename = "type_id")]
25947 #[serde(skip_serializing_if = "Option::is_none")]
25948 pub type_id: Option<i64>,
25949 #[doc = "Scan UID\n\nThe application-defined unique identifier assigned to an instance of a scan.\n\nrecommended"]
25950 #[serde(rename = "uid")]
25951 #[serde(skip_serializing_if = "Option::is_none")]
25952 pub uid: Option<String>,
25953 #[doc = "Unique Malware Count\n\nThe number of unique malware detected across all infected files.\n\noptional"]
25954 #[serde(rename = "unique_malware_count")]
25955 #[serde(skip_serializing_if = "Option::is_none")]
25956 pub unique_malware_count: Option<i64>,
25957}
25958#[doc = "Managed Entity\n\nThe Managed Entity object describes the type and version of an entity, such as a user, device, or policy. For types in the <code>type_id</code> enum list, an associated attribute should be populated. If the type of entity is not in the <code>type_id</code> list, information can be put into the <code>data</code> attribute, <code>type_id</code> should be 'Other' and the <code>type</code> attribute should label the entity type.\n\n[] Category: | Name: managed_entity\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
25959#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
25960#[serde(default)]
25961#[non_exhaustive]
25962pub struct ManagedEntity {
25963 #[doc = "Data\n\nThe managed entity content as a JSON object.\n\noptional"]
25964 #[serde(rename = "data")]
25965 #[serde(skip_serializing_if = "Option::is_none")]
25966 pub data: Option<serde_json::Value>,
25967 #[doc = "Device\n\nAn addressable device, computer system or host.\n\nrecommended"]
25968 #[serde(rename = "device")]
25969 #[serde(skip_serializing_if = "Option::is_none")]
25970 pub device: Option<Box<Device>>,
25971 #[doc = "Email\n\nThe email object.\n\nrecommended"]
25972 #[serde(rename = "email")]
25973 #[serde(skip_serializing_if = "Option::is_none")]
25974 pub email: Option<Box<Email>>,
25975 #[doc = "Group\n\nThe group object associated with an entity such as user, policy, or rule.\n\nrecommended"]
25976 #[serde(rename = "group")]
25977 #[serde(skip_serializing_if = "Option::is_none")]
25978 pub group: Option<Box<Group>>,
25979 #[doc = "Geo Location\n\nThe detailed geographical location usually associated with an IP address.\n\noptional"]
25980 #[serde(rename = "location")]
25981 #[serde(skip_serializing_if = "Option::is_none")]
25982 pub location: Option<Box<Location>>,
25983 #[doc = "Name\n\nThe name of the managed entity. It should match the name of the specific entity object's name if populated, or the name of the managed entity if the <code>type_id</code> is 'Other'.\n\nrecommended"]
25984 #[serde(rename = "name")]
25985 #[serde(skip_serializing_if = "Option::is_none")]
25986 pub name: Option<String>,
25987 #[doc = "Organization\n\nThe Organization object containing details about the managed organizational entity. This object includes properties such as the organization name, unique identifier, type, and other organizational metadata. This attribute should be populated when <code>type_id</code> is <code>4</code> (Organization).\n\nrecommended"]
25988 #[serde(rename = "org")]
25989 #[serde(skip_serializing_if = "Option::is_none")]
25990 pub org: Option<Box<Organization>>,
25991 #[doc = "Policy\n\nDescribes details of a managed policy.\n\nrecommended"]
25992 #[serde(rename = "policy")]
25993 #[serde(skip_serializing_if = "Option::is_none")]
25994 pub policy: Option<Box<Policy>>,
25995 #[doc = "Type\n\nThe managed entity type. For example: <code>Policy</code>, <code>User</code>, <code>Organization</code>, <code>Device</code>.\n\nrecommended"]
25996 #[serde(rename = "type")]
25997 #[serde(skip_serializing_if = "Option::is_none")]
25998 pub r#type: Option<String>,
25999 #[doc = "Type ID\n\nThe type of the Managed Entity. It is recommended to also populate the <code>type</code> attribute with the associated label, or the source specific name if <code>Other</code>.\n\nrecommended"]
26000 #[serde(rename = "type_id")]
26001 #[serde(skip_serializing_if = "Option::is_none")]
26002 pub type_id: Option<i64>,
26003 #[doc = "Unique ID\n\nThe identifier of the managed entity. It should match the <code>uid</code> of the specific entity's object UID if populated, or the source specific ID if the <code>type_id</code> is 'Other'.\n\nrecommended"]
26004 #[serde(rename = "uid")]
26005 #[serde(skip_serializing_if = "Option::is_none")]
26006 pub uid: Option<String>,
26007 #[doc = "User\n\nThe user that pertains to the event or object.\n\nrecommended"]
26008 #[serde(rename = "user")]
26009 #[serde(skip_serializing_if = "Option::is_none")]
26010 pub user: Option<Box<User>>,
26011 #[doc = "Version\n\nThe version of the managed entity. For example: <code>1.2.3</code>.\n\nrecommended"]
26012 #[serde(rename = "version")]
26013 #[serde(skip_serializing_if = "Option::is_none")]
26014 pub version: Option<String>,
26015}
26016#[doc = "Message Context\n\nCommunication context for AI system interactions including protocols, roles, clients, and session information for MCP and other AI communication systems.\n\n[] Category: | Name: message_context\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26017#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26018#[serde(default)]
26019#[non_exhaustive]
26020pub struct MessageContext {
26021 #[doc = "AI Role\n\nThe normalized caption of the <code>ai_role_id</code>.\n\noptional"]
26022 #[serde(rename = "ai_role")]
26023 #[serde(skip_serializing_if = "Option::is_none")]
26024 pub ai_role: Option<String>,
26025 #[doc = "AI Role ID\n\nSpecifies the functional role of the AI within the context of this message, such as retrieving information, assisting reasoning, executing a tool, or generating content.\n\nrecommended"]
26026 #[serde(rename = "ai_role_id")]
26027 #[serde(skip_serializing_if = "Option::is_none")]
26028 pub ai_role_id: Option<i64>,
26029 #[doc = "Application\n\nThe initiating client application. In AI systems, this represents the client-side application or framework that initiates requests (e.g., LangChain application, web browser, mobile app, SDK implementation).\n\nrecommended"]
26030 #[serde(rename = "application")]
26031 #[serde(skip_serializing_if = "Option::is_none")]
26032 pub application: Option<Box<Application>>,
26033 #[doc = "Completion Tokens\n\nNumber of tokens in the model's response/completion for this message.\n\noptional"]
26034 #[serde(rename = "completion_tokens")]
26035 #[serde(skip_serializing_if = "Option::is_none")]
26036 pub completion_tokens: Option<i64>,
26037 #[doc = "Name\n\nThe name or identifier of the message context. In AI systems, this could be the conversation ID, session name, thread identifier, or interaction name (e.g., 'user-session-123', 'conversation-abc', 'chat-thread-456').\n\nrecommended"]
26038 #[serde(rename = "name")]
26039 #[serde(skip_serializing_if = "Option::is_none")]
26040 pub name: Option<String>,
26041 #[doc = "Prompt Tokens\n\nNumber of tokens in the input prompt for this message.\n\noptional"]
26042 #[serde(rename = "prompt_tokens")]
26043 #[serde(skip_serializing_if = "Option::is_none")]
26044 pub prompt_tokens: Option<i64>,
26045 #[doc = "Service\n\nThe server or service handling the request. In AI systems, this represents the AI service, API endpoint, or agent that processes and responds to requests (e.g., OpenAI API service, Claude API service, internal AI model service).\n\nrecommended"]
26046 #[serde(rename = "service")]
26047 #[serde(skip_serializing_if = "Option::is_none")]
26048 pub service: Option<Box<Service>>,
26049 #[doc = "Total Tokens\n\nTotal number of tokens used for this message (prompt + completion).\n\noptional"]
26050 #[serde(rename = "total_tokens")]
26051 #[serde(skip_serializing_if = "Option::is_none")]
26052 pub total_tokens: Option<i64>,
26053 #[doc = "Unique ID\n\nThe unique identifier of the message context. This could be a session ID, conversation ID, or other unique identifier that allows correlation of messages within the same context.\n\nrecommended"]
26054 #[serde(rename = "uid")]
26055 #[serde(skip_serializing_if = "Option::is_none")]
26056 pub uid: Option<String>,
26057}
26058#[doc = "Metadata\n\nThe Metadata object describes the metadata associated with the event.\n\n[] Category: | Name: metadata"]
26059#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26060#[serde(default)]
26061#[non_exhaustive]
26062pub struct Metadata {
26063 #[doc = "Correlation UID\n\nA unique identifier used to correlate this OCSF event with other related OCSF events, distinct from the event's <code>uid</code> value. This enables linking multiple OCSF events that are part of the same activity, transaction, or security incident across different systems or time periods.\n\noptional"]
26064 #[serde(rename = "correlation_uid")]
26065 #[serde(skip_serializing_if = "Option::is_none")]
26066 pub correlation_uid: Option<String>,
26067 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
26068 #[serde(rename = "data_classification")]
26069 #[serde(skip_serializing_if = "Option::is_none")]
26070 pub data_classification: Option<Box<DataClassification>>,
26071 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
26072 #[serde(rename = "data_classifications")]
26073 #[serde(skip_serializing_if = "Option::is_none")]
26074 pub data_classifications: Option<Vec<DataClassification>>,
26075 #[doc = "Debug Information\n\nDebug information about non-fatal issues with this OCSF event. Each issue is a line in this string array.\n\noptional"]
26076 #[serde(rename = "debug")]
26077 #[serde(skip_serializing_if = "Option::is_none")]
26078 pub debug: Option<Vec<String>>,
26079 #[doc = "Event Code\n\nThe identifier of the original event. For example the numerical Windows Event Code or Cisco syslog code.\n\noptional"]
26080 #[serde(rename = "event_code")]
26081 #[serde(skip_serializing_if = "Option::is_none")]
26082 pub event_code: Option<String>,
26083 #[doc = "Schema Extension\n\nThe schema extension used to create the event.\n\noptional"]
26084 #[serde(rename = "extension")]
26085 #[serde(skip_serializing_if = "Option::is_none")]
26086 pub extension: Option<Box<Extension>>,
26087 #[doc = "Schema Extensions\n\nThe schema extensions used to create the event.\n\noptional"]
26088 #[serde(rename = "extensions")]
26089 #[serde(skip_serializing_if = "Option::is_none")]
26090 pub extensions: Option<Vec<Extension>>,
26091 #[doc = "Is Truncated\n\nIndicates whether the OCSF event data has been truncated due to size limitations. When <code>true</code>, some event data may have been omitted to fit within system constraints.\n\noptional"]
26092 #[serde(rename = "is_truncated")]
26093 #[serde(skip_serializing_if = "Option::is_none")]
26094 pub is_truncated: Option<bool>,
26095 #[doc = "Labels\n\nThe list of labels attached to the event. For example: <code>[\"sample\", \"dev\"]</code>\n\noptional"]
26096 #[serde(rename = "labels")]
26097 #[serde(skip_serializing_if = "Option::is_none")]
26098 pub labels: Option<Vec<String>>,
26099 #[doc = "Log Source Format\n\nThe format of data in the log where the data originated. For example CSV, XML, Windows Multiline, JSON, syslog or Cisco Log Schema.\n\noptional"]
26100 #[serde(rename = "log_format")]
26101 #[serde(skip_serializing_if = "Option::is_none")]
26102 pub log_format: Option<String>,
26103 #[doc = "Log Level\n\nThe level at which an event was logged. This can be log provider specific. For example the audit level.\n\noptional"]
26104 #[serde(rename = "log_level")]
26105 #[serde(skip_serializing_if = "Option::is_none")]
26106 pub log_level: Option<String>,
26107 #[doc = "Log Name\n\nThe event log name, typically for the consumer of the event. For example, the storage bucket name, SIEM repository index name, etc.\n\nrecommended"]
26108 #[serde(rename = "log_name")]
26109 #[serde(skip_serializing_if = "Option::is_none")]
26110 pub log_name: Option<String>,
26111 #[doc = "Log Provider\n\nThe logging provider or logging service that logged the event. For example AWS CloudWatch or Splunk.\n\noptional"]
26112 #[serde(rename = "log_provider")]
26113 #[serde(skip_serializing_if = "Option::is_none")]
26114 pub log_provider: Option<String>,
26115 #[doc = "Log Source\n\nThe log system or component where the data originated. For example, a file path, syslog server name or a Windows hostname and logging subsystem such as Security.\n\noptional"]
26116 #[serde(rename = "log_source")]
26117 #[serde(skip_serializing_if = "Option::is_none")]
26118 pub log_source: Option<String>,
26119 #[doc = "Log Version\n\nThe event log schema version of the original event. For example the syslog version or the Cisco Log Schema version\n\noptional"]
26120 #[serde(rename = "log_version")]
26121 #[serde(skip_serializing_if = "Option::is_none")]
26122 pub log_version: Option<String>,
26123 #[doc = "Logged Time\n\n<p>The time when the logging system collected and logged the event.</p>This attribute is distinct from the event time in that event time typically contain the time extracted from the original event. Most of the time, these two times will be different.\n\noptional"]
26124 #[serde(rename = "logged_time")]
26125 #[serde(skip_serializing_if = "Option::is_none")]
26126 pub logged_time: Option<i64>,
26127 #[doc = "Logged Time\n\n<p>The time when the logging system collected and logged the event.</p>This attribute is distinct from the event time in that event time typically contain the time extracted from the original event. Most of the time, these two times will be different.\n\noptional"]
26128 #[serde(rename = "logged_time_dt")]
26129 #[serde(skip_serializing_if = "Option::is_none")]
26130 pub logged_time_dt: Option<String>,
26131 #[doc = "Loggers\n\nAn array of Logger objects that describe the pipeline of devices and logging products between the event source and its eventual destination. Note, this attribute can be used when there is a complex end-to-end path of event flow and/or to track the chain of custody of the data.\n\noptional"]
26132 #[serde(rename = "loggers")]
26133 #[serde(skip_serializing_if = "Option::is_none")]
26134 pub loggers: Option<Vec<Logger>>,
26135 #[doc = "Modified Time\n\nThe time when the event was last modified or enriched.\n\noptional"]
26136 #[serde(rename = "modified_time")]
26137 #[serde(skip_serializing_if = "Option::is_none")]
26138 pub modified_time: Option<i64>,
26139 #[doc = "Modified Time\n\nThe time when the event was last modified or enriched.\n\noptional"]
26140 #[serde(rename = "modified_time_dt")]
26141 #[serde(skip_serializing_if = "Option::is_none")]
26142 pub modified_time_dt: Option<String>,
26143 #[doc = "Original Event ID\n\nThe unique identifier assigned to the event in its original logging system before transformation to OCSF format. This field preserves the source system's native event identifier, enabling traceability back to the raw log entry. For example, a Windows Event Record ID, a syslog message ID, a Splunk _cd value, or a database transaction log sequence number.\n\noptional"]
26144 #[serde(rename = "original_event_uid")]
26145 #[serde(skip_serializing_if = "Option::is_none")]
26146 pub original_event_uid: Option<String>,
26147 #[doc = "Original Time\n\nThe original event time as reported by the event source. For example, the time in the original format from system event log such as Syslog on Unix/Linux and the System event file on Windows. Omit if event is generated instead of collected via logs.\n\nrecommended"]
26148 #[serde(rename = "original_time")]
26149 #[serde(skip_serializing_if = "Option::is_none")]
26150 pub original_time: Option<String>,
26151 #[doc = "Processed Time\n\nThe event processed time, such as an ETL operation.\n\noptional"]
26152 #[serde(rename = "processed_time")]
26153 #[serde(skip_serializing_if = "Option::is_none")]
26154 pub processed_time: Option<i64>,
26155 #[doc = "Processed Time\n\nThe event processed time, such as an ETL operation.\n\noptional"]
26156 #[serde(rename = "processed_time_dt")]
26157 #[serde(skip_serializing_if = "Option::is_none")]
26158 pub processed_time_dt: Option<String>,
26159 #[doc = "Product\n\nThe product that reported the event.\n\nrequired"]
26160 #[serde(rename = "product")]
26161 #[serde(skip_serializing_if = "Option::is_none")]
26162 pub product: Option<Box<Product>>,
26163 #[doc = "Profiles\n\nThe list of profiles used to create the event. Profiles should be referenced by their <code>name</code> attribute for core profiles, or <code>extension/name</code> for profiles from extensions.\n\noptional"]
26164 #[serde(rename = "profiles")]
26165 #[serde(skip_serializing_if = "Option::is_none")]
26166 pub profiles: Option<Vec<String>>,
26167 #[doc = "Reporter\n\nThe entity from which the event or finding was first reported.\n\nrecommended"]
26168 #[serde(rename = "reporter")]
26169 #[serde(skip_serializing_if = "Option::is_none")]
26170 pub reporter: Option<Box<Reporter>>,
26171 #[doc = "Sequence Number\n\nSequence number of the event. The sequence number is a value available in some events, to make the exact ordering of events unambiguous, regardless of the event time precision.\n\noptional"]
26172 #[serde(rename = "sequence")]
26173 #[serde(skip_serializing_if = "Option::is_none")]
26174 pub sequence: Option<i64>,
26175 #[doc = "Source\n\nThe source of the event or finding. This can be any distinguishing name for the logical origin of the data — for example, 'CloudTrail Events', or a use case like 'Attack Simulations' or 'Vulnerability Scans'.\n\noptional"]
26176 #[serde(rename = "source")]
26177 #[serde(skip_serializing_if = "Option::is_none")]
26178 pub source: Option<String>,
26179 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the event.\n\noptional"]
26180 #[serde(rename = "tags")]
26181 #[serde(skip_serializing_if = "Option::is_none")]
26182 pub tags: Option<Vec<KeyValueObject>>,
26183 #[doc = "Tenant UID\n\nThe unique tenant identifier.\n\nrecommended"]
26184 #[serde(rename = "tenant_uid")]
26185 #[serde(skip_serializing_if = "Option::is_none")]
26186 pub tenant_uid: Option<String>,
26187 #[doc = "Transformation Info\n\nAn array of transformation info that describes the mappings or transforms applied to the data.\n\noptional"]
26188 #[serde(rename = "transformation_info_list")]
26189 #[serde(skip_serializing_if = "Option::is_none")]
26190 pub transformation_info_list: Option<Vec<TransformationInfo>>,
26191 #[doc = "Transmission Time\n\nThe time when the event was transmitted from the logging device to it's next destination.\n\noptional"]
26192 #[serde(rename = "transmit_time")]
26193 #[serde(skip_serializing_if = "Option::is_none")]
26194 pub transmit_time: Option<i64>,
26195 #[doc = "Transmission Time\n\nThe time when the event was transmitted from the logging device to it's next destination.\n\noptional"]
26196 #[serde(rename = "transmit_time_dt")]
26197 #[serde(skip_serializing_if = "Option::is_none")]
26198 pub transmit_time_dt: Option<String>,
26199 #[doc = "Type\n\nThe type of the event or finding as a subset of the <code>source</code> of the event. This can be any distinguishing characteristic of the data. For example 'Management Events' or 'Device Penetration Test'.\n\noptional"]
26200 #[serde(rename = "type")]
26201 #[serde(skip_serializing_if = "Option::is_none")]
26202 pub r#type: Option<String>,
26203 #[doc = "Event UID\n\nA unique identifier assigned to the OCSF event. This ID is specific to the OCSF event itself and is distinct from the original event identifier in the source system (see <code>original_event_uid</code>).\n\noptional"]
26204 #[serde(rename = "uid")]
26205 #[serde(skip_serializing_if = "Option::is_none")]
26206 pub uid: Option<String>,
26207 #[doc = "Untruncated Size\n\nThe original size of the OCSF event data in kilobytes before any truncation occurred. This field is typically populated when <code>is_truncated</code> is <code>true</code> to indicate the full size of the original event.\n\noptional"]
26208 #[serde(rename = "untruncated_size")]
26209 #[serde(skip_serializing_if = "Option::is_none")]
26210 pub untruncated_size: Option<i64>,
26211 #[doc = "Version\n\nThe version of the OCSF schema, using Semantic Versioning Specification (<a target='_blank' href='https://semver.org'>SemVer</a>). For example: <code>1.0.0.</code> Event consumers use the version to determine the available event attributes.\n\nrequired"]
26212 #[serde(rename = "version")]
26213 #[serde(skip_serializing_if = "Option::is_none")]
26214 pub version: Option<String>,
26215}
26216#[doc = "Metric\n\nThe Metric object defines a simple name/value pair entity for a metric.\n\n[] Category: | Name: metric"]
26217#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26218#[serde(default)]
26219#[non_exhaustive]
26220pub struct Metric {
26221 #[doc = "Name\n\nThe name of the metric.\n\nrequired"]
26222 #[serde(rename = "name")]
26223 #[serde(skip_serializing_if = "Option::is_none")]
26224 pub name: Option<String>,
26225 #[doc = "Value\n\nThe value of the metric.\n\nrequired"]
26226 #[serde(rename = "value")]
26227 #[serde(skip_serializing_if = "Option::is_none")]
26228 pub value: Option<String>,
26229}
26230#[doc = "MITRE Mitigation\n\nThe MITRE Mitigation object describes the ATT&CK® or ATLAS™ Mitigation ID and/or name that is associated to an attack.\n\n[] Category: | Name: mitigation\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26231#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26232#[serde(default)]
26233#[non_exhaustive]
26234pub struct Mitigation {
26235 #[doc = "Countermeasures\n\nThe D3FEND countermeasures that are associated with the attack technique. For example: ATT&CK Technique <code>T1003</code> is addressed by Mitigation <code>M1027</code>, and D3FEND Technique <code>D3-OTP</code>.\n\noptional"]
26236 #[serde(rename = "countermeasures")]
26237 #[serde(skip_serializing_if = "Option::is_none")]
26238 pub countermeasures: Option<Vec<D3fend>>,
26239 #[doc = "Name\n\nThe Mitigation name that is associated with the attack technique. For example: <code>Password Policies</code>, or <code>Code Signing</code>.\n\nrecommended"]
26240 #[serde(rename = "name")]
26241 #[serde(skip_serializing_if = "Option::is_none")]
26242 pub name: Option<String>,
26243 #[doc = "Source URL\n\nThe versioned permalink of the Mitigation. For example: <code>https://attack.mitre.org/versions/v14/mitigations/M1027</code>.\n\noptional"]
26244 #[serde(rename = "src_url")]
26245 #[serde(skip_serializing_if = "Option::is_none")]
26246 pub src_url: Option<String>,
26247 #[doc = "Unique ID\n\nThe Mitigation ID that is associated with the attack technique. For example: <code>M1027</code>, or <code>AML.M0013</code>.\n\nrecommended"]
26248 #[serde(rename = "uid")]
26249 #[serde(skip_serializing_if = "Option::is_none")]
26250 pub uid: Option<String>,
26251}
26252#[doc = "Module\n\nThe Module object describes the attributes of a module.\n\n[] Category: | Name: module\n\n**Constraints:**\n* at_least_one: `[load_type_id`,`function_name]`\n"]
26253#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26254#[serde(default)]
26255#[non_exhaustive]
26256pub struct Module {
26257 #[doc = "Base Address\n\nThe memory address where the module was loaded.\n\nrecommended"]
26258 #[serde(rename = "base_address")]
26259 #[serde(skip_serializing_if = "Option::is_none")]
26260 pub base_address: Option<String>,
26261 #[doc = "File\n\nThe module file object.\n\nrecommended"]
26262 #[serde(rename = "file")]
26263 #[serde(skip_serializing_if = "Option::is_none")]
26264 pub file: Option<Box<File>>,
26265 #[doc = "Function Invocation\n\nDetails about the invocation of the function given in <code>function_name</code>.\n\noptional"]
26266 #[serde(rename = "function_invocation")]
26267 #[serde(skip_serializing_if = "Option::is_none")]
26268 pub function_invocation: Option<Box<FunctionInvocation>>,
26269 #[doc = "Function Name\n\nThe invoked function in the module. For load and unload events, this is the entry-point function of the module. The system calls the entry-point function whenever a process or thread loads or unloads the module.\n\nrecommended"]
26270 #[serde(rename = "function_name")]
26271 #[serde(skip_serializing_if = "Option::is_none")]
26272 pub function_name: Option<String>,
26273 #[doc = "Load Type\n\nThe load type, normalized to the caption of the load_type_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
26274 #[serde(rename = "load_type")]
26275 #[serde(skip_serializing_if = "Option::is_none")]
26276 pub load_type: Option<String>,
26277 #[doc = "Load Type ID\n\nThe normalized identifier for how the module was loaded in memory.\n\nrecommended"]
26278 #[serde(rename = "load_type_id")]
26279 #[serde(skip_serializing_if = "Option::is_none")]
26280 pub load_type_id: Option<i64>,
26281 #[doc = "Start Address\n\nThe start address of the execution.\n\nrecommended"]
26282 #[serde(rename = "start_address")]
26283 #[serde(skip_serializing_if = "Option::is_none")]
26284 pub start_address: Option<String>,
26285 #[doc = "Type\n\nThe module type.\n\nrecommended"]
26286 #[serde(rename = "type")]
26287 #[serde(skip_serializing_if = "Option::is_none")]
26288 pub r#type: Option<String>,
26289}
26290#[doc = "Network Connection Information\n\nThe Network Connection Information object describes characteristics of an OSI Transport Layer communication, including TCP and UDP.\n\n[] Category: | Name: network_connection_info"]
26291#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26292#[serde(default)]
26293#[non_exhaustive]
26294pub struct NetworkConnectionInfo {
26295 #[doc = "Boundary\n\nThe boundary of the connection, normalized to the caption of 'boundary_id'. In the case of 'Other', it is defined by the event source. <p> For cloud connections, this translates to the traffic-boundary(same VPC, through IGW, etc.). For traditional networks, this is described as Local, Internal, or External.</p>\n\noptional"]
26296 #[serde(rename = "boundary")]
26297 #[serde(skip_serializing_if = "Option::is_none")]
26298 pub boundary: Option<String>,
26299 #[doc = "Boundary ID\n\n<p>The normalized identifier of the boundary of the connection. </p><p> For cloud connections, this translates to the traffic-boundary (same VPC, through IGW, etc.). For traditional networks, this is described as Local, Internal, or External.</p>\n\nrecommended"]
26300 #[serde(rename = "boundary_id")]
26301 #[serde(skip_serializing_if = "Option::is_none")]
26302 pub boundary_id: Option<i64>,
26303 #[doc = "Community ID\n\nThe Community ID of the network connection.\n\noptional"]
26304 #[serde(rename = "community_uid")]
26305 #[serde(skip_serializing_if = "Option::is_none")]
26306 pub community_uid: Option<String>,
26307 #[doc = "Direction\n\nThe direction of the initiated connection, traffic, or email, normalized to the caption of the direction_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
26308 #[serde(rename = "direction")]
26309 #[serde(skip_serializing_if = "Option::is_none")]
26310 pub direction: Option<String>,
26311 #[doc = "Direction ID\n\nThe normalized identifier of the direction of the initiated connection, traffic, or email.\n\nrequired"]
26312 #[serde(rename = "direction_id")]
26313 #[serde(skip_serializing_if = "Option::is_none")]
26314 pub direction_id: Option<i64>,
26315 #[doc = "Connection Flag History\n\nThe Connection Flag History summarizes events in a network connection. For example flags <code> ShAD </code> representing SYN, SYN/ACK, ACK and Data exchange.\n\noptional"]
26316 #[serde(rename = "flag_history")]
26317 #[serde(skip_serializing_if = "Option::is_none")]
26318 pub flag_history: Option<String>,
26319 #[doc = "Protocol Name\n\nThe IP protocol name in lowercase, as defined by the Internet Assigned Numbers Authority (IANA). For example: <code>tcp</code> or <code>udp</code>.\n\nrecommended"]
26320 #[serde(rename = "protocol_name")]
26321 #[serde(skip_serializing_if = "Option::is_none")]
26322 pub protocol_name: Option<String>,
26323 #[doc = "Protocol Number\n\nThe IP protocol number, as defined by the Internet Assigned Numbers Authority (IANA). For example: <code>6</code> for TCP and <code>17</code> for UDP.\n\nrecommended"]
26324 #[serde(rename = "protocol_num")]
26325 #[serde(skip_serializing_if = "Option::is_none")]
26326 pub protocol_num: Option<i64>,
26327 #[doc = "IP Version\n\nThe Internet Protocol version.\n\noptional"]
26328 #[serde(rename = "protocol_ver")]
26329 #[serde(skip_serializing_if = "Option::is_none")]
26330 pub protocol_ver: Option<String>,
26331 #[doc = "IP Version ID\n\nThe Internet Protocol version identifier.\n\nrecommended"]
26332 #[serde(rename = "protocol_ver_id")]
26333 #[serde(skip_serializing_if = "Option::is_none")]
26334 pub protocol_ver_id: Option<i64>,
26335 #[doc = "Session\n\nThe authenticated user or service session.\n\noptional"]
26336 #[serde(rename = "session")]
26337 #[serde(skip_serializing_if = "Option::is_none")]
26338 pub session: Option<Box<Session>>,
26339 #[doc = "TCP Flags\n\nThe network connection TCP header flags (i.e., control bits).\n\noptional"]
26340 #[serde(rename = "tcp_flags")]
26341 #[serde(skip_serializing_if = "Option::is_none")]
26342 pub tcp_flags: Option<i64>,
26343 #[doc = "Connection UID\n\nThe unique identifier of the connection.\n\nrecommended"]
26344 #[serde(rename = "uid")]
26345 #[serde(skip_serializing_if = "Option::is_none")]
26346 pub uid: Option<String>,
26347}
26348#[doc = "Network Endpoint\n\nThe Network Endpoint object describes characteristics of a network endpoint. These can be a source or destination of a network connection.\n\n[] Category: | Name: network_endpoint\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26349#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26350#[serde(default)]
26351#[non_exhaustive]
26352pub struct NetworkEndpoint {
26353 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
26354 #[serde(rename = "agent_list")]
26355 #[serde(skip_serializing_if = "Option::is_none")]
26356 pub agent_list: Option<Vec<Agent>>,
26357 #[doc = "Autonomous System\n\nThe Autonomous System details associated with an IP address.\n\noptional"]
26358 #[serde(rename = "autonomous_system")]
26359 #[serde(skip_serializing_if = "Option::is_none")]
26360 pub autonomous_system: Option<Box<AutonomousSystem>>,
26361 #[doc = "Container\n\nThe information describing an instance of a container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\nrecommended"]
26362 #[serde(rename = "container")]
26363 #[serde(skip_serializing_if = "Option::is_none")]
26364 pub container: Option<Box<Container>>,
26365 #[doc = "Domain\n\nThe name of the domain that the endpoint belongs to or that corresponds to the endpoint.\n\noptional"]
26366 #[serde(rename = "domain")]
26367 #[serde(skip_serializing_if = "Option::is_none")]
26368 pub domain: Option<String>,
26369 #[doc = "Hostname\n\nThe fully qualified name of the endpoint.\n\nrecommended"]
26370 #[serde(rename = "hostname")]
26371 #[serde(skip_serializing_if = "Option::is_none")]
26372 pub hostname: Option<String>,
26373 #[doc = "Hardware Info\n\nThe endpoint hardware information.\n\noptional"]
26374 #[serde(rename = "hw_info")]
26375 #[serde(skip_serializing_if = "Option::is_none")]
26376 pub hw_info: Option<Box<DeviceHwInfo>>,
26377 #[doc = "Instance ID\n\nThe unique identifier of a VM instance.\n\nrecommended"]
26378 #[serde(rename = "instance_uid")]
26379 #[serde(skip_serializing_if = "Option::is_none")]
26380 pub instance_uid: Option<String>,
26381 #[doc = "Network Interface Name\n\nThe name of the network interface (e.g. eth2).\n\nrecommended"]
26382 #[serde(rename = "interface_name")]
26383 #[serde(skip_serializing_if = "Option::is_none")]
26384 pub interface_name: Option<String>,
26385 #[doc = "Network Interface ID\n\nThe unique identifier of the network interface.\n\nrecommended"]
26386 #[serde(rename = "interface_uid")]
26387 #[serde(skip_serializing_if = "Option::is_none")]
26388 pub interface_uid: Option<String>,
26389 #[doc = "Intermediate IP Addresses\n\nThe intermediate IP Addresses. For example, the IP addresses in the HTTP X-Forwarded-For header.\n\noptional"]
26390 #[serde(rename = "intermediate_ips")]
26391 #[serde(skip_serializing_if = "Option::is_none")]
26392 pub intermediate_ips: Option<Vec<String>>,
26393 #[doc = "IP Address\n\nThe IP address of the endpoint, in either IPv4 or IPv6 format.\n\nrecommended"]
26394 #[serde(rename = "ip")]
26395 #[serde(skip_serializing_if = "Option::is_none")]
26396 pub ip: Option<String>,
26397 #[doc = "ISP Name\n\nThe name of the Internet Service Provider (ISP).\n\noptional"]
26398 #[serde(rename = "isp")]
26399 #[serde(skip_serializing_if = "Option::is_none")]
26400 pub isp: Option<String>,
26401 #[doc = "ISP Org\n\nThe organization name of the Internet Service Provider (ISP). This represents the parent organization or company that owns/operates the ISP. For example, Comcast Corporation would be the ISP org for Xfinity internet service. This attribute helps identify the ultimate provider when ISPs operate under different brand names.\n\noptional"]
26402 #[serde(rename = "isp_org")]
26403 #[serde(skip_serializing_if = "Option::is_none")]
26404 pub isp_org: Option<String>,
26405 #[doc = "Geo Location\n\nThe geographical location of the endpoint.\n\noptional"]
26406 #[serde(rename = "location")]
26407 #[serde(skip_serializing_if = "Option::is_none")]
26408 pub location: Option<Box<Location>>,
26409 #[doc = "MAC Address\n\nThe Media Access Control (MAC) address of the endpoint.\n\noptional"]
26410 #[serde(rename = "mac")]
26411 #[serde(skip_serializing_if = "Option::is_none")]
26412 pub mac: Option<String>,
26413 #[doc = "Name\n\nThe short name of the endpoint.\n\nrecommended"]
26414 #[serde(rename = "name")]
26415 #[serde(skip_serializing_if = "Option::is_none")]
26416 pub name: Option<String>,
26417 #[doc = "Namespace PID\n\nIf running under a process namespace (such as in a container), the process identifier within that process namespace.\n\nrecommended"]
26418 #[serde(rename = "namespace_pid")]
26419 #[serde(skip_serializing_if = "Option::is_none")]
26420 pub namespace_pid: Option<i64>,
26421 #[doc = "Network Scope\n\nIndicates whether the endpoint resides inside the customer’s network, outside on the Internet, or if its location relative to the customer’s network cannot be determined. The value is normalized to the caption of the <code>network_scope_id</code>.\n\noptional"]
26422 #[serde(rename = "network_scope")]
26423 #[serde(skip_serializing_if = "Option::is_none")]
26424 pub network_scope: Option<String>,
26425 #[doc = "Network Scope ID\n\nThe normalized identifier of the endpoint’s network scope. The normalized network scope identifier indicates whether the endpoint resides inside the customer’s network, outside on the Internet, or if its location relative to the customer’s network cannot be determined.\n\noptional"]
26426 #[serde(rename = "network_scope_id")]
26427 #[serde(skip_serializing_if = "Option::is_none")]
26428 pub network_scope_id: Option<i64>,
26429 #[doc = "OS\n\nThe endpoint operating system.\n\noptional"]
26430 #[serde(rename = "os")]
26431 #[serde(skip_serializing_if = "Option::is_none")]
26432 pub os: Option<Box<Os>>,
26433 #[doc = "Owner\n\nThe identity of the service or user account that owns the endpoint or was last logged into it.\n\nrecommended"]
26434 #[serde(rename = "owner")]
26435 #[serde(skip_serializing_if = "Option::is_none")]
26436 pub owner: Option<Box<User>>,
26437 #[doc = "Port\n\nThe port used for communication within the network connection.\n\nrecommended"]
26438 #[serde(rename = "port")]
26439 #[serde(skip_serializing_if = "Option::is_none")]
26440 pub port: Option<i64>,
26441 #[doc = "Proxy Endpoint\n\nThe network proxy information pertaining to a specific endpoint. This can be used to describe information pertaining to network address translation (NAT).\n\noptional"]
26442 #[serde(rename = "proxy_endpoint")]
26443 #[serde(skip_serializing_if = "Option::is_none")]
26444 pub proxy_endpoint: Option<Box<NetworkProxy>>,
26445 #[doc = "Subnet UID\n\nThe unique identifier of a virtual subnet.\n\noptional"]
26446 #[serde(rename = "subnet_uid")]
26447 #[serde(skip_serializing_if = "Option::is_none")]
26448 pub subnet_uid: Option<String>,
26449 #[doc = "Service Name\n\nThe service name in service-to-service connections. For example, AWS VPC logs the pkt-src-aws-service and pkt-dst-aws-service fields identify the connection is coming from or going to an AWS service.\n\nrecommended"]
26450 #[serde(rename = "svc_name")]
26451 #[serde(skip_serializing_if = "Option::is_none")]
26452 pub svc_name: Option<String>,
26453 #[doc = "Type\n\nThe network endpoint type. For example: <code>unknown</code>, <code>server</code>, <code>desktop</code>, <code>laptop</code>, <code>tablet</code>, <code>mobile</code>, <code>virtual</code>, <code>browser</code>, or <code>other</code>.\n\noptional"]
26454 #[serde(rename = "type")]
26455 #[serde(skip_serializing_if = "Option::is_none")]
26456 pub r#type: Option<String>,
26457 #[doc = "Type ID\n\nThe network endpoint type ID.\n\nrecommended"]
26458 #[serde(rename = "type_id")]
26459 #[serde(skip_serializing_if = "Option::is_none")]
26460 pub type_id: Option<i64>,
26461 #[doc = "Unique ID\n\nThe unique identifier of the endpoint.\n\nrecommended"]
26462 #[serde(rename = "uid")]
26463 #[serde(skip_serializing_if = "Option::is_none")]
26464 pub uid: Option<String>,
26465 #[doc = "VLAN\n\nThe Virtual LAN identifier.\n\noptional"]
26466 #[serde(rename = "vlan_uid")]
26467 #[serde(skip_serializing_if = "Option::is_none")]
26468 pub vlan_uid: Option<String>,
26469 #[doc = "VPC UID\n\nThe unique identifier of the Virtual Private Cloud (VPC).\n\noptional"]
26470 #[serde(rename = "vpc_uid")]
26471 #[serde(skip_serializing_if = "Option::is_none")]
26472 pub vpc_uid: Option<String>,
26473 #[doc = "Network Zone\n\nThe network zone or LAN segment.\n\noptional"]
26474 #[serde(rename = "zone")]
26475 #[serde(skip_serializing_if = "Option::is_none")]
26476 pub zone: Option<String>,
26477}
26478#[doc = "Network Interface\n\nThe Network Interface object describes the type and associated attributes of a physical or virtual network interface.\n\n[] Category: | Name: network_interface\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26479#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26480#[serde(default)]
26481#[non_exhaustive]
26482pub struct NetworkInterface {
26483 #[doc = "Hostname\n\nThe hostname associated with the network interface.\n\nrecommended"]
26484 #[serde(rename = "hostname")]
26485 #[serde(skip_serializing_if = "Option::is_none")]
26486 pub hostname: Option<String>,
26487 #[doc = "IP Address\n\nThe IP address associated with the network interface.\n\nrecommended"]
26488 #[serde(rename = "ip")]
26489 #[serde(skip_serializing_if = "Option::is_none")]
26490 pub ip: Option<String>,
26491 #[doc = "MAC Address\n\nThe MAC address of the network interface.\n\nrecommended"]
26492 #[serde(rename = "mac")]
26493 #[serde(skip_serializing_if = "Option::is_none")]
26494 pub mac: Option<String>,
26495 #[doc = "Name\n\nThe name of the network interface.\n\nrecommended"]
26496 #[serde(rename = "name")]
26497 #[serde(skip_serializing_if = "Option::is_none")]
26498 pub name: Option<String>,
26499 #[doc = "Namespace\n\nThe namespace is useful in merger or acquisition situations. For example, when similar entities exist that you need to keep separate.\n\noptional"]
26500 #[serde(rename = "namespace")]
26501 #[serde(skip_serializing_if = "Option::is_none")]
26502 pub namespace: Option<String>,
26503 #[doc = "Open Ports\n\nThe list of open ports on a network interface, including port numbers and associated protocol information.\n\noptional"]
26504 #[serde(rename = "open_ports")]
26505 #[serde(skip_serializing_if = "Option::is_none")]
26506 pub open_ports: Option<Vec<PortInfo>>,
26507 #[doc = "Subnet Prefix Length\n\nThe subnet prefix length determines the number of bits used to represent the network part of the IP address. The remaining bits are reserved for identifying individual hosts within that subnet.\n\noptional"]
26508 #[serde(rename = "subnet_prefix")]
26509 #[serde(skip_serializing_if = "Option::is_none")]
26510 pub subnet_prefix: Option<i64>,
26511 #[doc = "Type\n\nThe type of network interface.\n\noptional"]
26512 #[serde(rename = "type")]
26513 #[serde(skip_serializing_if = "Option::is_none")]
26514 pub r#type: Option<String>,
26515 #[doc = "Type ID\n\nThe network interface type identifier.\n\nrecommended"]
26516 #[serde(rename = "type_id")]
26517 #[serde(skip_serializing_if = "Option::is_none")]
26518 pub type_id: Option<i64>,
26519 #[doc = "Unique ID\n\nThe unique identifier for the network interface.\n\noptional"]
26520 #[serde(rename = "uid")]
26521 #[serde(skip_serializing_if = "Option::is_none")]
26522 pub uid: Option<String>,
26523}
26524#[doc = "Network Proxy Endpoint\n\nThe network proxy endpoint object describes a proxy server, which acts as an intermediary between a client requesting a resource and the server providing that resource.\n\n[] Category: | Name: network_proxy\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26525#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26526#[serde(default)]
26527#[non_exhaustive]
26528pub struct NetworkProxy {
26529 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
26530 #[serde(rename = "agent_list")]
26531 #[serde(skip_serializing_if = "Option::is_none")]
26532 pub agent_list: Option<Vec<Agent>>,
26533 #[doc = "Autonomous System\n\nThe Autonomous System details associated with an IP address.\n\noptional"]
26534 #[serde(rename = "autonomous_system")]
26535 #[serde(skip_serializing_if = "Option::is_none")]
26536 pub autonomous_system: Option<Box<AutonomousSystem>>,
26537 #[doc = "Container\n\nThe information describing an instance of a container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\nrecommended"]
26538 #[serde(rename = "container")]
26539 #[serde(skip_serializing_if = "Option::is_none")]
26540 pub container: Option<Box<Container>>,
26541 #[doc = "Domain\n\nThe name of the domain that the endpoint belongs to or that corresponds to the endpoint.\n\noptional"]
26542 #[serde(rename = "domain")]
26543 #[serde(skip_serializing_if = "Option::is_none")]
26544 pub domain: Option<String>,
26545 #[doc = "Hostname\n\nThe fully qualified name of the endpoint.\n\nrecommended"]
26546 #[serde(rename = "hostname")]
26547 #[serde(skip_serializing_if = "Option::is_none")]
26548 pub hostname: Option<String>,
26549 #[doc = "Hardware Info\n\nThe endpoint hardware information.\n\noptional"]
26550 #[serde(rename = "hw_info")]
26551 #[serde(skip_serializing_if = "Option::is_none")]
26552 pub hw_info: Option<Box<DeviceHwInfo>>,
26553 #[doc = "Instance ID\n\nThe unique identifier of a VM instance.\n\nrecommended"]
26554 #[serde(rename = "instance_uid")]
26555 #[serde(skip_serializing_if = "Option::is_none")]
26556 pub instance_uid: Option<String>,
26557 #[doc = "Network Interface Name\n\nThe name of the network interface (e.g. eth2).\n\nrecommended"]
26558 #[serde(rename = "interface_name")]
26559 #[serde(skip_serializing_if = "Option::is_none")]
26560 pub interface_name: Option<String>,
26561 #[doc = "Network Interface ID\n\nThe unique identifier of the network interface.\n\nrecommended"]
26562 #[serde(rename = "interface_uid")]
26563 #[serde(skip_serializing_if = "Option::is_none")]
26564 pub interface_uid: Option<String>,
26565 #[doc = "Intermediate IP Addresses\n\nThe intermediate IP Addresses. For example, the IP addresses in the HTTP X-Forwarded-For header.\n\noptional"]
26566 #[serde(rename = "intermediate_ips")]
26567 #[serde(skip_serializing_if = "Option::is_none")]
26568 pub intermediate_ips: Option<Vec<String>>,
26569 #[doc = "IP Address\n\nThe IP address of the endpoint, in either IPv4 or IPv6 format.\n\nrecommended"]
26570 #[serde(rename = "ip")]
26571 #[serde(skip_serializing_if = "Option::is_none")]
26572 pub ip: Option<String>,
26573 #[doc = "ISP Name\n\nThe name of the Internet Service Provider (ISP).\n\noptional"]
26574 #[serde(rename = "isp")]
26575 #[serde(skip_serializing_if = "Option::is_none")]
26576 pub isp: Option<String>,
26577 #[doc = "ISP Org\n\nThe organization name of the Internet Service Provider (ISP). This represents the parent organization or company that owns/operates the ISP. For example, Comcast Corporation would be the ISP org for Xfinity internet service. This attribute helps identify the ultimate provider when ISPs operate under different brand names.\n\noptional"]
26578 #[serde(rename = "isp_org")]
26579 #[serde(skip_serializing_if = "Option::is_none")]
26580 pub isp_org: Option<String>,
26581 #[doc = "Geo Location\n\nThe geographical location of the endpoint.\n\noptional"]
26582 #[serde(rename = "location")]
26583 #[serde(skip_serializing_if = "Option::is_none")]
26584 pub location: Option<Box<Location>>,
26585 #[doc = "MAC Address\n\nThe Media Access Control (MAC) address of the endpoint.\n\noptional"]
26586 #[serde(rename = "mac")]
26587 #[serde(skip_serializing_if = "Option::is_none")]
26588 pub mac: Option<String>,
26589 #[doc = "Name\n\nThe short name of the endpoint.\n\nrecommended"]
26590 #[serde(rename = "name")]
26591 #[serde(skip_serializing_if = "Option::is_none")]
26592 pub name: Option<String>,
26593 #[doc = "Namespace PID\n\nIf running under a process namespace (such as in a container), the process identifier within that process namespace.\n\nrecommended"]
26594 #[serde(rename = "namespace_pid")]
26595 #[serde(skip_serializing_if = "Option::is_none")]
26596 pub namespace_pid: Option<i64>,
26597 #[doc = "Network Scope\n\nIndicates whether the endpoint resides inside the customer’s network, outside on the Internet, or if its location relative to the customer’s network cannot be determined. The value is normalized to the caption of the <code>network_scope_id</code>.\n\noptional"]
26598 #[serde(rename = "network_scope")]
26599 #[serde(skip_serializing_if = "Option::is_none")]
26600 pub network_scope: Option<String>,
26601 #[doc = "Network Scope ID\n\nThe normalized identifier of the endpoint’s network scope. The normalized network scope identifier indicates whether the endpoint resides inside the customer’s network, outside on the Internet, or if its location relative to the customer’s network cannot be determined.\n\noptional"]
26602 #[serde(rename = "network_scope_id")]
26603 #[serde(skip_serializing_if = "Option::is_none")]
26604 pub network_scope_id: Option<i64>,
26605 #[doc = "OS\n\nThe endpoint operating system.\n\noptional"]
26606 #[serde(rename = "os")]
26607 #[serde(skip_serializing_if = "Option::is_none")]
26608 pub os: Option<Box<Os>>,
26609 #[doc = "Owner\n\nThe identity of the service or user account that owns the endpoint or was last logged into it.\n\nrecommended"]
26610 #[serde(rename = "owner")]
26611 #[serde(skip_serializing_if = "Option::is_none")]
26612 pub owner: Option<Box<User>>,
26613 #[doc = "Port\n\nThe port used for communication within the network connection.\n\nrecommended"]
26614 #[serde(rename = "port")]
26615 #[serde(skip_serializing_if = "Option::is_none")]
26616 pub port: Option<i64>,
26617 #[doc = "Proxy Endpoint\n\nThe network proxy information pertaining to a specific endpoint. This can be used to describe information pertaining to network address translation (NAT).\n\noptional"]
26618 #[serde(rename = "proxy_endpoint")]
26619 #[serde(skip_serializing_if = "Option::is_none")]
26620 pub proxy_endpoint: Option<Box<NetworkProxy>>,
26621 #[doc = "Subnet UID\n\nThe unique identifier of a virtual subnet.\n\noptional"]
26622 #[serde(rename = "subnet_uid")]
26623 #[serde(skip_serializing_if = "Option::is_none")]
26624 pub subnet_uid: Option<String>,
26625 #[doc = "Service Name\n\nThe service name in service-to-service connections. For example, AWS VPC logs the pkt-src-aws-service and pkt-dst-aws-service fields identify the connection is coming from or going to an AWS service.\n\nrecommended"]
26626 #[serde(rename = "svc_name")]
26627 #[serde(skip_serializing_if = "Option::is_none")]
26628 pub svc_name: Option<String>,
26629 #[doc = "Type\n\nThe network endpoint type. For example: <code>unknown</code>, <code>server</code>, <code>desktop</code>, <code>laptop</code>, <code>tablet</code>, <code>mobile</code>, <code>virtual</code>, <code>browser</code>, or <code>other</code>.\n\noptional"]
26630 #[serde(rename = "type")]
26631 #[serde(skip_serializing_if = "Option::is_none")]
26632 pub r#type: Option<String>,
26633 #[doc = "Type ID\n\nThe network endpoint type ID.\n\nrecommended"]
26634 #[serde(rename = "type_id")]
26635 #[serde(skip_serializing_if = "Option::is_none")]
26636 pub type_id: Option<i64>,
26637 #[doc = "Unique ID\n\nThe unique identifier of the endpoint.\n\nrecommended"]
26638 #[serde(rename = "uid")]
26639 #[serde(skip_serializing_if = "Option::is_none")]
26640 pub uid: Option<String>,
26641 #[doc = "VLAN\n\nThe Virtual LAN identifier.\n\noptional"]
26642 #[serde(rename = "vlan_uid")]
26643 #[serde(skip_serializing_if = "Option::is_none")]
26644 pub vlan_uid: Option<String>,
26645 #[doc = "VPC UID\n\nThe unique identifier of the Virtual Private Cloud (VPC).\n\noptional"]
26646 #[serde(rename = "vpc_uid")]
26647 #[serde(skip_serializing_if = "Option::is_none")]
26648 pub vpc_uid: Option<String>,
26649 #[doc = "Network Zone\n\nThe network zone or LAN segment.\n\noptional"]
26650 #[serde(rename = "zone")]
26651 #[serde(skip_serializing_if = "Option::is_none")]
26652 pub zone: Option<String>,
26653}
26654#[doc = "Network Traffic\n\nThe Network Traffic object describes characteristics of network traffic over a time period. The metrics represent network data transferred between source and destination during an observation window.\n\n[] Category: | Name: network_traffic"]
26655#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26656#[serde(default)]
26657#[non_exhaustive]
26658pub struct NetworkTraffic {
26659 #[doc = "Total Bytes\n\nThe total number of bytes transferred in both directions (sum of bytes_in and bytes_out).\n\nrecommended"]
26660 #[serde(rename = "bytes")]
26661 #[serde(skip_serializing_if = "Option::is_none")]
26662 pub bytes: Option<i64>,
26663 #[doc = "Bytes In\n\nThe number of bytes sent from the destination to the source (inbound direction).\n\noptional"]
26664 #[serde(rename = "bytes_in")]
26665 #[serde(skip_serializing_if = "Option::is_none")]
26666 pub bytes_in: Option<i64>,
26667 #[doc = "Bytes Missed\n\nThe number of bytes that were missed during observation, typically due to packet loss or sampling limitations.\n\noptional"]
26668 #[serde(rename = "bytes_missed")]
26669 #[serde(skip_serializing_if = "Option::is_none")]
26670 pub bytes_missed: Option<i64>,
26671 #[doc = "Bytes Out\n\nThe number of bytes sent from the source to the destination (outbound direction).\n\noptional"]
26672 #[serde(rename = "bytes_out")]
26673 #[serde(skip_serializing_if = "Option::is_none")]
26674 pub bytes_out: Option<i64>,
26675 #[doc = "Chunks\n\nThe total number of chunks transferred in both directions (sum of chunks_in and chunks_out).\n\noptional"]
26676 #[serde(rename = "chunks")]
26677 #[serde(skip_serializing_if = "Option::is_none")]
26678 pub chunks: Option<i64>,
26679 #[doc = "Chunks In\n\nThe number of chunks sent from the destination to the source (inbound direction).\n\noptional"]
26680 #[serde(rename = "chunks_in")]
26681 #[serde(skip_serializing_if = "Option::is_none")]
26682 pub chunks_in: Option<i64>,
26683 #[doc = "Chunks Out\n\nThe number of chunks sent from the source to the destination (outbound direction).\n\noptional"]
26684 #[serde(rename = "chunks_out")]
26685 #[serde(skip_serializing_if = "Option::is_none")]
26686 pub chunks_out: Option<i64>,
26687 #[doc = "End Time\n\nThe end time of the observation or reporting period.\n\noptional"]
26688 #[serde(rename = "end_time")]
26689 #[serde(skip_serializing_if = "Option::is_none")]
26690 pub end_time: Option<i64>,
26691 #[doc = "End Time\n\nThe end time of the observation or reporting period.\n\noptional"]
26692 #[serde(rename = "end_time_dt")]
26693 #[serde(skip_serializing_if = "Option::is_none")]
26694 pub end_time_dt: Option<String>,
26695 #[doc = "Total Packets\n\nThe total number of packets transferred in both directions (sum of packets_in and packets_out).\n\nrecommended"]
26696 #[serde(rename = "packets")]
26697 #[serde(skip_serializing_if = "Option::is_none")]
26698 pub packets: Option<i64>,
26699 #[doc = "Packets In\n\nThe number of packets sent from the destination to the source (inbound direction).\n\noptional"]
26700 #[serde(rename = "packets_in")]
26701 #[serde(skip_serializing_if = "Option::is_none")]
26702 pub packets_in: Option<i64>,
26703 #[doc = "Packets Out\n\nThe number of packets sent from the source to the destination (outbound direction).\n\noptional"]
26704 #[serde(rename = "packets_out")]
26705 #[serde(skip_serializing_if = "Option::is_none")]
26706 pub packets_out: Option<i64>,
26707 #[doc = "Start Time\n\nThe start time of the observation or reporting period.\n\noptional"]
26708 #[serde(rename = "start_time")]
26709 #[serde(skip_serializing_if = "Option::is_none")]
26710 pub start_time: Option<i64>,
26711 #[doc = "Start Time\n\nThe start time of the observation or reporting period.\n\noptional"]
26712 #[serde(rename = "start_time_dt")]
26713 #[serde(skip_serializing_if = "Option::is_none")]
26714 pub start_time_dt: Option<String>,
26715 #[doc = "Time Span\n\nThe time span object representing the duration of the observation or reporting period.\n\noptional"]
26716 #[serde(rename = "timespan")]
26717 #[serde(skip_serializing_if = "Option::is_none")]
26718 pub timespan: Option<Box<Timespan>>,
26719}
26720#[doc = "Node\n\nRepresents a node or a vertex in a graph structure.\n\n[] Category: | Name: node"]
26721#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26722#[serde(default)]
26723#[non_exhaustive]
26724pub struct Node {
26725 #[doc = "Data\n\nAdditional data about the node stored as key-value pairs. Can include custom properties specific to the node.\n\noptional"]
26726 #[serde(rename = "data")]
26727 #[serde(skip_serializing_if = "Option::is_none")]
26728 pub data: Option<serde_json::Value>,
26729 #[doc = "Description\n\nA human-readable description of the node's purpose or meaning in the graph.\n\noptional"]
26730 #[serde(rename = "desc")]
26731 #[serde(skip_serializing_if = "Option::is_none")]
26732 pub desc: Option<String>,
26733 #[doc = "Name\n\nA human-readable name or label for the node. Should be descriptive and unique within the graph context.\n\nrecommended"]
26734 #[serde(rename = "name")]
26735 #[serde(skip_serializing_if = "Option::is_none")]
26736 pub name: Option<String>,
26737 #[doc = "Type\n\nCategorizes the node into a specific class or type. Useful for grouping and filtering nodes.\n\noptional"]
26738 #[serde(rename = "type")]
26739 #[serde(skip_serializing_if = "Option::is_none")]
26740 pub r#type: Option<String>,
26741 #[doc = "Unique ID\n\nA unique string or numeric identifier that distinguishes this node from all others in the graph. Must be unique across all nodes.\n\nrequired"]
26742 #[serde(rename = "uid")]
26743 #[serde(skip_serializing_if = "Option::is_none")]
26744 pub uid: Option<String>,
26745}
26746#[doc = "Object\n\nAn unordered collection of attributes. It defines a set of attributes available in all objects. It can be also used as a generic object to log objects that are not otherwise defined by the schema.\n\n[] Category: | Name: object"]
26747#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26748#[serde(default)]
26749#[non_exhaustive]
26750pub struct Object {}
26751#[doc = "Observable\n\nThe observable object is a pivot element that contains related information found in many places in the event.\n\n[] Category: | Name: observable"]
26752#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26753#[serde(default)]
26754#[non_exhaustive]
26755pub struct Observable {
26756 #[doc = "Event UID\n\nThe unique identifier (<code>metadata.uid</code>) of the source OCSF event from which this observable was extracted. This field enables linking observables back to their originating event data when observables are stored in a separate location or system.\n\noptional"]
26757 #[serde(rename = "event_uid")]
26758 #[serde(skip_serializing_if = "Option::is_none")]
26759 pub event_uid: Option<String>,
26760 #[doc = "Name\n\nThe full name of the observable attribute. The <code>name</code> is a pointer/reference to an attribute within the OCSF event data. For example: <code>file.name</code>. Array attributes may be represented in one of three ways. For example: <code>resources.uid</code>, <code>resources[].uid</code>, <code>resources[0].uid</code>.\n\nrecommended"]
26761 #[serde(rename = "name")]
26762 #[serde(skip_serializing_if = "Option::is_none")]
26763 pub name: Option<String>,
26764 #[doc = "Reputation Scores\n\nContains the original and normalized reputation scores.\n\noptional"]
26765 #[serde(rename = "reputation")]
26766 #[serde(skip_serializing_if = "Option::is_none")]
26767 pub reputation: Option<Box<Reputation>>,
26768 #[doc = "Type\n\nThe observable value type name.\n\noptional"]
26769 #[serde(rename = "type")]
26770 #[serde(skip_serializing_if = "Option::is_none")]
26771 pub r#type: Option<String>,
26772 #[doc = "Type ID\n\nThe observable value type identifier.\n\nrequired"]
26773 #[serde(rename = "type_id")]
26774 #[serde(skip_serializing_if = "Option::is_none")]
26775 pub type_id: Option<i64>,
26776 #[doc = "Type ID\n\nThe OCSF event type UID (<code>type_uid</code>) of the source event that this observable was extracted from. This field enables filtering and categorizing observables by their originating event type. For example: <code>300101</code> for Network Activity (class_uid 3001) with activity_id 1.\n\noptional"]
26777 #[serde(rename = "type_uid")]
26778 #[serde(skip_serializing_if = "Option::is_none")]
26779 pub type_uid: Option<i64>,
26780 #[doc = "Value\n\nThe value associated with the observable attribute. The meaning of the value depends on the observable type.<br/>If the <code>name</code> refers to a scalar attribute, then the <code>value</code> is the value of the attribute.<br/>If the <code>name</code> refers to an object attribute, then the <code>value</code> is not populated.\n\noptional"]
26781 #[serde(rename = "value")]
26782 #[serde(skip_serializing_if = "Option::is_none")]
26783 pub value: Option<String>,
26784}
26785#[doc = "Observation\n\nA record of an observed value or event that captures the timing and frequency of its occurrence. Used to track when values/events were first detected, last detected, and their total occurrence count.\n\n[] Category: | Name: observation"]
26786#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26787#[serde(default)]
26788#[non_exhaustive]
26789pub struct Observation {
26790 #[doc = "Count\n\nInteger representing the total number of times this specific value/event was observed across all occurrences. Helps establish prevalence and patterns.\n\nrecommended"]
26791 #[serde(rename = "count")]
26792 #[serde(skip_serializing_if = "Option::is_none")]
26793 pub count: Option<i64>,
26794 #[doc = "Time Span\n\nThe time window when the value or event was first observed. It is used to analyze activity patterns, detect trends, or correlate events within a specific timeframe.\n\nrecommended"]
26795 #[serde(rename = "timespan")]
26796 #[serde(skip_serializing_if = "Option::is_none")]
26797 pub timespan: Option<Box<Timespan>>,
26798 #[doc = "Value\n\nThe specific value, event, indicator or data point that was observed and recorded. This is the core piece of information being tracked.\n\nrequired"]
26799 #[serde(rename = "value")]
26800 #[serde(skip_serializing_if = "Option::is_none")]
26801 pub value: Option<String>,
26802}
26803#[doc = "Occurrence Details\n\nDetails about where in the target entity, specified information was discovered. Only the attributes, relevant to the target entity type should be populated.\n\n[] Category: | Name: occurrence_details\n\n**Constraints:**\n* at_least_one: `[cell_name`,`column_name`,`column_number`,`end_line`,`json_path`,`page_number`,`record_index_in_array`,`row_number`,`start_line]`\n"]
26804#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26805#[serde(default)]
26806#[non_exhaustive]
26807pub struct OccurrenceDetails {
26808 #[doc = "Cell Name\n\nThe cell name/reference in a spreadsheet. e.g <code>A2</code>\n\noptional"]
26809 #[serde(rename = "cell_name")]
26810 #[serde(skip_serializing_if = "Option::is_none")]
26811 pub cell_name: Option<String>,
26812 #[doc = "Column Name\n\nThe column name in a spreadsheet, where the information was discovered.\n\noptional"]
26813 #[serde(rename = "column_name")]
26814 #[serde(skip_serializing_if = "Option::is_none")]
26815 pub column_name: Option<String>,
26816 #[doc = "Column Number\n\nThe column number in a spreadsheet or a plain text document, where the information was discovered.\n\noptional"]
26817 #[serde(rename = "column_number")]
26818 #[serde(skip_serializing_if = "Option::is_none")]
26819 pub column_number: Option<i64>,
26820 #[doc = "End Line\n\nThe line number of the last line of the file, where the information was discovered.\n\noptional"]
26821 #[serde(rename = "end_line")]
26822 #[serde(skip_serializing_if = "Option::is_none")]
26823 pub end_line: Option<i64>,
26824 #[doc = "JSON Path\n\nThe JSON path of the attribute in a json record, where the information was discovered\n\noptional"]
26825 #[serde(rename = "json_path")]
26826 #[serde(skip_serializing_if = "Option::is_none")]
26827 pub json_path: Option<String>,
26828 #[doc = "Page Number\n\nThe page number in a document, where the information was discovered.\n\noptional"]
26829 #[serde(rename = "page_number")]
26830 #[serde(skip_serializing_if = "Option::is_none")]
26831 pub page_number: Option<i64>,
26832 #[doc = "Record Index in Array\n\nThe index of the record in the array of records, where the information was discovered. e.g. the index of a record in an array of JSON records in a file.\n\noptional"]
26833 #[serde(rename = "record_index_in_array")]
26834 #[serde(skip_serializing_if = "Option::is_none")]
26835 pub record_index_in_array: Option<i64>,
26836 #[doc = "Row Number\n\nThe row number in a spreadsheet, where the information was discovered.\n\noptional"]
26837 #[serde(rename = "row_number")]
26838 #[serde(skip_serializing_if = "Option::is_none")]
26839 pub row_number: Option<i64>,
26840 #[doc = "Start Line\n\nThe line number of the first line of the file, where the information was discovered.\n\noptional"]
26841 #[serde(rename = "start_line")]
26842 #[serde(skip_serializing_if = "Option::is_none")]
26843 pub start_line: Option<i64>,
26844}
26845#[doc = "Organization\n\nThe Organization object describes characteristics of an organization or company and its division if any. Additionally, it also describes cloud and Software-as-a-Service (SaaS) logical hierarchies such as AWS Organizations, Google Cloud Organizations, Oracle Cloud Tenancies, and similar constructs.\n\n[] Category: | Name: organization\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
26846#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26847#[serde(default)]
26848#[non_exhaustive]
26849pub struct Organization {
26850 #[doc = "Name\n\nThe name of the organization, Oracle Cloud Tenancy, Google Cloud Organization, or AWS Organization. For example, <code> Widget, Inc. </code> or the <code> AWS Organization name </code>.\n\nrecommended"]
26851 #[serde(rename = "name")]
26852 #[serde(skip_serializing_if = "Option::is_none")]
26853 pub name: Option<String>,
26854 #[doc = "Org Unit Name\n\nThe name of an organizational unit, Google Cloud Folder, or AWS Org Unit. For example, the <code> GCP Project Name </code>, or <code> Dev_Prod_OU </code>.\n\nrecommended"]
26855 #[serde(rename = "ou_name")]
26856 #[serde(skip_serializing_if = "Option::is_none")]
26857 pub ou_name: Option<String>,
26858 #[doc = "Org Unit ID\n\nThe unique identifier of an organizational unit, Google Cloud Folder, or AWS Org Unit. For example, an <code> Oracle Cloud Tenancy ID </code>, <code> AWS OU ID </code>, or <code> GCP Folder ID </code>.\n\noptional"]
26859 #[serde(rename = "ou_uid")]
26860 #[serde(skip_serializing_if = "Option::is_none")]
26861 pub ou_uid: Option<String>,
26862 #[doc = "Unique ID\n\nThe unique identifier of the organization, Oracle Cloud Tenancy, Google Cloud Organization, or AWS Organization. For example, an <code> AWS Org ID </code> or <code> Oracle Cloud Domain ID </code>.\n\nrecommended"]
26863 #[serde(rename = "uid")]
26864 #[serde(skip_serializing_if = "Option::is_none")]
26865 pub uid: Option<String>,
26866}
26867#[doc = "Operating System (OS)\n\nThe Operating System (OS) object describes characteristics of an OS, such as Linux or Windows.\n\n[] Category: | Name: os"]
26868#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26869#[serde(default)]
26870#[non_exhaustive]
26871pub struct Os {
26872 #[doc = "OS Build\n\nThe operating system build number.\n\noptional"]
26873 #[serde(rename = "build")]
26874 #[serde(skip_serializing_if = "Option::is_none")]
26875 pub build: Option<String>,
26876 #[doc = "Country\n\nThe operating system country code, as defined by the ISO 3166-1 standard (Alpha-2 code).<p><b>Note:</b> The two letter country code should be capitalized. For example: <code>US</code> or <code>CA</code>.</p>\n\noptional"]
26877 #[serde(rename = "country")]
26878 #[serde(skip_serializing_if = "Option::is_none")]
26879 pub country: Option<String>,
26880 #[doc = "The product CPE identifier\n\nThe Common Platform Enumeration (CPE) name as described by (<a target='_blank' href='https://nvd.nist.gov/products/cpe'>NIST</a>) For example: <code>cpe:/a:apple:safari:16.2</code>.\n\noptional"]
26881 #[serde(rename = "cpe_name")]
26882 #[serde(skip_serializing_if = "Option::is_none")]
26883 pub cpe_name: Option<String>,
26884 #[doc = "CPU Bits\n\nThe cpu architecture, the number of bits used for addressing in memory. For example: <code>32</code> or <code>64</code>.\n\noptional"]
26885 #[serde(rename = "cpu_bits")]
26886 #[serde(skip_serializing_if = "Option::is_none")]
26887 pub cpu_bits: Option<i64>,
26888 #[doc = "OS Edition\n\nThe operating system edition. For example: <code>Professional</code>.\n\noptional"]
26889 #[serde(rename = "edition")]
26890 #[serde(skip_serializing_if = "Option::is_none")]
26891 pub edition: Option<String>,
26892 #[doc = "Kernel Release\n\nThe kernel release of the operating system. On Unix-based systems, this is determined from the <code>uname -r</code> command output, for example \"5.15.0-122-generic\".\n\noptional"]
26893 #[serde(rename = "kernel_release")]
26894 #[serde(skip_serializing_if = "Option::is_none")]
26895 pub kernel_release: Option<String>,
26896 #[doc = "Language\n\nThe two letter lower case language codes, as defined by <a target='_blank' href='https://en.wikipedia.org/wiki/ISO_639-1'>ISO 639-1</a>. For example: <code>en</code> (English), <code>de</code> (German), or <code>fr</code> (French).\n\noptional"]
26897 #[serde(rename = "lang")]
26898 #[serde(skip_serializing_if = "Option::is_none")]
26899 pub lang: Option<String>,
26900 #[doc = "Name\n\nThe operating system name.\n\nrequired"]
26901 #[serde(rename = "name")]
26902 #[serde(skip_serializing_if = "Option::is_none")]
26903 pub name: Option<String>,
26904 #[doc = "OS Service Pack\n\nThe name of the latest Service Pack.\n\noptional"]
26905 #[serde(rename = "sp_name")]
26906 #[serde(skip_serializing_if = "Option::is_none")]
26907 pub sp_name: Option<String>,
26908 #[doc = "OS Service Pack Version\n\nThe version number of the latest Service Pack.\n\noptional"]
26909 #[serde(rename = "sp_ver")]
26910 #[serde(skip_serializing_if = "Option::is_none")]
26911 pub sp_ver: Option<i64>,
26912 #[doc = "Type\n\nThe type of the operating system.\n\noptional"]
26913 #[serde(rename = "type")]
26914 #[serde(skip_serializing_if = "Option::is_none")]
26915 pub r#type: Option<String>,
26916 #[doc = "Type ID\n\nThe type identifier of the operating system.\n\nrequired"]
26917 #[serde(rename = "type_id")]
26918 #[serde(skip_serializing_if = "Option::is_none")]
26919 pub type_id: Option<i64>,
26920 #[doc = "Version\n\nThe version of the OS running on the device that originated the event. For example: \"Windows 10\", \"OS X 10.7\", or \"iOS 9\".\n\noptional"]
26921 #[serde(rename = "version")]
26922 #[serde(skip_serializing_if = "Option::is_none")]
26923 pub version: Option<String>,
26924}
26925#[doc = "OSINT\n\nThe OSINT (Open Source Intelligence) object contains details related to an indicator such as the indicator itself, related indicators, geolocation, registrar information, subdomains, analyst commentary, and other contextual information. This information can be used to further enrich a detection or finding by providing decisioning support to other analysts and engineers.\n\n[] Category: | Name: osint"]
26926#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
26927#[serde(default)]
26928#[non_exhaustive]
26929pub struct Osint {
26930 #[doc = "Related DNS Answers\n\nAny pertinent DNS answers information related to an indicator or OSINT analysis.\n\noptional"]
26931 #[serde(rename = "answers")]
26932 #[serde(skip_serializing_if = "Option::is_none")]
26933 pub answers: Option<Vec<DnsAnswer>>,
26934 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nMITRE ATT&CK Tactics, Techniques, and/or Procedures (TTPs) pertinent to an indicator or OSINT analysis.\n\noptional"]
26935 #[serde(rename = "attacks")]
26936 #[serde(skip_serializing_if = "Option::is_none")]
26937 pub attacks: Option<Vec<Attack>>,
26938 #[doc = "Autonomous System\n\nAny pertinent autonomous system information related to an indicator or OSINT analysis.\n\noptional"]
26939 #[serde(rename = "autonomous_system")]
26940 #[serde(skip_serializing_if = "Option::is_none")]
26941 pub autonomous_system: Option<Box<AutonomousSystem>>,
26942 #[doc = "Campaign\n\nThe campaign object describes details about the campaign that was the source of the activity.\n\noptional"]
26943 #[serde(rename = "campaign")]
26944 #[serde(skip_serializing_if = "Option::is_none")]
26945 pub campaign: Option<Box<Campaign>>,
26946 #[doc = "Category\n\nCategorizes the threat indicator based on its functional or operational role.\n\noptional"]
26947 #[serde(rename = "category")]
26948 #[serde(skip_serializing_if = "Option::is_none")]
26949 pub category: Option<String>,
26950 #[doc = "Analyst Comments\n\nAnalyst commentary or source commentary about an indicator or OSINT analysis.\n\noptional"]
26951 #[serde(rename = "comment")]
26952 #[serde(skip_serializing_if = "Option::is_none")]
26953 pub comment: Option<String>,
26954 #[doc = "Confidence\n\nThe confidence of an indicator being malicious and/or pertinent, normalized to the caption of the confidence_id value. In the case of 'Other', it is defined by the event source or analyst.\n\noptional"]
26955 #[serde(rename = "confidence")]
26956 #[serde(skip_serializing_if = "Option::is_none")]
26957 pub confidence: Option<String>,
26958 #[doc = "Confidence ID\n\nThe normalized confidence refers to the accuracy of collected information related to the OSINT or how pertinent an indicator or analysis is to a specific event or finding. A low confidence means that the information collected or analysis conducted lacked detail or is not accurate enough to qualify an indicator as fully malicious.\n\nrecommended"]
26959 #[serde(rename = "confidence_id")]
26960 #[serde(skip_serializing_if = "Option::is_none")]
26961 pub confidence_id: Option<i64>,
26962 #[doc = "Created Time\n\nThe timestamp when the indicator was initially created or identified.\n\noptional"]
26963 #[serde(rename = "created_time")]
26964 #[serde(skip_serializing_if = "Option::is_none")]
26965 pub created_time: Option<i64>,
26966 #[doc = "Created Time\n\nThe timestamp when the indicator was initially created or identified.\n\noptional"]
26967 #[serde(rename = "created_time_dt")]
26968 #[serde(skip_serializing_if = "Option::is_none")]
26969 pub created_time_dt: Option<String>,
26970 #[doc = "Creator\n\nThe identifier of the user, system, or organization that contributed the indicator.\n\noptional"]
26971 #[serde(rename = "creator")]
26972 #[serde(skip_serializing_if = "Option::is_none")]
26973 pub creator: Option<Box<User>>,
26974 #[doc = "Description\n\nA detailed explanation of the indicator, including its context, purpose, and relevance.\n\noptional"]
26975 #[serde(rename = "desc")]
26976 #[serde(skip_serializing_if = "Option::is_none")]
26977 pub desc: Option<String>,
26978 #[doc = "Detection Pattern\n\nThe specific detection pattern or signature associated with the indicator.\n\noptional"]
26979 #[serde(rename = "detection_pattern")]
26980 #[serde(skip_serializing_if = "Option::is_none")]
26981 pub detection_pattern: Option<String>,
26982 #[doc = "Detection Pattern\n\nThe detection pattern type, normalized to the caption of the detection_pattern_type_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
26983 #[serde(rename = "detection_pattern_type")]
26984 #[serde(skip_serializing_if = "Option::is_none")]
26985 pub detection_pattern_type: Option<String>,
26986 #[doc = "Detection Pattern Type ID\n\nSpecifies the type of detection pattern used to identify the associated threat indicator.\n\noptional"]
26987 #[serde(rename = "detection_pattern_type_id")]
26988 #[serde(skip_serializing_if = "Option::is_none")]
26989 pub detection_pattern_type_id: Option<i64>,
26990 #[doc = "Related Email\n\nAny email information pertinent to an indicator or OSINT analysis.\n\noptional"]
26991 #[serde(rename = "email")]
26992 #[serde(skip_serializing_if = "Option::is_none")]
26993 pub email: Option<Box<Email>>,
26994 #[doc = "Related Email Authentication\n\nAny email authentication information pertinent to an indicator or OSINT analysis.\n\noptional"]
26995 #[serde(rename = "email_auth")]
26996 #[serde(skip_serializing_if = "Option::is_none")]
26997 pub email_auth: Option<Box<EmailAuth>>,
26998 #[doc = "Expiration Time\n\nThe expiration date of the indicator, after which it is no longer considered reliable.\n\noptional"]
26999 #[serde(rename = "expiration_time")]
27000 #[serde(skip_serializing_if = "Option::is_none")]
27001 pub expiration_time: Option<i64>,
27002 #[doc = "Expiration Time\n\nThe expiration date of the indicator, after which it is no longer considered reliable.\n\noptional"]
27003 #[serde(rename = "expiration_time_dt")]
27004 #[serde(skip_serializing_if = "Option::is_none")]
27005 pub expiration_time_dt: Option<String>,
27006 #[doc = "External ID\n\nA unique identifier assigned by an external system for cross-referencing.\n\noptional"]
27007 #[serde(rename = "external_uid")]
27008 #[serde(skip_serializing_if = "Option::is_none")]
27009 pub external_uid: Option<String>,
27010 #[doc = "Related File\n\nAny pertinent file information related to an indicator or OSINT analysis.\n\noptional"]
27011 #[serde(rename = "file")]
27012 #[serde(skip_serializing_if = "Option::is_none")]
27013 pub file: Option<Box<File>>,
27014 #[doc = "Intrusion Sets\n\nA grouping of adversarial behaviors and resources believed to be associated with specific threat actors or campaigns. Intrusion sets often encompass multiple campaigns and are used to organize related activities under a common label.\n\noptional"]
27015 #[serde(rename = "intrusion_sets")]
27016 #[serde(skip_serializing_if = "Option::is_none")]
27017 pub intrusion_sets: Option<Vec<String>>,
27018 #[doc = "Kill Chain\n\nLockheed Martin Kill Chain Phases pertinent to an indicator or OSINT analysis.\n\noptional"]
27019 #[serde(rename = "kill_chain")]
27020 #[serde(skip_serializing_if = "Option::is_none")]
27021 pub kill_chain: Option<Vec<KillChainPhase>>,
27022 #[doc = "Labels\n\nTags or keywords associated with the indicator to enhance searchability.\n\noptional"]
27023 #[serde(rename = "labels")]
27024 #[serde(skip_serializing_if = "Option::is_none")]
27025 pub labels: Option<Vec<String>>,
27026 #[doc = "Geo Location\n\nAny pertinent geolocation information related to an indicator or OSINT analysis.\n\noptional"]
27027 #[serde(rename = "location")]
27028 #[serde(skip_serializing_if = "Option::is_none")]
27029 pub location: Option<Box<Location>>,
27030 #[doc = "Malware\n\nA list of Malware objects, describing details about the identified malware.\n\noptional"]
27031 #[serde(rename = "malware")]
27032 #[serde(skip_serializing_if = "Option::is_none")]
27033 pub malware: Option<Vec<Malware>>,
27034 #[doc = "Modified Time\n\nThe timestamp of the last modification or update to the indicator.\n\noptional"]
27035 #[serde(rename = "modified_time")]
27036 #[serde(skip_serializing_if = "Option::is_none")]
27037 pub modified_time: Option<i64>,
27038 #[doc = "Modified Time\n\nThe timestamp of the last modification or update to the indicator.\n\noptional"]
27039 #[serde(rename = "modified_time_dt")]
27040 #[serde(skip_serializing_if = "Option::is_none")]
27041 pub modified_time_dt: Option<String>,
27042 #[doc = "Name\n\nThe <code>name</code> is a pointer/reference to an attribute within the OCSF event data. For example: file.name.\n\noptional"]
27043 #[serde(rename = "name")]
27044 #[serde(skip_serializing_if = "Option::is_none")]
27045 pub name: Option<String>,
27046 #[doc = "References\n\nProvides a reference to an external source of information related to the CTI being represented. This may include a URL, a document, or some other type of reference that provides additional context or information about the CTI.\n\noptional"]
27047 #[serde(rename = "references")]
27048 #[serde(skip_serializing_if = "Option::is_none")]
27049 pub references: Option<Vec<String>>,
27050 #[doc = "Related Analytics\n\nAny analytics related to an indicator or OSINT analysis.\n\noptional"]
27051 #[serde(rename = "related_analytics")]
27052 #[serde(skip_serializing_if = "Option::is_none")]
27053 pub related_analytics: Option<Vec<Analytic>>,
27054 #[doc = "Reputation Scores\n\nRelated reputational analysis from third-party engines and analysts for a given indicator or OSINT analysis.\n\noptional"]
27055 #[serde(rename = "reputation")]
27056 #[serde(skip_serializing_if = "Option::is_none")]
27057 pub reputation: Option<Box<Reputation>>,
27058 #[doc = "Risk Score\n\nA numerical representation of the threat indicator’s risk level.\n\noptional"]
27059 #[serde(rename = "risk_score")]
27060 #[serde(skip_serializing_if = "Option::is_none")]
27061 pub risk_score: Option<i64>,
27062 #[doc = "Related Script Data\n\nAny pertinent script information related to an indicator or OSINT analysis.\n\noptional"]
27063 #[serde(rename = "script")]
27064 #[serde(skip_serializing_if = "Option::is_none")]
27065 pub script: Option<Box<Script>>,
27066 #[doc = "Severity\n\nRepresents the severity level of the threat indicator, typically reflecting its potential impact or damage.\n\noptional"]
27067 #[serde(rename = "severity")]
27068 #[serde(skip_serializing_if = "Option::is_none")]
27069 pub severity: Option<String>,
27070 #[doc = "Severity ID\n\nThe normalized severity level of the threat indicator, typically reflecting its potential impact or damage.\n\noptional"]
27071 #[serde(rename = "severity_id")]
27072 #[serde(skip_serializing_if = "Option::is_none")]
27073 pub severity_id: Option<i64>,
27074 #[doc = "Related Digital Signatures\n\nAny digital signatures or hashes related to an indicator or OSINT analysis.\n\noptional"]
27075 #[serde(rename = "signatures")]
27076 #[serde(skip_serializing_if = "Option::is_none")]
27077 pub signatures: Option<Vec<DigitalSignature>>,
27078 #[doc = "Source URL\n\nThe source URL of an indicator or OSINT analysis, e.g., a URL back to a TIP, report, or otherwise.\n\noptional"]
27079 #[serde(rename = "src_url")]
27080 #[serde(skip_serializing_if = "Option::is_none")]
27081 pub src_url: Option<String>,
27082 #[doc = "Related Subdomains\n\nAny pertinent subdomain information - such as those generated by a Domain Generation Algorithm - related to an indicator or OSINT analysis.\n\noptional"]
27083 #[serde(rename = "subdomains")]
27084 #[serde(skip_serializing_if = "Option::is_none")]
27085 pub subdomains: Option<Vec<String>>,
27086 #[doc = "Related Subnet\n\nA CIDR or network block related to an indicator or OSINT analysis.\n\noptional"]
27087 #[serde(rename = "subnet")]
27088 #[serde(skip_serializing_if = "Option::is_none")]
27089 pub subnet: Option<String>,
27090 #[doc = "Threat Actor\n\nA threat actor is an individual or group that conducts malicious cyber activities, often with financial, political, or ideological motives.\n\noptional"]
27091 #[serde(rename = "threat_actor")]
27092 #[serde(skip_serializing_if = "Option::is_none")]
27093 pub threat_actor: Option<Box<ThreatActor>>,
27094 #[doc = "Traffic Light Protocol\n\nThe <a target='_blank' href='https://www.first.org/tlp/'>Traffic Light Protocol</a> was created to facilitate greater sharing of potentially sensitive information and more effective collaboration. TLP provides a simple and intuitive schema for indicating with whom potentially sensitive information can be shared.\n\nrecommended"]
27095 #[serde(rename = "tlp")]
27096 #[serde(skip_serializing_if = "Option::is_none")]
27097 pub tlp: Option<String>,
27098 #[doc = "Type\n\nThe OSINT indicator type.\n\noptional"]
27099 #[serde(rename = "type")]
27100 #[serde(skip_serializing_if = "Option::is_none")]
27101 pub r#type: Option<String>,
27102 #[doc = "Indicator Type ID\n\nThe OSINT indicator type ID.\n\nrequired"]
27103 #[serde(rename = "type_id")]
27104 #[serde(skip_serializing_if = "Option::is_none")]
27105 pub type_id: Option<i64>,
27106 #[doc = "Unique ID\n\nThe unique identifier for the OSINT object.\n\noptional"]
27107 #[serde(rename = "uid")]
27108 #[serde(skip_serializing_if = "Option::is_none")]
27109 pub uid: Option<String>,
27110 #[doc = "Uploaded Time\n\nThe timestamp indicating when the associated indicator or intelligence was added to the system or repository.\n\noptional"]
27111 #[serde(rename = "uploaded_time")]
27112 #[serde(skip_serializing_if = "Option::is_none")]
27113 pub uploaded_time: Option<i64>,
27114 #[doc = "Uploaded Time\n\nThe timestamp indicating when the associated indicator or intelligence was added to the system or repository.\n\noptional"]
27115 #[serde(rename = "uploaded_time_dt")]
27116 #[serde(skip_serializing_if = "Option::is_none")]
27117 pub uploaded_time_dt: Option<String>,
27118 #[doc = "Indicator\n\nThe actual indicator value in scope, e.g., a SHA-256 hash hexdigest or a domain name.\n\nrequired"]
27119 #[serde(rename = "value")]
27120 #[serde(skip_serializing_if = "Option::is_none")]
27121 pub value: Option<String>,
27122 #[doc = "Vendor Name\n\nThe vendor name of a tool which generates intelligence or provides indicators.\n\noptional"]
27123 #[serde(rename = "vendor_name")]
27124 #[serde(skip_serializing_if = "Option::is_none")]
27125 pub vendor_name: Option<String>,
27126 #[doc = "Related Vulnerabilities\n\nAny vulnerabilities related to an indicator or OSINT analysis.\n\noptional"]
27127 #[serde(rename = "vulnerabilities")]
27128 #[serde(skip_serializing_if = "Option::is_none")]
27129 pub vulnerabilities: Option<Vec<Vulnerability>>,
27130 #[doc = "WHOIS\n\nAny pertinent WHOIS information related to an indicator or OSINT analysis.\n\noptional"]
27131 #[serde(rename = "whois")]
27132 #[serde(skip_serializing_if = "Option::is_none")]
27133 pub whois: Option<Box<Whois>>,
27134}
27135#[doc = "Software Package\n\nThe Software Package object describes details about a software package.\n\n[] Category: | Name: package"]
27136#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27137#[serde(default)]
27138#[non_exhaustive]
27139pub struct Package {
27140 #[doc = "Architecture\n\nArchitecture is a shorthand name describing the type of computer hardware the packaged software is meant to run on.\n\nrecommended"]
27141 #[serde(rename = "architecture")]
27142 #[serde(skip_serializing_if = "Option::is_none")]
27143 pub architecture: Option<String>,
27144 #[doc = "The product CPE identifier\n\nThe Common Platform Enumeration (CPE) name as described by (<a target='_blank' href='https://nvd.nist.gov/products/cpe'>NIST</a>) For example: <code>cpe:/a:apple:safari:16.2</code>.\n\noptional"]
27145 #[serde(rename = "cpe_name")]
27146 #[serde(skip_serializing_if = "Option::is_none")]
27147 pub cpe_name: Option<String>,
27148 #[doc = "Epoch\n\nThe software package epoch. Epoch is a way to define weighted dependencies based on version numbers.\n\noptional"]
27149 #[serde(rename = "epoch")]
27150 #[serde(skip_serializing_if = "Option::is_none")]
27151 pub epoch: Option<i64>,
27152 #[doc = "Hash\n\nCryptographic hash to identify the binary instance of a software component. This can include any component such file, package, or library.\n\noptional"]
27153 #[serde(rename = "hash")]
27154 #[serde(skip_serializing_if = "Option::is_none")]
27155 pub hash: Option<Box<Fingerprint>>,
27156 #[doc = "Software License\n\nThe software license applied to this package.\n\noptional"]
27157 #[serde(rename = "license")]
27158 #[serde(skip_serializing_if = "Option::is_none")]
27159 pub license: Option<String>,
27160 #[doc = "Software License URL\n\nThe URL pointing to the license applied on package or software. This is typically a <code>LICENSE.md</code> file within a repository.\n\noptional"]
27161 #[serde(rename = "license_url")]
27162 #[serde(skip_serializing_if = "Option::is_none")]
27163 pub license_url: Option<String>,
27164 #[doc = "Name\n\nThe software package name.\n\nrequired"]
27165 #[serde(rename = "name")]
27166 #[serde(skip_serializing_if = "Option::is_none")]
27167 pub name: Option<String>,
27168 #[doc = "Package Manager\n\nThe software packager manager utilized to manage a package on a system, e.g. npm, yum, dpkg etc.\n\noptional"]
27169 #[serde(rename = "package_manager")]
27170 #[serde(skip_serializing_if = "Option::is_none")]
27171 pub package_manager: Option<String>,
27172 #[doc = "Package Manager URL\n\nThe URL of the package or library at the package manager, or the specific URL or URI of an internal package manager link such as <code>AWS CodeArtifact</code> or <code>Artifactory</code>.\n\noptional"]
27173 #[serde(rename = "package_manager_url")]
27174 #[serde(skip_serializing_if = "Option::is_none")]
27175 pub package_manager_url: Option<String>,
27176 #[doc = "Package URL\n\nA purl is a URL string used to identify and locate a software package in a mostly universal and uniform way across programming languages, package managers, packaging conventions, tools, APIs and databases.\n\noptional"]
27177 #[serde(rename = "purl")]
27178 #[serde(skip_serializing_if = "Option::is_none")]
27179 pub purl: Option<String>,
27180 #[doc = "Software Release Details\n\nRelease is the number of times a version of the software has been packaged.\n\noptional"]
27181 #[serde(rename = "release")]
27182 #[serde(skip_serializing_if = "Option::is_none")]
27183 pub release: Option<String>,
27184 #[doc = "Source URL\n\nThe link to the specific library or package such as within <code>GitHub</code>, this is different from the link to the package manager where the library or package is hosted.\n\noptional"]
27185 #[serde(rename = "src_url")]
27186 #[serde(skip_serializing_if = "Option::is_none")]
27187 pub src_url: Option<String>,
27188 #[doc = "Type\n\nThe type of software package, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
27189 #[serde(rename = "type")]
27190 #[serde(skip_serializing_if = "Option::is_none")]
27191 pub r#type: Option<String>,
27192 #[doc = "Type ID\n\nThe type of software package.\n\nrecommended"]
27193 #[serde(rename = "type_id")]
27194 #[serde(skip_serializing_if = "Option::is_none")]
27195 pub type_id: Option<i64>,
27196 #[doc = "Package UID\n\nA unique identifier for the package or library reported by the source tool. E.g., the <code>libId</code> within the <code>sbom</code> field of an OX Security Issue or the SPDX <code>components.*.bom-ref</code>.\n\noptional"]
27197 #[serde(rename = "uid")]
27198 #[serde(skip_serializing_if = "Option::is_none")]
27199 pub uid: Option<String>,
27200 #[doc = "Vendor Name\n\nThe name of the vendor who published the software package.\n\noptional"]
27201 #[serde(rename = "vendor_name")]
27202 #[serde(skip_serializing_if = "Option::is_none")]
27203 pub vendor_name: Option<String>,
27204 #[doc = "Version\n\nThe software package version.\n\nrequired"]
27205 #[serde(rename = "version")]
27206 #[serde(skip_serializing_if = "Option::is_none")]
27207 pub version: Option<String>,
27208}
27209#[doc = "Parameter\n\nThe Parameter object provides details regarding a parameter of a a function.\n\n[] Category: | Name: parameter\n\n**Constraints:**\n* at_least_one: `[name`,`pre_value`,`post_value]`\n"]
27210#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27211#[serde(default)]
27212#[non_exhaustive]
27213pub struct Parameter {
27214 #[doc = "Name\n\nThe parameter name.\n\noptional"]
27215 #[serde(rename = "name")]
27216 #[serde(skip_serializing_if = "Option::is_none")]
27217 pub name: Option<String>,
27218 #[doc = "Post-Value\n\nThe parameter value after function execution.\n\noptional"]
27219 #[serde(rename = "post_value")]
27220 #[serde(skip_serializing_if = "Option::is_none")]
27221 pub post_value: Option<String>,
27222 #[doc = "Pre-Value\n\nThe parameter value before function execution.\n\noptional"]
27223 #[serde(rename = "pre_value")]
27224 #[serde(skip_serializing_if = "Option::is_none")]
27225 pub pre_value: Option<String>,
27226}
27227#[doc = "Peripheral Device\n\nThe peripheral device object describes the properties of external, connectable, and detachable hardware.\n\n[] Category: | Name: peripheral_device\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27228#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27229#[serde(default)]
27230#[non_exhaustive]
27231pub struct PeripheralDevice {
27232 #[doc = "Class\n\nThe class of the peripheral device.\n\noptional"]
27233 #[serde(rename = "class")]
27234 #[serde(skip_serializing_if = "Option::is_none")]
27235 pub class: Option<String>,
27236 #[doc = "Model\n\nThe peripheral device model.\n\nrecommended"]
27237 #[serde(rename = "model")]
27238 #[serde(skip_serializing_if = "Option::is_none")]
27239 pub model: Option<String>,
27240 #[doc = "Name\n\nThe name of the peripheral device.\n\nrequired"]
27241 #[serde(rename = "name")]
27242 #[serde(skip_serializing_if = "Option::is_none")]
27243 pub name: Option<String>,
27244 #[doc = "Serial Number\n\nThe peripheral device serial number.\n\nrecommended"]
27245 #[serde(rename = "serial_number")]
27246 #[serde(skip_serializing_if = "Option::is_none")]
27247 pub serial_number: Option<String>,
27248 #[doc = "Peripheral Device Type\n\nThe Peripheral Device type, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
27249 #[serde(rename = "type")]
27250 #[serde(skip_serializing_if = "Option::is_none")]
27251 pub r#type: Option<String>,
27252 #[doc = "Peripheral Device Type ID\n\nThe normalized peripheral device type ID.\n\nrecommended"]
27253 #[serde(rename = "type_id")]
27254 #[serde(skip_serializing_if = "Option::is_none")]
27255 pub type_id: Option<i64>,
27256 #[doc = "Unique ID\n\nThe unique identifier of the peripheral device.\n\nrecommended"]
27257 #[serde(rename = "uid")]
27258 #[serde(skip_serializing_if = "Option::is_none")]
27259 pub uid: Option<String>,
27260 #[doc = "Vendor ID List\n\nThe list of vendor IDs for the peripheral device.\n\nrecommended"]
27261 #[serde(rename = "vendor_id_list")]
27262 #[serde(skip_serializing_if = "Option::is_none")]
27263 pub vendor_id_list: Option<Vec<String>>,
27264 #[doc = "Vendor Name\n\nThe primary vendor name for the peripheral device.\n\nrecommended"]
27265 #[serde(rename = "vendor_name")]
27266 #[serde(skip_serializing_if = "Option::is_none")]
27267 pub vendor_name: Option<String>,
27268}
27269#[doc = "Permission Analysis Result\n\nThe Permission Analysis object describes analysis results of permissions, policies directly associated with an identity (user, role, or service account). This evaluates what permissions an identity has been granted through attached policies, which privileges are actively used versus unused, and identifies potential over-privileged access. Use this for identity-centric security assessments such as privilege audits, dormant permission discovery, and least-privilege compliance analysis.\n\n[] Category: | Name: permission_analysis_result"]
27270#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27271#[serde(default)]
27272#[non_exhaustive]
27273pub struct PermissionAnalysisResult {
27274 #[doc = "Condition Keys\n\nThe condition keys and their values that were evaluated during policy analysis, including contextual constraints that affect permission grants. These conditions define when and how permissions are applied. Examples: <code>aws:SourceIp:1.2.3.4</code>, <code>aws:RequestedRegion:us-east-1</code>.\n\noptional"]
27275 #[serde(rename = "condition_keys")]
27276 #[serde(skip_serializing_if = "Option::is_none")]
27277 pub condition_keys: Option<Vec<KeyValueObject>>,
27278 #[doc = "Granted Privileges\n\nThe specific privileges, actions, or permissions that are explicitly granted by the analyzed policy. Examples: AWS actions like <code>s3:GetObject</code>, <code>ec2:RunInstances</code>, <code>iam:CreateUser</code>; Azure actions like <code>Microsoft.Storage/storageAccounts/read</code>; or GCP permissions like <code>storage.objects.get</code>.\n\noptional"]
27279 #[serde(rename = "granted_privileges")]
27280 #[serde(skip_serializing_if = "Option::is_none")]
27281 pub granted_privileges: Option<Vec<String>>,
27282 #[doc = "Policy\n\nDetailed information about the policy document that was analyzed, including policy metadata, version, type (identity-based, resource-based, etc.), and structural details. This provides context for understanding the scope and nature of the permission analysis.\n\nrecommended"]
27283 #[serde(rename = "policy")]
27284 #[serde(skip_serializing_if = "Option::is_none")]
27285 pub policy: Option<Box<Policy>>,
27286 #[doc = "Unused Privileges Count\n\nThe total count of privileges or actions defined in the policy that have not been utilized within the analysis timeframe. This metric helps identify over-privileged access and opportunities for privilege reduction to follow the principle of least privilege. High counts may indicate policy bloat or excessive permissions.\n\noptional"]
27287 #[serde(rename = "unused_privileges_count")]
27288 #[serde(skip_serializing_if = "Option::is_none")]
27289 pub unused_privileges_count: Option<i64>,
27290 #[doc = "Unused Services Count\n\nThe total count of cloud services or resource types referenced in the policy that have not been accessed or utilized within the analysis timeframe. This helps identify unused service permissions that could be removed to reduce attack surface. Examples: AWS services like S3, SQS, IAM, Lambda; Azure services like Storage, Compute, KeyVault; or GCP services like Cloud Storage, Compute Engine, BigQuery.\n\noptional"]
27291 #[serde(rename = "unused_services_count")]
27292 #[serde(skip_serializing_if = "Option::is_none")]
27293 pub unused_services_count: Option<i64>,
27294}
27295#[doc = "Policy\n\nThe Policy object describes the policies that are applicable. <p>Policy attributes provide traceability to the operational state of the security product at the time that the event was captured, facilitating forensics, troubleshooting, and policy tuning/adjustments.</p>\n\n[] Category: | Name: policy\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27296#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27297#[serde(default)]
27298#[non_exhaustive]
27299pub struct Policy {
27300 #[doc = "Data\n\nAdditional data about the policy such as the underlying JSON policy itself or other details.\n\noptional"]
27301 #[serde(rename = "data")]
27302 #[serde(skip_serializing_if = "Option::is_none")]
27303 pub data: Option<serde_json::Value>,
27304 #[doc = "Description\n\nThe description of the policy.\n\noptional"]
27305 #[serde(rename = "desc")]
27306 #[serde(skip_serializing_if = "Option::is_none")]
27307 pub desc: Option<String>,
27308 #[doc = "Group\n\nThe policy group.\n\noptional"]
27309 #[serde(rename = "group")]
27310 #[serde(skip_serializing_if = "Option::is_none")]
27311 pub group: Option<Box<Group>>,
27312 #[doc = "Applied\n\nA determination if the content of a policy was applied to a target or request, or not.\n\nrecommended"]
27313 #[serde(rename = "is_applied")]
27314 #[serde(skip_serializing_if = "Option::is_none")]
27315 pub is_applied: Option<bool>,
27316 #[doc = "Name\n\nThe policy name. For example: <code>AdministratorAccess Policy</code>.\n\nrecommended"]
27317 #[serde(rename = "name")]
27318 #[serde(skip_serializing_if = "Option::is_none")]
27319 pub name: Option<String>,
27320 #[doc = "Type\n\nThe policy type. For example: <code>Identity Policy, Resource Policy, Service Control Policy, etc./code>.\n\noptional"]
27321 #[serde(rename = "type")]
27322 #[serde(skip_serializing_if = "Option::is_none")]
27323 pub r#type: Option<String>,
27324 #[doc = "Unique ID\n\nA unique identifier of the policy instance.\n\nrecommended"]
27325 #[serde(rename = "uid")]
27326 #[serde(skip_serializing_if = "Option::is_none")]
27327 pub uid: Option<String>,
27328 #[doc = "Version\n\nThe policy version number.\n\nrecommended"]
27329 #[serde(rename = "version")]
27330 #[serde(skip_serializing_if = "Option::is_none")]
27331 pub version: Option<String>,
27332}
27333#[doc = "Port Information\n\nThe Port Information object describes a port and its associated protocol details.\n\n[] Category: | Name: port_info"]
27334#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27335#[serde(default)]
27336#[non_exhaustive]
27337pub struct PortInfo {
27338 #[doc = "Port\n\nThe port number. For example: <code>80</code>, <code>443</code>, <code>22</code>.\n\nrequired"]
27339 #[serde(rename = "port")]
27340 #[serde(skip_serializing_if = "Option::is_none")]
27341 pub port: Option<i64>,
27342 #[doc = "Protocol Name\n\nThe IP protocol name in lowercase, as defined by the Internet Assigned Numbers Authority (IANA). For example: <code>tcp</code> or <code>udp</code>.\n\nrecommended"]
27343 #[serde(rename = "protocol_name")]
27344 #[serde(skip_serializing_if = "Option::is_none")]
27345 pub protocol_name: Option<String>,
27346 #[doc = "Protocol Number\n\nThe IP protocol number, as defined by the Internet Assigned Numbers Authority (IANA). For example: <code>6</code> for TCP and <code>17</code> for UDP.\n\noptional"]
27347 #[serde(rename = "protocol_num")]
27348 #[serde(skip_serializing_if = "Option::is_none")]
27349 pub protocol_num: Option<i64>,
27350}
27351#[doc = "Process\n\nExtends the process object to add Windows specific fields.\n\n[] Category: | Name: process\n\n**Constraints:**\n* at_least_one: `[pid`,`uid`,`cpid]`\n"]
27352#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27353#[serde(default)]
27354#[non_exhaustive]
27355pub struct Process {
27356 #[doc = "Ancestry\n\nAn array of Process Entities describing the extended parentage of this process object. Direct parent information should be expressed through the <code>parent_process</code> attribute. The first array element is the direct parent of this process object. Subsequent list elements go up the process parentage hierarchy. That is, the array is sorted from newest to oldest process. It is recommended to only populate this field for the top-level process object.\n\noptional"]
27357 #[serde(rename = "ancestry")]
27358 #[serde(skip_serializing_if = "Option::is_none")]
27359 pub ancestry: Option<Vec<ProcessEntity>>,
27360 #[doc = "Audit User ID\n\nThe audit user assigned at login by the audit subsystem.\n\noptional"]
27361 #[serde(rename = "auid")]
27362 #[serde(skip_serializing_if = "Option::is_none")]
27363 pub auid: Option<i64>,
27364 #[doc = "Command Line\n\nThe full command line used to launch an application, service, process, or job. For example: <code>ssh user@10.0.0.10</code>. If the command line is unavailable or missing, the empty string <code>''</code> is to be used.\n\nrecommended"]
27365 #[serde(rename = "cmd_line")]
27366 #[serde(skip_serializing_if = "Option::is_none")]
27367 pub cmd_line: Option<String>,
27368 #[doc = "Container\n\nThe information describing an instance of a container. A container is a prepackaged, portable system image that runs isolated on an existing system using a container runtime like containerd.\n\nrecommended"]
27369 #[serde(rename = "container")]
27370 #[serde(skip_serializing_if = "Option::is_none")]
27371 pub container: Option<Box<Container>>,
27372 #[doc = "Common Process Identifier\n\nA unique process identifier that can be assigned deterministically by multiple system data producers.\n\nrecommended"]
27373 #[serde(rename = "cpid")]
27374 #[serde(skip_serializing_if = "Option::is_none")]
27375 pub cpid: Option<String>,
27376 #[doc = "Created Time\n\nThe time when the process was created/started.\n\nrecommended"]
27377 #[serde(rename = "created_time")]
27378 #[serde(skip_serializing_if = "Option::is_none")]
27379 pub created_time: Option<i64>,
27380 #[doc = "Created Time\n\nThe time when the process was created/started.\n\noptional"]
27381 #[serde(rename = "created_time_dt")]
27382 #[serde(skip_serializing_if = "Option::is_none")]
27383 pub created_time_dt: Option<String>,
27384 #[doc = "Effective Group ID\n\nThe effective group under which this process is running.\n\noptional"]
27385 #[serde(rename = "egid")]
27386 #[serde(skip_serializing_if = "Option::is_none")]
27387 pub egid: Option<i64>,
27388 #[doc = "Environment Variables\n\nEnvironment variables associated with the process.\n\noptional"]
27389 #[serde(rename = "environment_variables")]
27390 #[serde(skip_serializing_if = "Option::is_none")]
27391 pub environment_variables: Option<Vec<EnvironmentVariable>>,
27392 #[doc = "Effective User ID\n\nThe effective user under which this process is running.\n\noptional"]
27393 #[serde(rename = "euid")]
27394 #[serde(skip_serializing_if = "Option::is_none")]
27395 pub euid: Option<i64>,
27396 #[doc = "File\n\nThe process file object.\n\nrecommended"]
27397 #[serde(rename = "file")]
27398 #[serde(skip_serializing_if = "Option::is_none")]
27399 pub file: Option<Box<File>>,
27400 #[doc = "Group\n\nThe group under which this process is running.\n\nrecommended"]
27401 #[serde(rename = "group")]
27402 #[serde(skip_serializing_if = "Option::is_none")]
27403 pub group: Option<Box<Group>>,
27404 #[doc = "Hosted Services\n\nThe Windows services that this process is hosting.\n\noptional"]
27405 #[serde(rename = "hosted_services")]
27406 #[serde(skip_serializing_if = "Option::is_none")]
27407 pub hosted_services: Option<Vec<WinWinService>>,
27408 #[doc = "Integrity\n\nThe process integrity level, normalized to the caption of the integrity_id value. In the case of 'Other', it is defined by the event source (Windows only).\n\noptional"]
27409 #[serde(rename = "integrity")]
27410 #[serde(skip_serializing_if = "Option::is_none")]
27411 pub integrity: Option<String>,
27412 #[doc = "Integrity Level\n\nThe normalized identifier of the process integrity level (Windows only).\n\noptional"]
27413 #[serde(rename = "integrity_id")]
27414 #[serde(skip_serializing_if = "Option::is_none")]
27415 pub integrity_id: Option<i64>,
27416 #[doc = "Lineage\n\nThe lineage of the process, represented by a list of paths for each ancestor process. For example: <code>['/usr/sbin/sshd', '/usr/bin/bash', '/usr/bin/whoami']</code>.\n\noptional"]
27417 #[serde(rename = "lineage")]
27418 #[serde(skip_serializing_if = "Option::is_none")]
27419 pub lineage: Option<Vec<String>>,
27420 #[doc = "Loaded Modules\n\nThe list of loaded module names.\n\noptional"]
27421 #[serde(rename = "loaded_modules")]
27422 #[serde(skip_serializing_if = "Option::is_none")]
27423 pub loaded_modules: Option<Vec<String>>,
27424 #[doc = "Name\n\nThe friendly name of the process, for example: <code>Notepad++</code>.\n\nrecommended"]
27425 #[serde(rename = "name")]
27426 #[serde(skip_serializing_if = "Option::is_none")]
27427 pub name: Option<String>,
27428 #[doc = "Namespace PID\n\nIf running under a process namespace (such as in a container), the process identifier within that process namespace.\n\nrecommended"]
27429 #[serde(rename = "namespace_pid")]
27430 #[serde(skip_serializing_if = "Option::is_none")]
27431 pub namespace_pid: Option<i64>,
27432 #[doc = "Parent Process\n\nThe parent process of this process object. It is recommended to only populate this field for the top-level process object, to prevent deep nesting. Additional ancestry information can be supplied in the <code>ancestry</code> attribute.\n\nrecommended"]
27433 #[serde(rename = "parent_process")]
27434 #[serde(skip_serializing_if = "Option::is_none")]
27435 pub parent_process: Option<Box<Process>>,
27436 #[doc = "Path\n\nThe process file path.\n\noptional"]
27437 #[serde(rename = "path")]
27438 #[serde(skip_serializing_if = "Option::is_none")]
27439 pub path: Option<String>,
27440 #[doc = "Process ID\n\nThe process identifier, as reported by the operating system. Process ID (PID) is a number used by the operating system to uniquely identify an active process.\n\nrecommended"]
27441 #[serde(rename = "pid")]
27442 #[serde(skip_serializing_if = "Option::is_none")]
27443 pub pid: Option<i64>,
27444 #[doc = "Process Thread ID\n\nThe identifier of the process thread associated with the event, as returned by the operating system.\n\noptional"]
27445 #[serde(rename = "ptid")]
27446 #[serde(skip_serializing_if = "Option::is_none")]
27447 pub ptid: Option<i64>,
27448 #[doc = "Sandbox\n\nThe name of the containment jail (i.e., sandbox). For example, hardened_ps, high_security_ps, oracle_ps, netsvcs_ps, or default_ps.\n\noptional"]
27449 #[serde(rename = "sandbox")]
27450 #[serde(skip_serializing_if = "Option::is_none")]
27451 pub sandbox: Option<String>,
27452 #[doc = "Session\n\nThe user session under which this process is running.\n\noptional"]
27453 #[serde(rename = "session")]
27454 #[serde(skip_serializing_if = "Option::is_none")]
27455 pub session: Option<Box<Session>>,
27456 #[doc = "Terminated Time\n\nThe time when the process was terminated.\n\noptional"]
27457 #[serde(rename = "terminated_time")]
27458 #[serde(skip_serializing_if = "Option::is_none")]
27459 pub terminated_time: Option<i64>,
27460 #[doc = "Terminated Time\n\nThe time when the process was terminated.\n\noptional"]
27461 #[serde(rename = "terminated_time_dt")]
27462 #[serde(skip_serializing_if = "Option::is_none")]
27463 pub terminated_time_dt: Option<String>,
27464 #[doc = "Thread ID\n\nThe identifier of the thread associated with the event, as returned by the operating system.\n\noptional"]
27465 #[serde(rename = "tid")]
27466 #[serde(skip_serializing_if = "Option::is_none")]
27467 pub tid: Option<i64>,
27468 #[doc = "Unique ID\n\nA unique identifier for this process assigned by the producer (tool). Facilitates correlation of a process event with other events for that process.\n\nrecommended"]
27469 #[serde(rename = "uid")]
27470 #[serde(skip_serializing_if = "Option::is_none")]
27471 pub uid: Option<String>,
27472 #[doc = "User\n\nThe user under which this process is running.\n\nrecommended"]
27473 #[serde(rename = "user")]
27474 #[serde(skip_serializing_if = "Option::is_none")]
27475 pub user: Option<Box<User>>,
27476 #[doc = "Working Directory\n\nThe working directory of a process.\n\noptional"]
27477 #[serde(rename = "working_directory")]
27478 #[serde(skip_serializing_if = "Option::is_none")]
27479 pub working_directory: Option<String>,
27480 #[doc = "Extended Attributes\n\nAn unordered collection of zero or more name/value pairs that represent a process extended attribute.\n\noptional"]
27481 #[serde(rename = "xattributes")]
27482 #[serde(skip_serializing_if = "Option::is_none")]
27483 pub xattributes: Option<serde_json::Value>,
27484}
27485#[doc = "Process Entity\n\nThe Process Entity object provides critical fields for referencing a process.\n\n[] Category: | Name: process_entity\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27486#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27487#[serde(default)]
27488#[non_exhaustive]
27489pub struct ProcessEntity {
27490 #[doc = "Command Line\n\nThe full command line used to launch an application, service, process, or job. For example: <code>ssh user@10.0.0.10</code>. If the command line is unavailable or missing, the empty string <code>''</code> is to be used.\n\nrecommended"]
27491 #[serde(rename = "cmd_line")]
27492 #[serde(skip_serializing_if = "Option::is_none")]
27493 pub cmd_line: Option<String>,
27494 #[doc = "Common Process Identifier\n\nA unique process identifier that can be assigned deterministically by multiple system data producers.\n\nrecommended"]
27495 #[serde(rename = "cpid")]
27496 #[serde(skip_serializing_if = "Option::is_none")]
27497 pub cpid: Option<String>,
27498 #[doc = "Created Time\n\nThe time when the process was created/started.\n\nrecommended"]
27499 #[serde(rename = "created_time")]
27500 #[serde(skip_serializing_if = "Option::is_none")]
27501 pub created_time: Option<i64>,
27502 #[doc = "Created Time\n\nThe time when the process was created/started.\n\noptional"]
27503 #[serde(rename = "created_time_dt")]
27504 #[serde(skip_serializing_if = "Option::is_none")]
27505 pub created_time_dt: Option<String>,
27506 #[doc = "Name\n\nThe friendly name of the process, for example: <code>Notepad++</code>.\n\nrecommended"]
27507 #[serde(rename = "name")]
27508 #[serde(skip_serializing_if = "Option::is_none")]
27509 pub name: Option<String>,
27510 #[doc = "Path\n\nThe process file path.\n\noptional"]
27511 #[serde(rename = "path")]
27512 #[serde(skip_serializing_if = "Option::is_none")]
27513 pub path: Option<String>,
27514 #[doc = "Process ID\n\nThe process identifier, as reported by the operating system. Process ID (PID) is a number used by the operating system to uniquely identify an active process.\n\nrecommended"]
27515 #[serde(rename = "pid")]
27516 #[serde(skip_serializing_if = "Option::is_none")]
27517 pub pid: Option<i64>,
27518 #[doc = "Unique ID\n\nA unique identifier for this process assigned by the producer (tool). Facilitates correlation of a process event with other events for that process.\n\nrecommended"]
27519 #[serde(rename = "uid")]
27520 #[serde(skip_serializing_if = "Option::is_none")]
27521 pub uid: Option<String>,
27522}
27523#[doc = "Product\n\nThe Product object describes characteristics of a software product.\n\n[] Category: | Name: product\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27524#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27525#[serde(default)]
27526#[non_exhaustive]
27527pub struct Product {
27528 #[doc = "The product CPE identifier\n\nThe Common Platform Enumeration (CPE) name as described by (<a target='_blank' href='https://nvd.nist.gov/products/cpe'>NIST</a>) For example: <code>cpe:/a:apple:safari:16.2</code>.\n\noptional"]
27529 #[serde(rename = "cpe_name")]
27530 #[serde(skip_serializing_if = "Option::is_none")]
27531 pub cpe_name: Option<String>,
27532 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
27533 #[serde(rename = "data_classification")]
27534 #[serde(skip_serializing_if = "Option::is_none")]
27535 pub data_classification: Option<Box<DataClassification>>,
27536 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
27537 #[serde(rename = "data_classifications")]
27538 #[serde(skip_serializing_if = "Option::is_none")]
27539 pub data_classifications: Option<Vec<DataClassification>>,
27540 #[doc = "Feature\n\nThe feature that reported the event.\n\noptional"]
27541 #[serde(rename = "feature")]
27542 #[serde(skip_serializing_if = "Option::is_none")]
27543 pub feature: Option<Box<Feature>>,
27544 #[doc = "Language\n\nThe two letter lower case language codes, as defined by <a target='_blank' href='https://en.wikipedia.org/wiki/ISO_639-1'>ISO 639-1</a>. For example: <code>en</code> (English), <code>de</code> (German), or <code>fr</code> (French).\n\noptional"]
27545 #[serde(rename = "lang")]
27546 #[serde(skip_serializing_if = "Option::is_none")]
27547 pub lang: Option<String>,
27548 #[doc = "Name\n\nThe name of the product.\n\nrecommended"]
27549 #[serde(rename = "name")]
27550 #[serde(skip_serializing_if = "Option::is_none")]
27551 pub name: Option<String>,
27552 #[doc = "Path\n\nThe installation path of the product.\n\noptional"]
27553 #[serde(rename = "path")]
27554 #[serde(skip_serializing_if = "Option::is_none")]
27555 pub path: Option<String>,
27556 #[doc = "Unique ID\n\nThe unique identifier of the product.\n\nrecommended"]
27557 #[serde(rename = "uid")]
27558 #[serde(skip_serializing_if = "Option::is_none")]
27559 pub uid: Option<String>,
27560 #[doc = "URL String\n\nThe URL pointing towards the product.\n\noptional"]
27561 #[serde(rename = "url_string")]
27562 #[serde(skip_serializing_if = "Option::is_none")]
27563 pub url_string: Option<String>,
27564 #[doc = "Vendor Name\n\nThe name of the vendor of the product.\n\nrecommended"]
27565 #[serde(rename = "vendor_name")]
27566 #[serde(skip_serializing_if = "Option::is_none")]
27567 pub vendor_name: Option<String>,
27568 #[doc = "Version\n\nThe version of the product, as defined by the event source. For example: <code>2013.1.3-beta</code>.\n\nrecommended"]
27569 #[serde(rename = "version")]
27570 #[serde(skip_serializing_if = "Option::is_none")]
27571 pub version: Option<String>,
27572}
27573#[doc = "Programmatic Credential\n\nThe Programmatic Credential object describes service-specific credentials used for direct API access and system integration. These credentials are typically issued by individual services or platforms for accessing their APIs and resources, focusing on credential lifecycle management and usage tracking. Examples include API keys, service account keys, client certificates, and vendor-specific access tokens.\n\n[] Category: | Name: programmatic_credential"]
27574#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27575#[serde(default)]
27576#[non_exhaustive]
27577pub struct ProgrammaticCredential {
27578 #[doc = "Last Used Time\n\nThe timestamp when this programmatic credential was last used for authentication or API access. This helps track credential usage patterns, identify dormant credentials that may pose security risks, and support credential lifecycle management. The timestamp should reflect the most recent successful authentication or API call using this credential.\n\noptional"]
27579 #[serde(rename = "last_used_time")]
27580 #[serde(skip_serializing_if = "Option::is_none")]
27581 pub last_used_time: Option<i64>,
27582 #[doc = "Last Used Time\n\nThe timestamp when this programmatic credential was last used for authentication or API access. This helps track credential usage patterns, identify dormant credentials that may pose security risks, and support credential lifecycle management. The timestamp should reflect the most recent successful authentication or API call using this credential.\n\noptional"]
27583 #[serde(rename = "last_used_time_dt")]
27584 #[serde(skip_serializing_if = "Option::is_none")]
27585 pub last_used_time_dt: Option<String>,
27586 #[doc = "Type\n\nThe type or category of programmatic credential, normalized to the caption of the type_id value. In the case of 'Other', it is defined by the event source. Examples include 'API Key', 'Service Account Key', 'Access Token', 'Client Certificate', 'OAuth Token', 'Personal Access Token', etc.\n\nrecommended"]
27587 #[serde(rename = "type")]
27588 #[serde(skip_serializing_if = "Option::is_none")]
27589 pub r#type: Option<String>,
27590 #[doc = "Unique ID\n\nThe unique identifier of the programmatic credential. This could be an API key ID, service account key ID, access token identifier, certificate serial number, or other unique identifier that distinguishes this credential from others. Examples: AWS Access Key ID, GCP Service Account Key ID, Azure Application ID, or OAuth2 token identifier.\n\nrequired"]
27591 #[serde(rename = "uid")]
27592 #[serde(skip_serializing_if = "Option::is_none")]
27593 pub uid: Option<String>,
27594}
27595#[doc = "Query Evidence\n\nThe resulting evidence information that was queried.\n\n[] Category: | Name: query_evidence\n\n**Constraints:**\n* just_one: `[connection_info`,`file`,`folder`,`group`,`job`,`kernel`,`module`,`network_interfaces`,`peripheral_device`,`process`,`reg_key`,`reg_value`,`service`,`session`,`startup_item`,`user]`\n"]
27596#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27597#[serde(default)]
27598#[non_exhaustive]
27599pub struct QueryEvidence {
27600 #[doc = "Connection Info\n\nThe network connection information related to a Network Connection query type.\n\nrecommended"]
27601 #[serde(rename = "connection_info")]
27602 #[serde(skip_serializing_if = "Option::is_none")]
27603 pub connection_info: Option<Box<NetworkConnectionInfo>>,
27604 #[doc = "File\n\nThe file that is the target of the query when query_type_id indicates a File query.\n\nrecommended"]
27605 #[serde(rename = "file")]
27606 #[serde(skip_serializing_if = "Option::is_none")]
27607 pub file: Option<Box<File>>,
27608 #[doc = "Folder\n\nThe folder that is the target of the query when query_type_id indicates a Folder query.\n\nrecommended"]
27609 #[serde(rename = "folder")]
27610 #[serde(skip_serializing_if = "Option::is_none")]
27611 pub folder: Option<Box<File>>,
27612 #[doc = "Group\n\nThe administrative group that is the target of the query when query_type_id indicates an Admin Group query.\n\nrecommended"]
27613 #[serde(rename = "group")]
27614 #[serde(skip_serializing_if = "Option::is_none")]
27615 pub group: Option<Box<Group>>,
27616 #[doc = "Job\n\nThe job object that pertains to the event when query_type_id indicates a Job query.\n\nrecommended"]
27617 #[serde(rename = "job")]
27618 #[serde(skip_serializing_if = "Option::is_none")]
27619 pub job: Option<Box<Job>>,
27620 #[doc = "Kernel\n\nThe kernel object that pertains to the event when query_type_id indicates a Kernel query.\n\nrecommended"]
27621 #[serde(rename = "kernel")]
27622 #[serde(skip_serializing_if = "Option::is_none")]
27623 pub kernel: Option<Box<Kernel>>,
27624 #[doc = "Module\n\nThe module that pertains to the event when query_type_id indicates a Module query.\n\nrecommended"]
27625 #[serde(rename = "module")]
27626 #[serde(skip_serializing_if = "Option::is_none")]
27627 pub module: Option<Box<Module>>,
27628 #[doc = "Network Interfaces\n\nThe physical or virtual network interfaces that are associated with the device when query_type_id indicates a Network Interfaces query.\n\nrecommended"]
27629 #[serde(rename = "network_interfaces")]
27630 #[serde(skip_serializing_if = "Option::is_none")]
27631 pub network_interfaces: Option<Vec<NetworkInterface>>,
27632 #[doc = "Peripheral Device\n\nThe peripheral device that triggered the event when query_type_id indicates a Peripheral Device query.\n\nrecommended"]
27633 #[serde(rename = "peripheral_device")]
27634 #[serde(skip_serializing_if = "Option::is_none")]
27635 pub peripheral_device: Option<Box<PeripheralDevice>>,
27636 #[doc = "Process\n\nThe process that pertains to the event when query_type_id indicates a Process query.\n\nrecommended"]
27637 #[serde(rename = "process")]
27638 #[serde(skip_serializing_if = "Option::is_none")]
27639 pub process: Option<Box<Process>>,
27640 #[doc = "Query Type\n\nThe normalized caption of query_type_id or the source-specific query type.\n\noptional"]
27641 #[serde(rename = "query_type")]
27642 #[serde(skip_serializing_if = "Option::is_none")]
27643 pub query_type: Option<String>,
27644 #[doc = "Query Type ID\n\nThe normalized type of system query performed against a device or system component.\n\nrequired"]
27645 #[serde(rename = "query_type_id")]
27646 #[serde(skip_serializing_if = "Option::is_none")]
27647 pub query_type_id: Option<i64>,
27648 #[doc = "Registry Key\n\nThe registry key object describes a Windows registry key.\n\nrecommended"]
27649 #[serde(rename = "reg_key")]
27650 #[serde(skip_serializing_if = "Option::is_none")]
27651 pub reg_key: Option<Box<WinRegKey>>,
27652 #[doc = "Registry Value\n\nThe registry key object describes a Windows registry value.\n\nrecommended"]
27653 #[serde(rename = "reg_value")]
27654 #[serde(skip_serializing_if = "Option::is_none")]
27655 pub reg_value: Option<Box<WinRegValue>>,
27656 #[doc = "Service\n\nThe service that pertains to the event when query_type_id indicates a Service query.\n\nrecommended"]
27657 #[serde(rename = "service")]
27658 #[serde(skip_serializing_if = "Option::is_none")]
27659 pub service: Option<Box<Service>>,
27660 #[doc = "Session\n\nThe authenticated user or service session when query_type_id indicates a Session query.\n\nrecommended"]
27661 #[serde(rename = "session")]
27662 #[serde(skip_serializing_if = "Option::is_none")]
27663 pub session: Option<Box<Session>>,
27664 #[doc = "Startup Item\n\nThe startup item object that pertains to the event when query_type_id indicates a Startup Item query.\n\nrecommended"]
27665 #[serde(rename = "startup_item")]
27666 #[serde(skip_serializing_if = "Option::is_none")]
27667 pub startup_item: Option<Box<StartupItem>>,
27668 #[doc = "Network Connection State\n\nThe state of the socket, normalized to the caption of the state_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
27669 #[serde(rename = "state")]
27670 #[serde(skip_serializing_if = "Option::is_none")]
27671 pub state: Option<String>,
27672 #[doc = "TCP State ID\n\nThe state of the TCP socket for the network connection.\n\noptional"]
27673 #[serde(rename = "tcp_state_id")]
27674 #[serde(skip_serializing_if = "Option::is_none")]
27675 pub tcp_state_id: Option<i64>,
27676 #[doc = "User\n\nThe user that pertains to the event when query_type_id indicates a User query.\n\nrecommended"]
27677 #[serde(rename = "user")]
27678 #[serde(skip_serializing_if = "Option::is_none")]
27679 pub user: Option<Box<User>>,
27680 #[doc = "Users\n\nThe users that belong to the administrative group when query_type_id indicates a Users query.\n\noptional"]
27681 #[serde(rename = "users")]
27682 #[serde(skip_serializing_if = "Option::is_none")]
27683 pub users: Option<Vec<User>>,
27684}
27685#[doc = "Query Information\n\nThe query info object holds information related to data access within a datastore. To access, manipulate, delete, or retrieve data from a datastore, a query must be written using a specific syntax.\n\n[] Category: | Name: query_info\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27686#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27687#[serde(default)]
27688#[non_exhaustive]
27689pub struct QueryInfo {
27690 #[doc = "Total Bytes\n\nThe size of the data returned from the query.\n\noptional"]
27691 #[serde(rename = "bytes")]
27692 #[serde(skip_serializing_if = "Option::is_none")]
27693 pub bytes: Option<i64>,
27694 #[doc = "Data\n\nThe data returned from the query execution.\n\noptional"]
27695 #[serde(rename = "data")]
27696 #[serde(skip_serializing_if = "Option::is_none")]
27697 pub data: Option<serde_json::Value>,
27698 #[doc = "Name\n\nThe query name for a saved or scheduled query.\n\nrecommended"]
27699 #[serde(rename = "name")]
27700 #[serde(skip_serializing_if = "Option::is_none")]
27701 pub name: Option<String>,
27702 #[doc = "Query String\n\nA string representing the query code being run. For example: <code>SELECT * FROM my_table</code>\n\nrequired"]
27703 #[serde(rename = "query_string")]
27704 #[serde(skip_serializing_if = "Option::is_none")]
27705 pub query_string: Option<String>,
27706 #[doc = "Query Time\n\nThe time when the query was run.\n\noptional"]
27707 #[serde(rename = "query_time")]
27708 #[serde(skip_serializing_if = "Option::is_none")]
27709 pub query_time: Option<i64>,
27710 #[doc = "Query Time\n\nThe time when the query was run.\n\noptional"]
27711 #[serde(rename = "query_time_dt")]
27712 #[serde(skip_serializing_if = "Option::is_none")]
27713 pub query_time_dt: Option<String>,
27714 #[doc = "Unique ID\n\nThe unique identifier of the query.\n\nrecommended"]
27715 #[serde(rename = "uid")]
27716 #[serde(skip_serializing_if = "Option::is_none")]
27717 pub uid: Option<String>,
27718}
27719#[doc = "Related Event/Finding\n\nThe Related Event object describes an event or another finding related to a finding. It may or may not be an OCSF event.\n\n[] Category: | Name: related_event"]
27720#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27721#[serde(default)]
27722#[non_exhaustive]
27723pub struct RelatedEvent {
27724 #[doc = "MITRE ATT&CK® and ATLAS™ Details\n\nAn array of MITRE ATT&CK® objects describing identified tactics, techniques & sub-techniques. The objects are compatible with MITRE ATLAS™ tactics, techniques & sub-techniques.\n\noptional"]
27725 #[serde(rename = "attacks")]
27726 #[serde(skip_serializing_if = "Option::is_none")]
27727 pub attacks: Option<Vec<Attack>>,
27728 #[doc = "Count\n\nThe number of times that activity in the same logical group occurred, as reported by the related Finding.\n\noptional"]
27729 #[serde(rename = "count")]
27730 #[serde(skip_serializing_if = "Option::is_none")]
27731 pub count: Option<i64>,
27732 #[doc = "Created Time\n\nThe time when the related event/finding was created.\n\noptional"]
27733 #[serde(rename = "created_time")]
27734 #[serde(skip_serializing_if = "Option::is_none")]
27735 pub created_time: Option<i64>,
27736 #[doc = "Created Time\n\nThe time when the related event/finding was created.\n\noptional"]
27737 #[serde(rename = "created_time_dt")]
27738 #[serde(skip_serializing_if = "Option::is_none")]
27739 pub created_time_dt: Option<String>,
27740 #[doc = "Description\n\nA description of the related event/finding.\n\noptional"]
27741 #[serde(rename = "desc")]
27742 #[serde(skip_serializing_if = "Option::is_none")]
27743 pub desc: Option<String>,
27744 #[doc = "First Seen\n\nThe time when the finding was first observed. e.g. The time when a vulnerability was first observed.<br>It can differ from the <code>created_time</code> timestamp, which reflects the time this finding was created.\n\noptional"]
27745 #[serde(rename = "first_seen_time")]
27746 #[serde(skip_serializing_if = "Option::is_none")]
27747 pub first_seen_time: Option<i64>,
27748 #[doc = "First Seen\n\nThe time when the finding was first observed. e.g. The time when a vulnerability was first observed.<br>It can differ from the <code>created_time</code> timestamp, which reflects the time this finding was created.\n\noptional"]
27749 #[serde(rename = "first_seen_time_dt")]
27750 #[serde(skip_serializing_if = "Option::is_none")]
27751 pub first_seen_time_dt: Option<String>,
27752 #[doc = "Kill Chain\n\nThe <a target='_blank' href='https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html'>Cyber Kill Chain®</a> provides a detailed description of each phase and its associated activities within the broader context of a cyber attack.\n\noptional"]
27753 #[serde(rename = "kill_chain")]
27754 #[serde(skip_serializing_if = "Option::is_none")]
27755 pub kill_chain: Option<Vec<KillChainPhase>>,
27756 #[doc = "Last Seen\n\nThe time when the finding was most recently observed. e.g. The time when a vulnerability was most recently observed.<br>It can differ from the <code>modified_time</code> timestamp, which reflects the time this finding was last modified.\n\noptional"]
27757 #[serde(rename = "last_seen_time")]
27758 #[serde(skip_serializing_if = "Option::is_none")]
27759 pub last_seen_time: Option<i64>,
27760 #[doc = "Last Seen\n\nThe time when the finding was most recently observed. e.g. The time when a vulnerability was most recently observed.<br>It can differ from the <code>modified_time</code> timestamp, which reflects the time this finding was last modified.\n\noptional"]
27761 #[serde(rename = "last_seen_time_dt")]
27762 #[serde(skip_serializing_if = "Option::is_none")]
27763 pub last_seen_time_dt: Option<String>,
27764 #[doc = "Modified Time\n\nThe time when the related event/finding was last modified.\n\noptional"]
27765 #[serde(rename = "modified_time")]
27766 #[serde(skip_serializing_if = "Option::is_none")]
27767 pub modified_time: Option<i64>,
27768 #[doc = "Modified Time\n\nThe time when the related event/finding was last modified.\n\noptional"]
27769 #[serde(rename = "modified_time_dt")]
27770 #[serde(skip_serializing_if = "Option::is_none")]
27771 pub modified_time_dt: Option<String>,
27772 #[doc = "Observables\n\nThe observables associated with the event or a finding.\n\noptional"]
27773 #[serde(rename = "observables")]
27774 #[serde(skip_serializing_if = "Option::is_none")]
27775 pub observables: Option<Vec<Observable>>,
27776 #[doc = "Product\n\nDetails about the product that reported the related event/finding.\n\noptional"]
27777 #[serde(rename = "product")]
27778 #[serde(skip_serializing_if = "Option::is_none")]
27779 pub product: Option<Box<Product>>,
27780 #[doc = "Product Identifier\n\nThe unique identifier of the product that reported the related event.\n\noptional"]
27781 #[serde(rename = "product_uid")]
27782 #[serde(skip_serializing_if = "Option::is_none")]
27783 pub product_uid: Option<String>,
27784 #[doc = "Severity\n\nThe event/finding severity, normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
27785 #[serde(rename = "severity")]
27786 #[serde(skip_serializing_if = "Option::is_none")]
27787 pub severity: Option<String>,
27788 #[doc = "Severity ID\n\n<p>The normalized identifier of the event/finding severity.</p>The normalized severity is a measurement the effort and expense required to manage and resolve an event or incident. Smaller numerical values represent lower impact events, and larger numerical values represent higher impact events.\n\nrecommended"]
27789 #[serde(rename = "severity_id")]
27790 #[serde(skip_serializing_if = "Option::is_none")]
27791 pub severity_id: Option<i64>,
27792 #[doc = "Status\n\nThe related event status. Should correspond to the label of the status_id (or 'Other' status value for status_id = 99) of the related event.\n\noptional"]
27793 #[serde(rename = "status")]
27794 #[serde(skip_serializing_if = "Option::is_none")]
27795 pub status: Option<String>,
27796 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated with the related event/finding.\n\noptional"]
27797 #[serde(rename = "tags")]
27798 #[serde(skip_serializing_if = "Option::is_none")]
27799 pub tags: Option<Vec<KeyValueObject>>,
27800 #[doc = "Title\n\nA title or a brief phrase summarizing the related event/finding.\n\noptional"]
27801 #[serde(rename = "title")]
27802 #[serde(skip_serializing_if = "Option::is_none")]
27803 pub title: Option<String>,
27804 #[doc = "Traits\n\nThe list of key traits or characteristics extracted from the related event/finding that influenced or contributed to the overall finding's outcome.\n\noptional"]
27805 #[serde(rename = "traits")]
27806 #[serde(skip_serializing_if = "Option::is_none")]
27807 pub traits: Option<Vec<Trait>>,
27808 #[doc = "Type\n\nThe type of the related event/finding.</p>Populate if the related event/finding is <code>NOT</code> in OCSF. If it is in OCSF, then utilize <code>type_name, type_uid</code> instead.\n\noptional"]
27809 #[serde(rename = "type")]
27810 #[serde(skip_serializing_if = "Option::is_none")]
27811 pub r#type: Option<String>,
27812 #[doc = "Type Name\n\nThe type of the related OCSF event, as defined by <code>type_uid</code>.<p>For example: <code>Process Activity: Launch.</code></p>Populate if the related event/finding is in OCSF.\n\noptional"]
27813 #[serde(rename = "type_name")]
27814 #[serde(skip_serializing_if = "Option::is_none")]
27815 pub type_name: Option<String>,
27816 #[doc = "Type ID\n\nThe unique identifier of the related OCSF event type. <p>For example: <code>100701.</code></p>Populate if the related event/finding is in OCSF.\n\nrecommended"]
27817 #[serde(rename = "type_uid")]
27818 #[serde(skip_serializing_if = "Option::is_none")]
27819 pub type_uid: Option<i64>,
27820 #[doc = "Unique ID\n\nThe unique identifier of the related event/finding.</p> If the related event/finding is in OCSF, then this value must be equal to <code>metadata.uid</code> in the corresponding event.\n\nrequired"]
27821 #[serde(rename = "uid")]
27822 #[serde(skip_serializing_if = "Option::is_none")]
27823 pub uid: Option<String>,
27824}
27825#[doc = "Remediation\n\nThe Remediation object describes the recommended remediation steps to address identified issue(s).\n\n[] Category: | Name: remediation"]
27826#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27827#[serde(default)]
27828#[non_exhaustive]
27829pub struct Remediation {
27830 #[doc = "CIS Controls\n\nAn array of Center for Internet Security (CIS) Controls that can be optionally mapped to provide additional remediation details.\n\noptional"]
27831 #[serde(rename = "cis_controls")]
27832 #[serde(skip_serializing_if = "Option::is_none")]
27833 pub cis_controls: Option<Vec<CisControl>>,
27834 #[doc = "Description\n\nThe description of the remediation strategy.\n\nrequired"]
27835 #[serde(rename = "desc")]
27836 #[serde(skip_serializing_if = "Option::is_none")]
27837 pub desc: Option<String>,
27838 #[doc = "Knowledgebase Articles\n\nA list of KB articles or patches related to an endpoint. A KB Article contains metadata that describes the patch or an update.\n\noptional"]
27839 #[serde(rename = "kb_article_list")]
27840 #[serde(skip_serializing_if = "Option::is_none")]
27841 pub kb_article_list: Option<Vec<KbArticle>>,
27842 #[doc = "Knowledgebase Articles\n\nThe KB article/s related to the entity. A KB Article contains metadata that describes the patch or an update.\n\noptional"]
27843 #[serde(rename = "kb_articles")]
27844 #[serde(skip_serializing_if = "Option::is_none")]
27845 pub kb_articles: Option<Vec<String>>,
27846 #[doc = "References\n\nA list of supporting URL/s, references that help describe the remediation strategy.\n\noptional"]
27847 #[serde(rename = "references")]
27848 #[serde(skip_serializing_if = "Option::is_none")]
27849 pub references: Option<Vec<String>>,
27850}
27851#[doc = "Reporter\n\nThe entity from which an event or finding was reported.\n\n[] Category: | Name: reporter\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27852#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27853#[serde(default)]
27854#[non_exhaustive]
27855pub struct Reporter {
27856 #[doc = "Hostname\n\nThe hostname of the entity from which the event or finding was reported.\n\nrecommended"]
27857 #[serde(rename = "hostname")]
27858 #[serde(skip_serializing_if = "Option::is_none")]
27859 pub hostname: Option<String>,
27860 #[doc = "IP Address\n\nThe IP address of the entity from which the event or finding was reported.\n\nrecommended"]
27861 #[serde(rename = "ip")]
27862 #[serde(skip_serializing_if = "Option::is_none")]
27863 pub ip: Option<String>,
27864 #[doc = "Name\n\nThe name of the entity from which the event or finding was reported.\n\nrecommended"]
27865 #[serde(rename = "name")]
27866 #[serde(skip_serializing_if = "Option::is_none")]
27867 pub name: Option<String>,
27868 #[doc = "Organization\n\nThe organization properties of the entity that reported the event or finding.\n\noptional"]
27869 #[serde(rename = "org")]
27870 #[serde(skip_serializing_if = "Option::is_none")]
27871 pub org: Option<Box<Organization>>,
27872 #[doc = "Unique ID\n\nThe unique identifier of the entity from which the event or finding was reported.\n\nrecommended"]
27873 #[serde(rename = "uid")]
27874 #[serde(skip_serializing_if = "Option::is_none")]
27875 pub uid: Option<String>,
27876}
27877#[doc = "Reputation\n\nThe Reputation object describes the reputation/risk score of an entity (e.g. device, user, domain).\n\n[] Category: | Name: reputation"]
27878#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27879#[serde(default)]
27880#[non_exhaustive]
27881pub struct Reputation {
27882 #[doc = "Reputation Score\n\nThe reputation score as reported by the event source.\n\nrequired"]
27883 #[serde(rename = "base_score")]
27884 #[serde(skip_serializing_if = "Option::is_none")]
27885 pub base_score: Option<f64>,
27886 #[doc = "Provider\n\nThe provider of the reputation information.\n\nrecommended"]
27887 #[serde(rename = "provider")]
27888 #[serde(skip_serializing_if = "Option::is_none")]
27889 pub provider: Option<String>,
27890 #[doc = "Reputation Score\n\nThe reputation score, normalized to the caption of the score_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
27891 #[serde(rename = "score")]
27892 #[serde(skip_serializing_if = "Option::is_none")]
27893 pub score: Option<String>,
27894 #[doc = "Reputation Score ID\n\nThe normalized reputation score identifier.\n\nrequired"]
27895 #[serde(rename = "score_id")]
27896 #[serde(skip_serializing_if = "Option::is_none")]
27897 pub score_id: Option<i64>,
27898}
27899#[doc = "Request Elements\n\nThe Request Elements object describes characteristics of an API request.\n\n[] Category: | Name: request"]
27900#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27901#[serde(default)]
27902#[non_exhaustive]
27903pub struct Request {
27904 #[doc = "Containers\n\nWhen working with containerized applications, the set of containers which write to the standard the output of a particular logging driver. For example, this may be the set of containers involved in handling api requests and responses for a containerized application.\n\noptional"]
27905 #[serde(rename = "containers")]
27906 #[serde(skip_serializing_if = "Option::is_none")]
27907 pub containers: Option<Vec<Container>>,
27908 #[doc = "Data\n\nThe additional data that is associated with the api request.\n\noptional"]
27909 #[serde(rename = "data")]
27910 #[serde(skip_serializing_if = "Option::is_none")]
27911 pub data: Option<serde_json::Value>,
27912 #[doc = "Flags\n\nThe communication flags that are associated with the api request.\n\noptional"]
27913 #[serde(rename = "flags")]
27914 #[serde(skip_serializing_if = "Option::is_none")]
27915 pub flags: Option<Vec<String>>,
27916 #[doc = "Unique ID\n\nThe unique request identifier.\n\nrequired"]
27917 #[serde(rename = "uid")]
27918 #[serde(skip_serializing_if = "Option::is_none")]
27919 pub uid: Option<String>,
27920}
27921#[doc = "Resource Details\n\nThe Resource Details object describes details about resources that were affected by the activity/event.\n\n[] Category: | Name: resource_details\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
27922#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
27923#[serde(default)]
27924#[non_exhaustive]
27925pub struct ResourceDetails {
27926 #[doc = "Agent List\n\nA list of <code>agent</code> objects associated with a device, endpoint, or resource.\n\noptional"]
27927 #[serde(rename = "agent_list")]
27928 #[serde(skip_serializing_if = "Option::is_none")]
27929 pub agent_list: Option<Vec<Agent>>,
27930 #[doc = "Cloud Partition\n\nThe logical grouping or isolated segment within a cloud provider's infrastructure where the resource is located. Examples include AWS partitions (aws, aws-cn, aws-us-gov), Azure cloud environments (AzureCloud, AzureUSGovernment, AzureChinaCloud), or similar logical divisions in other cloud providers.\n\noptional"]
27931 #[serde(rename = "cloud_partition")]
27932 #[serde(skip_serializing_if = "Option::is_none")]
27933 pub cloud_partition: Option<String>,
27934 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
27935 #[serde(rename = "created_time")]
27936 #[serde(skip_serializing_if = "Option::is_none")]
27937 pub created_time: Option<i64>,
27938 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
27939 #[serde(rename = "created_time_dt")]
27940 #[serde(skip_serializing_if = "Option::is_none")]
27941 pub created_time_dt: Option<String>,
27942 #[doc = "Criticality\n\nThe criticality of the resource as defined by the event source.\n\noptional"]
27943 #[serde(rename = "criticality")]
27944 #[serde(skip_serializing_if = "Option::is_none")]
27945 pub criticality: Option<String>,
27946 #[doc = "Data\n\nAdditional data describing the resource.\n\noptional"]
27947 #[serde(rename = "data")]
27948 #[serde(skip_serializing_if = "Option::is_none")]
27949 pub data: Option<serde_json::Value>,
27950 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
27951 #[serde(rename = "data_classification")]
27952 #[serde(skip_serializing_if = "Option::is_none")]
27953 pub data_classification: Option<Box<DataClassification>>,
27954 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
27955 #[serde(rename = "data_classifications")]
27956 #[serde(skip_serializing_if = "Option::is_none")]
27957 pub data_classifications: Option<Vec<DataClassification>>,
27958 #[doc = "Group\n\nThe name of the related resource group.\n\noptional"]
27959 #[serde(rename = "group")]
27960 #[serde(skip_serializing_if = "Option::is_none")]
27961 pub group: Option<Box<Group>>,
27962 #[doc = "Hostname\n\nThe fully qualified name of the resource.\n\nrecommended"]
27963 #[serde(rename = "hostname")]
27964 #[serde(skip_serializing_if = "Option::is_none")]
27965 pub hostname: Option<String>,
27966 #[doc = "IP Address\n\nThe IP address of the resource, in either IPv4 or IPv6 format.\n\nrecommended"]
27967 #[serde(rename = "ip")]
27968 #[serde(skip_serializing_if = "Option::is_none")]
27969 pub ip: Option<String>,
27970 #[doc = "Back Ups Configured\n\nIndicates whether the device or resource has a backup enabled, such as an automated snapshot or a cloud backup. For example, this is indicated by the <code>cloudBackupEnabled</code> value within JAMF Pro mobile devices or the registration of an AWS ARN with the AWS Backup service.\n\noptional"]
27971 #[serde(rename = "is_backed_up")]
27972 #[serde(skip_serializing_if = "Option::is_none")]
27973 pub is_backed_up: Option<bool>,
27974 #[doc = "Labels\n\nThe list of labels associated to the resource.\n\noptional"]
27975 #[serde(rename = "labels")]
27976 #[serde(skip_serializing_if = "Option::is_none")]
27977 pub labels: Option<Vec<String>>,
27978 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
27979 #[serde(rename = "modified_time")]
27980 #[serde(skip_serializing_if = "Option::is_none")]
27981 pub modified_time: Option<i64>,
27982 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
27983 #[serde(rename = "modified_time_dt")]
27984 #[serde(skip_serializing_if = "Option::is_none")]
27985 pub modified_time_dt: Option<String>,
27986 #[doc = "Name\n\nThe name of the resource.\n\nrecommended"]
27987 #[serde(rename = "name")]
27988 #[serde(skip_serializing_if = "Option::is_none")]
27989 pub name: Option<String>,
27990 #[doc = "Namespace\n\nThe namespace is useful when similar entities exist that you need to keep separate.\n\noptional"]
27991 #[serde(rename = "namespace")]
27992 #[serde(skip_serializing_if = "Option::is_none")]
27993 pub namespace: Option<String>,
27994 #[doc = "Owner\n\nThe details of the entity that owns the resource. This object includes properties such as the owner's name, unique identifier, type, domain, and other relevant attributes that help identify the resource owner within the environment.\n\nrecommended"]
27995 #[serde(rename = "owner")]
27996 #[serde(skip_serializing_if = "Option::is_none")]
27997 pub owner: Option<Box<User>>,
27998 #[doc = "Region\n\nThe cloud region where the resource is hosted, as defined by the cloud provider. This represents the physical or logical geographic area containing the infrastructure supporting the resource. Examples include AWS regions (us-east-1, eu-west-1), Azure regions (East US, West Europe), GCP regions (us-central1, europe-west1), or Oracle Cloud regions (us-ashburn-1, uk-london-1).\n\noptional"]
27999 #[serde(rename = "region")]
28000 #[serde(skip_serializing_if = "Option::is_none")]
28001 pub region: Option<String>,
28002 #[doc = "Resource Relationship\n\nA graph representation showing how this resource relates to and interacts with other entities in the environment. This can include parent/child relationships, dependencies, or other connections.\n\noptional"]
28003 #[serde(rename = "resource_relationship")]
28004 #[serde(skip_serializing_if = "Option::is_none")]
28005 pub resource_relationship: Option<Box<Graph>>,
28006 #[doc = "Role\n\nThe role of the resource in the context of the event or finding, normalized to the caption of the role_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
28007 #[serde(rename = "role")]
28008 #[serde(skip_serializing_if = "Option::is_none")]
28009 pub role: Option<String>,
28010 #[doc = "Role ID\n\nThe normalized identifier of the resource's role in the context of the event or finding.\n\nrecommended"]
28011 #[serde(rename = "role_id")]
28012 #[serde(skip_serializing_if = "Option::is_none")]
28013 pub role_id: Option<i64>,
28014 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the resource.\n\noptional"]
28015 #[serde(rename = "tags")]
28016 #[serde(skip_serializing_if = "Option::is_none")]
28017 pub tags: Option<Vec<KeyValueObject>>,
28018 #[doc = "Type\n\nThe resource type as defined by the event source.\n\noptional"]
28019 #[serde(rename = "type")]
28020 #[serde(skip_serializing_if = "Option::is_none")]
28021 pub r#type: Option<String>,
28022 #[doc = "Unique ID\n\nThe unique identifier of the resource.\n\nrecommended"]
28023 #[serde(rename = "uid")]
28024 #[serde(skip_serializing_if = "Option::is_none")]
28025 pub uid: Option<String>,
28026 #[doc = "Alternate ID\n\nThe alternative unique identifier of the resource.\n\noptional"]
28027 #[serde(rename = "uid_alt")]
28028 #[serde(skip_serializing_if = "Option::is_none")]
28029 pub uid_alt: Option<String>,
28030 #[doc = "Version\n\nThe version of the resource. For example <code>1.2.3</code>.\n\noptional"]
28031 #[serde(rename = "version")]
28032 #[serde(skip_serializing_if = "Option::is_none")]
28033 pub version: Option<String>,
28034 #[doc = "Cloud Availability Zone\n\nThe availability zone within a cloud region where the resource is located. Examples include AWS availability zones (us-east-1a, us-east-1b), Azure availability zones (1, 2, 3 within a region), GCP zones (us-central1-a, us-central1-b), or Oracle Cloud availability domains (AD-1, AD-2, AD-3).\n\noptional"]
28035 #[serde(rename = "zone")]
28036 #[serde(skip_serializing_if = "Option::is_none")]
28037 pub zone: Option<String>,
28038}
28039#[doc = "Response Elements\n\nThe Response Elements object describes characteristics of an API response.\n\n[] Category: | Name: response"]
28040#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28041#[serde(default)]
28042#[non_exhaustive]
28043pub struct Response {
28044 #[doc = "Response Code\n\nThe numeric response sent to a request.\n\nrecommended"]
28045 #[serde(rename = "code")]
28046 #[serde(skip_serializing_if = "Option::is_none")]
28047 pub code: Option<i64>,
28048 #[doc = "Containers\n\nWhen working with containerized applications, the set of containers which write to the standard the output of a particular logging driver. For example, this may be the set of containers involved in handling api requests and responses for a containerized application.\n\noptional"]
28049 #[serde(rename = "containers")]
28050 #[serde(skip_serializing_if = "Option::is_none")]
28051 pub containers: Option<Vec<Container>>,
28052 #[doc = "Data\n\nThe additional data that is associated with the api response.\n\noptional"]
28053 #[serde(rename = "data")]
28054 #[serde(skip_serializing_if = "Option::is_none")]
28055 pub data: Option<serde_json::Value>,
28056 #[doc = "Error Code\n\nError Code\n\nrecommended"]
28057 #[serde(rename = "error")]
28058 #[serde(skip_serializing_if = "Option::is_none")]
28059 pub error: Option<String>,
28060 #[doc = "Error Message\n\nError Message\n\nrecommended"]
28061 #[serde(rename = "error_message")]
28062 #[serde(skip_serializing_if = "Option::is_none")]
28063 pub error_message: Option<String>,
28064 #[doc = "Flags\n\nThe communication flags that are associated with the api response.\n\noptional"]
28065 #[serde(rename = "flags")]
28066 #[serde(skip_serializing_if = "Option::is_none")]
28067 pub flags: Option<Vec<String>>,
28068 #[doc = "Message\n\nThe description of the event/finding, as defined by the source.\n\nrecommended"]
28069 #[serde(rename = "message")]
28070 #[serde(skip_serializing_if = "Option::is_none")]
28071 pub message: Option<String>,
28072}
28073#[doc = "RPC Interface\n\nThe RPC Interface represents the remote procedure call interface used in the DCE/RPC session.\n\n[] Category: | Name: rpc_interface"]
28074#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28075#[serde(default)]
28076#[non_exhaustive]
28077pub struct RpcInterface {
28078 #[doc = "Acknowledgement Reason\n\nAn integer that provides a reason code or additional information about the acknowledgment result.\n\nrecommended"]
28079 #[serde(rename = "ack_reason")]
28080 #[serde(skip_serializing_if = "Option::is_none")]
28081 pub ack_reason: Option<i64>,
28082 #[doc = "Acknowledgement Result\n\nAn integer that denotes the acknowledgment result of the DCE/RPC call.\n\nrecommended"]
28083 #[serde(rename = "ack_result")]
28084 #[serde(skip_serializing_if = "Option::is_none")]
28085 pub ack_result: Option<i64>,
28086 #[doc = "UUID\n\nThe unique identifier of the particular remote procedure or service.\n\nrequired"]
28087 #[serde(rename = "uuid")]
28088 #[serde(skip_serializing_if = "Option::is_none")]
28089 pub uuid: Option<String>,
28090 #[doc = "Version\n\nThe version of the DCE/RPC protocol being used in the session.\n\nrequired"]
28091 #[serde(rename = "version")]
28092 #[serde(skip_serializing_if = "Option::is_none")]
28093 pub version: Option<String>,
28094}
28095#[doc = "Rule\n\nThe Rule object describes characteristics of a rule associated with a policy or an event.\n\n[] Category: | Name: rule\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28096#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28097#[serde(default)]
28098#[non_exhaustive]
28099pub struct Rule {
28100 #[doc = "Category\n\nThe rule category.\n\noptional"]
28101 #[serde(rename = "category")]
28102 #[serde(skip_serializing_if = "Option::is_none")]
28103 pub category: Option<String>,
28104 #[doc = "Description\n\nThe description of the rule that generated the event.\n\noptional"]
28105 #[serde(rename = "desc")]
28106 #[serde(skip_serializing_if = "Option::is_none")]
28107 pub desc: Option<String>,
28108 #[doc = "Name\n\nThe name of the rule that generated the event.\n\nrecommended"]
28109 #[serde(rename = "name")]
28110 #[serde(skip_serializing_if = "Option::is_none")]
28111 pub name: Option<String>,
28112 #[doc = "Type\n\nThe rule type.\n\noptional"]
28113 #[serde(rename = "type")]
28114 #[serde(skip_serializing_if = "Option::is_none")]
28115 pub r#type: Option<String>,
28116 #[doc = "Unique ID\n\nThe unique identifier of the rule that generated the event.\n\nrecommended"]
28117 #[serde(rename = "uid")]
28118 #[serde(skip_serializing_if = "Option::is_none")]
28119 pub uid: Option<String>,
28120 #[doc = "Version\n\nThe rule version. For example: <code>1.1</code>.\n\noptional"]
28121 #[serde(rename = "version")]
28122 #[serde(skip_serializing_if = "Option::is_none")]
28123 pub version: Option<String>,
28124}
28125#[doc = "Subject Alternative Name\n\nThe Subject Alternative name (SAN) object describes a SAN secured by a digital certificate\n\n[] Category: | Name: san"]
28126#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28127#[serde(default)]
28128#[non_exhaustive]
28129pub struct San {
28130 #[doc = "Name\n\nName of SAN (e.g. The actual IP Address or domain.)\n\nrequired"]
28131 #[serde(rename = "name")]
28132 #[serde(skip_serializing_if = "Option::is_none")]
28133 pub name: Option<String>,
28134 #[doc = "Type\n\nType descriptor of SAN (e.g. IP Address/domain/etc.)\n\nrequired"]
28135 #[serde(rename = "type")]
28136 #[serde(skip_serializing_if = "Option::is_none")]
28137 pub r#type: Option<String>,
28138}
28139#[doc = "Software Bill of Materials\n\nThe Software Bill of Materials object describes characteristics of a generated SBOM.\n\n[] Category: | Name: sbom"]
28140#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28141#[serde(default)]
28142#[non_exhaustive]
28143pub struct Sbom {
28144 #[doc = "Created Time\n\nThe time when the SBOM was created.\n\nrecommended"]
28145 #[serde(rename = "created_time")]
28146 #[serde(skip_serializing_if = "Option::is_none")]
28147 pub created_time: Option<i64>,
28148 #[doc = "Created Time\n\nThe time when the SBOM was created.\n\noptional"]
28149 #[serde(rename = "created_time_dt")]
28150 #[serde(skip_serializing_if = "Option::is_none")]
28151 pub created_time_dt: Option<String>,
28152 #[doc = "Software Package\n\nThe software package or library that is being discovered or inventoried by an SBOM.\n\nrequired"]
28153 #[serde(rename = "package")]
28154 #[serde(skip_serializing_if = "Option::is_none")]
28155 pub package: Option<Box<Package>>,
28156 #[doc = "Product\n\nDetails about the upstream product that generated the SBOM e.g. <code>cdxgen</code> or <code>Syft</code>.\n\nrecommended"]
28157 #[serde(rename = "product")]
28158 #[serde(skip_serializing_if = "Option::is_none")]
28159 pub product: Option<Box<Product>>,
28160 #[doc = "Software Components\n\nThe list of software components used in the software package.\n\nrequired"]
28161 #[serde(rename = "software_components")]
28162 #[serde(skip_serializing_if = "Option::is_none")]
28163 pub software_components: Option<Vec<SoftwareComponent>>,
28164 #[doc = "Type\n\nThe type of SBOM, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
28165 #[serde(rename = "type")]
28166 #[serde(skip_serializing_if = "Option::is_none")]
28167 pub r#type: Option<String>,
28168 #[doc = "Type ID\n\nThe type of SBOM.\n\nrecommended"]
28169 #[serde(rename = "type_id")]
28170 #[serde(skip_serializing_if = "Option::is_none")]
28171 pub type_id: Option<i64>,
28172 #[doc = "SBOM ID\n\nA unique identifier for the SBOM or the SBOM generation by a source tool, such as the SPDX <code>metadata.component.bom-ref</code>.\n\noptional"]
28173 #[serde(rename = "uid")]
28174 #[serde(skip_serializing_if = "Option::is_none")]
28175 pub uid: Option<String>,
28176 #[doc = "Version\n\nThe specification (spec) version of the particular SBOM, e.g., <code>1.6</code>.\n\noptional"]
28177 #[serde(rename = "version")]
28178 #[serde(skip_serializing_if = "Option::is_none")]
28179 pub version: Option<String>,
28180}
28181#[doc = "Scan\n\nThe Scan object describes characteristics of a proactive scan.\n\n[] Category: | Name: scan\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28182#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28183#[serde(default)]
28184#[non_exhaustive]
28185pub struct Scan {
28186 #[doc = "Name\n\nThe administrator-supplied or application-generated name of the scan. For example: \"Home office weekly user database scan\", \"Scan folders for viruses\", \"Full system virus scan\"\n\nrecommended"]
28187 #[serde(rename = "name")]
28188 #[serde(skip_serializing_if = "Option::is_none")]
28189 pub name: Option<String>,
28190 #[doc = "Type\n\nThe type of scan.\n\noptional"]
28191 #[serde(rename = "type")]
28192 #[serde(skip_serializing_if = "Option::is_none")]
28193 pub r#type: Option<String>,
28194 #[doc = "Type ID\n\nThe type id of the scan.\n\nrequired"]
28195 #[serde(rename = "type_id")]
28196 #[serde(skip_serializing_if = "Option::is_none")]
28197 pub type_id: Option<i64>,
28198 #[doc = "Scan UID\n\nThe application-defined unique identifier assigned to an instance of a scan.\n\nrecommended"]
28199 #[serde(rename = "uid")]
28200 #[serde(skip_serializing_if = "Option::is_none")]
28201 pub uid: Option<String>,
28202}
28203#[doc = "SCIM\n\nThe System for Cross-domain Identity Management (SCIM) Configuration object provides a structured set of attributes related to SCIM protocols used for identity provisioning and management across cloud-based platforms. It standardizes user and group provisioning details, enabling identity synchronization and lifecycle management with compatible Identity Providers (IdPs) and applications. SCIM is defined in <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc7643'>RFC-7634</a>\n\n[] Category: | Name: scim"]
28204#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28205#[serde(default)]
28206#[non_exhaustive]
28207pub struct Scim {
28208 #[doc = "Auth Protocol\n\nThe authorization protocol as defined by the caption of <code>auth_protocol_id</code>. In the case of <code>Other</code>, it is defined by the event source.\n\noptional"]
28209 #[serde(rename = "auth_protocol")]
28210 #[serde(skip_serializing_if = "Option::is_none")]
28211 pub auth_protocol: Option<String>,
28212 #[doc = "Auth Protocol ID\n\nThe normalized identifier of the authorization protocol used by the SCIM resource.\n\noptional"]
28213 #[serde(rename = "auth_protocol_id")]
28214 #[serde(skip_serializing_if = "Option::is_none")]
28215 pub auth_protocol_id: Option<i64>,
28216 #[doc = "Created Time\n\nWhen the SCIM resource was added to the service provider.\n\noptional"]
28217 #[serde(rename = "created_time")]
28218 #[serde(skip_serializing_if = "Option::is_none")]
28219 pub created_time: Option<i64>,
28220 #[doc = "Created Time\n\nWhen the SCIM resource was added to the service provider.\n\noptional"]
28221 #[serde(rename = "created_time_dt")]
28222 #[serde(skip_serializing_if = "Option::is_none")]
28223 pub created_time_dt: Option<String>,
28224 #[doc = "Last Error Message\n\nMessage or code associated with the last encountered error.\n\noptional"]
28225 #[serde(rename = "error_message")]
28226 #[serde(skip_serializing_if = "Option::is_none")]
28227 pub error_message: Option<String>,
28228 #[doc = "SCIM Group Provisioning Enabled\n\nIndicates whether the SCIM resource is configured to provision groups, automatically or otherwise.\n\noptional"]
28229 #[serde(rename = "is_group_provisioning_enabled")]
28230 #[serde(skip_serializing_if = "Option::is_none")]
28231 pub is_group_provisioning_enabled: Option<bool>,
28232 #[doc = "SCIM User Provisioning Enabled\n\nIndicates whether the SCIM resource is configured to provision users, automatically or otherwise.\n\noptional"]
28233 #[serde(rename = "is_user_provisioning_enabled")]
28234 #[serde(skip_serializing_if = "Option::is_none")]
28235 pub is_user_provisioning_enabled: Option<bool>,
28236 #[doc = "Last Sync Time\n\nTimestamp of the most recent successful synchronization.\n\noptional"]
28237 #[serde(rename = "last_run_time")]
28238 #[serde(skip_serializing_if = "Option::is_none")]
28239 pub last_run_time: Option<i64>,
28240 #[doc = "Last Sync Time\n\nTimestamp of the most recent successful synchronization.\n\noptional"]
28241 #[serde(rename = "last_run_time_dt")]
28242 #[serde(skip_serializing_if = "Option::is_none")]
28243 pub last_run_time_dt: Option<String>,
28244 #[doc = "Modified Time\n\nThe most recent time when the SCIM resource was updated at the service provider.\n\noptional"]
28245 #[serde(rename = "modified_time")]
28246 #[serde(skip_serializing_if = "Option::is_none")]
28247 pub modified_time: Option<i64>,
28248 #[doc = "Modified Time\n\nThe most recent time when the SCIM resource was updated at the service provider.\n\noptional"]
28249 #[serde(rename = "modified_time_dt")]
28250 #[serde(skip_serializing_if = "Option::is_none")]
28251 pub modified_time_dt: Option<String>,
28252 #[doc = "Name\n\nThe name of the SCIM resource.\n\nrecommended"]
28253 #[serde(rename = "name")]
28254 #[serde(skip_serializing_if = "Option::is_none")]
28255 pub name: Option<String>,
28256 #[doc = "Supported Protocol\n\nThe supported protocol for the SCIM resource. E.g., <code>SAML</code>, <code>OIDC</code>, or <code>OAuth2</code>.\n\noptional"]
28257 #[serde(rename = "protocol_name")]
28258 #[serde(skip_serializing_if = "Option::is_none")]
28259 pub protocol_name: Option<String>,
28260 #[doc = "Rate Limit\n\nMaximum number of requests allowed by the SCIM resource within a specified time frame to avoid throttling.\n\noptional"]
28261 #[serde(rename = "rate_limit")]
28262 #[serde(skip_serializing_if = "Option::is_none")]
28263 pub rate_limit: Option<i64>,
28264 #[doc = "SCIM Group Schema\n\nSCIM provides a schema for representing groups, identified using the following schema URI: <code>urn:ietf:params:scim:schemas:core:2.0:Group</code> as defined in <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc7643'>RFC-7634</a>. This attribute will capture key-value pairs for the scheme implemented in a SCIM resource.\n\nrecommended"]
28265 #[serde(rename = "scim_group_schema")]
28266 #[serde(skip_serializing_if = "Option::is_none")]
28267 pub scim_group_schema: Option<serde_json::Value>,
28268 #[doc = "SCIM User Schema\n\nSCIM provides a resource type for user resources. The core schema for user is identified using the following schema URI: <code>urn:ietf:params:scim:schemas:core:2.0:User</code> as defined in <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc7643'>RFC-7634</a>. his attribute will capture key-value pairs for the scheme implemented in a SCIM resource. This object is inclusive of both the basic and Enterprise User Schema Extension.\n\nrecommended"]
28269 #[serde(rename = "scim_user_schema")]
28270 #[serde(skip_serializing_if = "Option::is_none")]
28271 pub scim_user_schema: Option<serde_json::Value>,
28272 #[doc = "State\n\nThe provisioning state of the SCIM resource, normalized to the caption of the <code>state_id</code> value. In the case of <code>Other</code>, it is defined by the event source.\n\noptional"]
28273 #[serde(rename = "state")]
28274 #[serde(skip_serializing_if = "Option::is_none")]
28275 pub state: Option<String>,
28276 #[doc = "State ID\n\nThe normalized state ID of the SCIM resource to reflect its activation status.\n\noptional"]
28277 #[serde(rename = "state_id")]
28278 #[serde(skip_serializing_if = "Option::is_none")]
28279 pub state_id: Option<i64>,
28280 #[doc = "Unique ID\n\nA unique identifier for a SCIM resource as defined by the service provider.\n\nrecommended"]
28281 #[serde(rename = "uid")]
28282 #[serde(skip_serializing_if = "Option::is_none")]
28283 pub uid: Option<String>,
28284 #[doc = "External ID\n\nA String that is an identifier for the resource as defined by the provisioning client. The <code>externalId</code> may simplify identification of a resource between the provisioning client and the service provider by allowing the client to use a filter to locate the resource with an identifier from the provisioning domain, obviating the need to store a local mapping between the provisioning domain's identifier of the resource and the identifier used by the service provider.\n\noptional"]
28285 #[serde(rename = "uid_alt")]
28286 #[serde(skip_serializing_if = "Option::is_none")]
28287 pub uid_alt: Option<String>,
28288 #[doc = "SCIM Endpoint URL\n\nThe primary URL for SCIM API requests.\n\noptional"]
28289 #[serde(rename = "url_string")]
28290 #[serde(skip_serializing_if = "Option::is_none")]
28291 pub url_string: Option<String>,
28292 #[doc = "Service Provider\n\nName of the vendor or service provider implementing SCIM. E.g., <code>Okta</code>, <code>Auth0</code>, <code>Microsoft</code>.\n\noptional"]
28293 #[serde(rename = "vendor_name")]
28294 #[serde(skip_serializing_if = "Option::is_none")]
28295 pub vendor_name: Option<String>,
28296 #[doc = "SCIM Version\n\nSCIM protocol version supported e.g., <code>SCIM 2.0</code>.\n\nrecommended"]
28297 #[serde(rename = "version")]
28298 #[serde(skip_serializing_if = "Option::is_none")]
28299 pub version: Option<String>,
28300}
28301#[doc = "Script\n\nThe Script object describes a script or command that can be executed by a shell, script engine, or interpreter. Examples include Bash, JavsScript, PowerShell, Python, VBScript, etc. Note that the term <em>script</em> here denotes not only a script contained within a file but also a script or command typed interactively by a user, supplied on the command line, or provided by some other file-less mechanism.\n\n[] Category: | Name: script"]
28302#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28303#[serde(default)]
28304#[non_exhaustive]
28305pub struct Script {
28306 #[doc = "File\n\nPresent if this script is associated with a file. Not present in the case of a file-less script.\n\noptional"]
28307 #[serde(rename = "file")]
28308 #[serde(skip_serializing_if = "Option::is_none")]
28309 pub file: Option<Box<File>>,
28310 #[doc = "Hashes\n\nAn array of the script's cryptographic hashes. Note that these hashes are calculated on the script in its original encoding, and not on the normalized UTF-8 encoding found in the <code>script_content</code> attribute.\n\nrecommended"]
28311 #[serde(rename = "hashes")]
28312 #[serde(skip_serializing_if = "Option::is_none")]
28313 pub hashes: Option<Vec<Fingerprint>>,
28314 #[doc = "Name\n\nUnique identifier for the script or macro, independent of the containing file, used for tracking, auditing, and security analysis.\n\noptional"]
28315 #[serde(rename = "name")]
28316 #[serde(skip_serializing_if = "Option::is_none")]
28317 pub name: Option<String>,
28318 #[doc = "Parent Unique ID\n\nThis attribute relates a sub-script to a parent script having the matching <code>uid</code> attribute. In the case of PowerShell, sub-script execution can be identified by matching the activity correlation ID of the raw ETW events provided by the OS.\n\noptional"]
28319 #[serde(rename = "parent_uid")]
28320 #[serde(skip_serializing_if = "Option::is_none")]
28321 pub parent_uid: Option<String>,
28322 #[doc = "Script Content\n\nThe script content, normalized to UTF-8 encoding irrespective of its original encoding. When emitting this attribute, it may be appropriate to truncate large scripts. When consuming this attribute, large scripts should be anticipated.\n\nrequired"]
28323 #[serde(rename = "script_content")]
28324 #[serde(skip_serializing_if = "Option::is_none")]
28325 pub script_content: Option<Box<LongString>>,
28326 #[doc = "Type\n\nThe script type, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the event source.\n\noptional"]
28327 #[serde(rename = "type")]
28328 #[serde(skip_serializing_if = "Option::is_none")]
28329 pub r#type: Option<String>,
28330 #[doc = "Type ID\n\nThe normalized script type ID.\n\nrequired"]
28331 #[serde(rename = "type_id")]
28332 #[serde(skip_serializing_if = "Option::is_none")]
28333 pub type_id: Option<i64>,
28334 #[doc = "Unique ID\n\nSome script engines assign a unique ID to each individual execution of a given script. This attribute captures that unique ID. In the case of PowerShell, the unique ID corresponds to the <code>ScriptBlockId</code> in the raw ETW events provided by the OS.\n\noptional"]
28335 #[serde(rename = "uid")]
28336 #[serde(skip_serializing_if = "Option::is_none")]
28337 pub uid: Option<String>,
28338}
28339#[doc = "Security State\n\nThe Security State object describes the security related state of a managed entity.\n\n[] Category: | Name: security_state"]
28340#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28341#[serde(default)]
28342#[non_exhaustive]
28343pub struct SecurityState {
28344 #[doc = "Security State\n\nThe security state, normalized to the caption of the state_id value. In the case of 'Other', it is defined by the source.\n\noptional"]
28345 #[serde(rename = "state")]
28346 #[serde(skip_serializing_if = "Option::is_none")]
28347 pub state: Option<String>,
28348 #[doc = "Security State ID\n\nThe security state of the managed entity.\n\nrecommended"]
28349 #[serde(rename = "state_id")]
28350 #[serde(skip_serializing_if = "Option::is_none")]
28351 pub state_id: Option<i64>,
28352}
28353#[doc = "Service\n\nThe Service object describes characteristics of a service, <code> e.g. AWS EC2. </code>\n\n[] Category: | Name: service\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28354#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28355#[serde(default)]
28356#[non_exhaustive]
28357pub struct Service {
28358 #[doc = "Labels\n\nThe list of labels associated with the service.\n\noptional"]
28359 #[serde(rename = "labels")]
28360 #[serde(skip_serializing_if = "Option::is_none")]
28361 pub labels: Option<Vec<String>>,
28362 #[doc = "Name\n\nThe name of the service.\n\nrecommended"]
28363 #[serde(rename = "name")]
28364 #[serde(skip_serializing_if = "Option::is_none")]
28365 pub name: Option<String>,
28366 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the service.\n\noptional"]
28367 #[serde(rename = "tags")]
28368 #[serde(skip_serializing_if = "Option::is_none")]
28369 pub tags: Option<Vec<KeyValueObject>>,
28370 #[doc = "Unique ID\n\nThe unique identifier of the service.\n\nrecommended"]
28371 #[serde(rename = "uid")]
28372 #[serde(skip_serializing_if = "Option::is_none")]
28373 pub uid: Option<String>,
28374 #[doc = "Version\n\nThe version of the service.\n\nrecommended"]
28375 #[serde(rename = "version")]
28376 #[serde(skip_serializing_if = "Option::is_none")]
28377 pub version: Option<String>,
28378}
28379#[doc = "Session\n\nThe Session object describes details about an authenticated session. e.g. Session Creation Time, Session Issuer.\n\n[] Category: | Name: session"]
28380#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28381#[serde(default)]
28382#[non_exhaustive]
28383pub struct Session {
28384 #[doc = "Count\n\nThe number of identical sessions spawned from the same source IP, destination IP, application, and content/threat type seen over a period of time.\n\noptional"]
28385 #[serde(rename = "count")]
28386 #[serde(skip_serializing_if = "Option::is_none")]
28387 pub count: Option<i64>,
28388 #[doc = "Created Time\n\nThe time when the session was created.\n\nrecommended"]
28389 #[serde(rename = "created_time")]
28390 #[serde(skip_serializing_if = "Option::is_none")]
28391 pub created_time: Option<i64>,
28392 #[doc = "Created Time\n\nThe time when the session was created.\n\noptional"]
28393 #[serde(rename = "created_time_dt")]
28394 #[serde(skip_serializing_if = "Option::is_none")]
28395 pub created_time_dt: Option<String>,
28396 #[doc = "User Credential ID\n\nThe unique identifier of the user's credential. For example, AWS Access Key ID.\n\noptional"]
28397 #[serde(rename = "credential_uid")]
28398 #[serde(skip_serializing_if = "Option::is_none")]
28399 pub credential_uid: Option<String>,
28400 #[doc = "Expiration Reason\n\nThe reason which triggered the session expiration.\n\noptional"]
28401 #[serde(rename = "expiration_reason")]
28402 #[serde(skip_serializing_if = "Option::is_none")]
28403 pub expiration_reason: Option<String>,
28404 #[doc = "Expiration Time\n\nThe session expiration time.\n\noptional"]
28405 #[serde(rename = "expiration_time")]
28406 #[serde(skip_serializing_if = "Option::is_none")]
28407 pub expiration_time: Option<i64>,
28408 #[doc = "Expiration Time\n\nThe session expiration time.\n\noptional"]
28409 #[serde(rename = "expiration_time_dt")]
28410 #[serde(skip_serializing_if = "Option::is_none")]
28411 pub expiration_time_dt: Option<String>,
28412 #[doc = "Multi Factor Authentication\n\nIndicates whether Multi Factor Authentication was used during authentication.\n\noptional"]
28413 #[serde(rename = "is_mfa")]
28414 #[serde(skip_serializing_if = "Option::is_none")]
28415 pub is_mfa: Option<bool>,
28416 #[doc = "Remote\n\nThe indication of whether the session is remote.\n\nrecommended"]
28417 #[serde(rename = "is_remote")]
28418 #[serde(skip_serializing_if = "Option::is_none")]
28419 pub is_remote: Option<bool>,
28420 #[doc = "VPN Session\n\nThe indication of whether the session is a VPN session.\n\noptional"]
28421 #[serde(rename = "is_vpn")]
28422 #[serde(skip_serializing_if = "Option::is_none")]
28423 pub is_vpn: Option<bool>,
28424 #[doc = "Issuer Details\n\nThe identifier of the session issuer.\n\nrecommended"]
28425 #[serde(rename = "issuer")]
28426 #[serde(skip_serializing_if = "Option::is_none")]
28427 pub issuer: Option<String>,
28428 #[doc = "Terminal\n\nThe Pseudo Terminal associated with the session. Ex: the tty or pts value.\n\noptional"]
28429 #[serde(rename = "terminal")]
28430 #[serde(skip_serializing_if = "Option::is_none")]
28431 pub terminal: Option<String>,
28432 #[doc = "Unique ID\n\nThe unique identifier of the session.\n\nrecommended"]
28433 #[serde(rename = "uid")]
28434 #[serde(skip_serializing_if = "Option::is_none")]
28435 pub uid: Option<String>,
28436 #[doc = "Alternate ID\n\nThe alternate unique identifier of the session. e.g. AWS ARN - <code>arn:aws:sts::123344444444:assumed-role/Admin/example-session</code>.\n\noptional"]
28437 #[serde(rename = "uid_alt")]
28438 #[serde(skip_serializing_if = "Option::is_none")]
28439 pub uid_alt: Option<String>,
28440 #[doc = "UUID\n\nThe universally unique identifier of the session.\n\noptional"]
28441 #[serde(rename = "uuid")]
28442 #[serde(skip_serializing_if = "Option::is_none")]
28443 pub uuid: Option<String>,
28444}
28445#[doc = "Software Component\n\nThe Software Component object describes characteristics of a software component within a software package.\n\n[] Category: | Name: software_component"]
28446#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28447#[serde(default)]
28448#[non_exhaustive]
28449pub struct SoftwareComponent {
28450 #[doc = "Author\n\nThe author(s) who published the software component.\n\nrecommended"]
28451 #[serde(rename = "author")]
28452 #[serde(skip_serializing_if = "Option::is_none")]
28453 pub author: Option<String>,
28454 #[doc = "Hash\n\nCryptographic hash to identify the binary instance of a software component.\n\noptional"]
28455 #[serde(rename = "hash")]
28456 #[serde(skip_serializing_if = "Option::is_none")]
28457 pub hash: Option<Box<Fingerprint>>,
28458 #[doc = "Software License\n\nThe software license applied to this component.\n\noptional"]
28459 #[serde(rename = "license")]
28460 #[serde(skip_serializing_if = "Option::is_none")]
28461 pub license: Option<String>,
28462 #[doc = "Name\n\nThe software component name.\n\nrequired"]
28463 #[serde(rename = "name")]
28464 #[serde(skip_serializing_if = "Option::is_none")]
28465 pub name: Option<String>,
28466 #[doc = "Package URL\n\nThe Package URL (PURL) to identify the software component. This is a URL that uniquely identifies the component, including the component's name, version, and type. The URL is used to locate and retrieve the component's metadata and content.\n\nrecommended"]
28467 #[serde(rename = "purl")]
28468 #[serde(skip_serializing_if = "Option::is_none")]
28469 pub purl: Option<String>,
28470 #[doc = "Related Component\n\nThe package URL (PURL) of the component that this software component has a relationship with.\n\nrecommended"]
28471 #[serde(rename = "related_component")]
28472 #[serde(skip_serializing_if = "Option::is_none")]
28473 pub related_component: Option<String>,
28474 #[doc = "Relationship\n\nThe relationship between two software components, normalized to the caption of the <code>relationship_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
28475 #[serde(rename = "relationship")]
28476 #[serde(skip_serializing_if = "Option::is_none")]
28477 pub relationship: Option<String>,
28478 #[doc = "Relationship ID\n\nThe normalized identifier of the relationship between two software components.\n\nrecommended"]
28479 #[serde(rename = "relationship_id")]
28480 #[serde(skip_serializing_if = "Option::is_none")]
28481 pub relationship_id: Option<i64>,
28482 #[doc = "Type\n\nThe type of software component, normalized to the caption of the <code>type_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
28483 #[serde(rename = "type")]
28484 #[serde(skip_serializing_if = "Option::is_none")]
28485 pub r#type: Option<String>,
28486 #[doc = "Type ID\n\nThe type of software component.\n\nrecommended"]
28487 #[serde(rename = "type_id")]
28488 #[serde(skip_serializing_if = "Option::is_none")]
28489 pub type_id: Option<i64>,
28490 #[doc = "Version\n\nThe software component version.\n\nrequired"]
28491 #[serde(rename = "version")]
28492 #[serde(skip_serializing_if = "Option::is_none")]
28493 pub version: Option<String>,
28494}
28495#[doc = "Span\n\nRepresents a single unit of work or operation within a distributed trace. A span typically tracks the execution of a request across a service, capturing important details such as the operation, timestamps, and status. Spans help break down the overall trace into smaller, manageable parts, enabling detailed analysis of the performance and behavior of specific operations within the system. They are crucial for understanding latency, dependencies, and bottlenecks in complex distributed systems.\n\n[] Category: | Name: span"]
28496#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28497#[serde(default)]
28498#[non_exhaustive]
28499pub struct Span {
28500 #[doc = "Duration Milliseconds\n\nThe total time, in milliseconds, that the span represents, calculated as the difference between start_time and end_time. It reflects the operation's performance and latency, independent of event timestamps, and accounts for normalized times used by observability tools to ensure consistency across distributed systems.\n\noptional"]
28501 #[serde(rename = "duration")]
28502 #[serde(skip_serializing_if = "Option::is_none")]
28503 pub duration: Option<i64>,
28504 #[doc = "End Time\n\nThe end timestamp of the span, essential for identifying latency and performance bottlenecks. Like the start time, this timestamp is normalized across the observability system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time allows for accurate duration calculations and helps observability tools track performance across services, regardless of the individual system time settings.\n\nrequired"]
28505 #[serde(rename = "end_time")]
28506 #[serde(skip_serializing_if = "Option::is_none")]
28507 pub end_time: Option<i64>,
28508 #[doc = "End Time\n\nThe end timestamp of the span, essential for identifying latency and performance bottlenecks. Like the start time, this timestamp is normalized across the observability system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time allows for accurate duration calculations and helps observability tools track performance across services, regardless of the individual system time settings.\n\noptional"]
28509 #[serde(rename = "end_time_dt")]
28510 #[serde(skip_serializing_if = "Option::is_none")]
28511 pub end_time_dt: Option<String>,
28512 #[doc = "Message\n\nThe message in a span (often referred to as a span event) serves as a way to record significant moments or occurrences during the span's lifecycle. This content typically manifests as log entries, annotations, or semi-structured events as a string, providing additional granularity and context about what happens at specific points during the execution of an operation.\n\noptional"]
28513 #[serde(rename = "message")]
28514 #[serde(skip_serializing_if = "Option::is_none")]
28515 pub message: Option<String>,
28516 #[doc = "Operation\n\nDescribes an action performed in a span, such as API requests, database queries, or computations.\n\noptional"]
28517 #[serde(rename = "operation")]
28518 #[serde(skip_serializing_if = "Option::is_none")]
28519 pub operation: Option<String>,
28520 #[doc = "Parent Unique ID\n\nThe ID of the parent span for this span object, establishing its relationship in the trace hierarchy.\n\noptional"]
28521 #[serde(rename = "parent_uid")]
28522 #[serde(skip_serializing_if = "Option::is_none")]
28523 pub parent_uid: Option<String>,
28524 #[doc = "Service\n\nIdentifies the service or component that generates the span, helping trace its path through the distributed system.\n\noptional"]
28525 #[serde(rename = "service")]
28526 #[serde(skip_serializing_if = "Option::is_none")]
28527 pub service: Option<Box<Service>>,
28528 #[doc = "Start Time\n\nThe start timestamp of the span, essential for identifying latency and performance bottlenecks. This timestamp is normalized across the observability system, ensuring consistency even when events occur across distributed services with potentially unsynchronized clocks. By using normalized time, observability tools can provide accurate, uniform measurements of operation performance and latency, regardless of where or when the events actually occur.\n\nrequired"]
28529 #[serde(rename = "start_time")]
28530 #[serde(skip_serializing_if = "Option::is_none")]
28531 pub start_time: Option<i64>,
28532 #[doc = "Start Time\n\nThe start timestamp of the span, essential for identifying latency and performance bottlenecks. This timestamp is normalized across the observability system, ensuring consistency even when events occur across distributed services with potentially unsynchronized clocks. By using normalized time, observability tools can provide accurate, uniform measurements of operation performance and latency, regardless of where or when the events actually occur.\n\noptional"]
28533 #[serde(rename = "start_time_dt")]
28534 #[serde(skip_serializing_if = "Option::is_none")]
28535 pub start_time_dt: Option<String>,
28536 #[doc = "Status Code\n\nIndicates the outcome of the operation in the span, such as success, failure, or error. Issues in a span typically refer to problems such as failed operations, timeouts, service unavailability, or errors in processing that can negatively impact the performance or reliability of the system. Tracking the `status_code` helps pinpoint these issues, enabling quicker identification and resolution of system inefficiencies or faults.\n\noptional"]
28537 #[serde(rename = "status_code")]
28538 #[serde(skip_serializing_if = "Option::is_none")]
28539 pub status_code: Option<String>,
28540 #[doc = "Unique ID\n\nThe unique identifier for the span, used in distributed systems and microservices architectures to track and correlate requests across different components of an application. It enables tracing the flow of a request through various services.\n\nrequired"]
28541 #[serde(rename = "uid")]
28542 #[serde(skip_serializing_if = "Option::is_none")]
28543 pub uid: Option<String>,
28544}
28545#[doc = "SSO\n\nThe Single Sign-On (SSO) object provides a structure for normalizing SSO attributes, configuration, and/or settings from Identity Providers.\n\n[] Category: | Name: sso"]
28546#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28547#[serde(default)]
28548#[non_exhaustive]
28549pub struct Sso {
28550 #[doc = "Auth Protocol\n\nThe authorization protocol as defined by the caption of <code>auth_protocol_id</code>. In the case of <code>Other</code>, it is defined by the event source.\n\noptional"]
28551 #[serde(rename = "auth_protocol")]
28552 #[serde(skip_serializing_if = "Option::is_none")]
28553 pub auth_protocol: Option<String>,
28554 #[doc = "Auth Protocol ID\n\nThe normalized identifier of the authentication protocol used by the SSO resource.\n\noptional"]
28555 #[serde(rename = "auth_protocol_id")]
28556 #[serde(skip_serializing_if = "Option::is_none")]
28557 pub auth_protocol_id: Option<i64>,
28558 #[doc = "SAML Certificate\n\nDigital Signature associated with the SSO resource, e.g., SAML X.509 certificate details.\n\nrecommended"]
28559 #[serde(rename = "certificate")]
28560 #[serde(skip_serializing_if = "Option::is_none")]
28561 pub certificate: Option<Box<Certificate>>,
28562 #[doc = "Created Time\n\nWhen the SSO resource was created.\n\noptional"]
28563 #[serde(rename = "created_time")]
28564 #[serde(skip_serializing_if = "Option::is_none")]
28565 pub created_time: Option<i64>,
28566 #[doc = "Created Time\n\nWhen the SSO resource was created.\n\noptional"]
28567 #[serde(rename = "created_time_dt")]
28568 #[serde(skip_serializing_if = "Option::is_none")]
28569 pub created_time_dt: Option<String>,
28570 #[doc = "SSO Session Duration\n\nThe duration (in minutes) for an SSO session, after which re-authentication is required.\n\noptional"]
28571 #[serde(rename = "duration_mins")]
28572 #[serde(skip_serializing_if = "Option::is_none")]
28573 pub duration_mins: Option<i64>,
28574 #[doc = "SSO Idle Timeout\n\nDuration (in minutes) of allowed inactivity before Single Sign-On (SSO) session expiration.\n\noptional"]
28575 #[serde(rename = "idle_timeout")]
28576 #[serde(skip_serializing_if = "Option::is_none")]
28577 pub idle_timeout: Option<i64>,
28578 #[doc = "SSO Login Endpoint\n\nURL for initiating an SSO login request.\n\noptional"]
28579 #[serde(rename = "login_endpoint")]
28580 #[serde(skip_serializing_if = "Option::is_none")]
28581 pub login_endpoint: Option<String>,
28582 #[doc = "SSO Logout Endpoint\n\nURL for initiating an SSO logout request, allowing sessions to be terminated across applications.\n\noptional"]
28583 #[serde(rename = "logout_endpoint")]
28584 #[serde(skip_serializing_if = "Option::is_none")]
28585 pub logout_endpoint: Option<String>,
28586 #[doc = "SSO Metadata Endpoint\n\nURL where metadata about the SSO configuration is available (e.g., for SAML configurations).\n\noptional"]
28587 #[serde(rename = "metadata_endpoint")]
28588 #[serde(skip_serializing_if = "Option::is_none")]
28589 pub metadata_endpoint: Option<String>,
28590 #[doc = "Modified Time\n\nThe most recent time when the SSO resource was updated.\n\noptional"]
28591 #[serde(rename = "modified_time")]
28592 #[serde(skip_serializing_if = "Option::is_none")]
28593 pub modified_time: Option<i64>,
28594 #[doc = "Modified Time\n\nThe most recent time when the SSO resource was updated.\n\noptional"]
28595 #[serde(rename = "modified_time_dt")]
28596 #[serde(skip_serializing_if = "Option::is_none")]
28597 pub modified_time_dt: Option<String>,
28598 #[doc = "Name\n\nThe name of the SSO resource.\n\nrecommended"]
28599 #[serde(rename = "name")]
28600 #[serde(skip_serializing_if = "Option::is_none")]
28601 pub name: Option<String>,
28602 #[doc = "Supported Protocol\n\nThe supported protocol for the SSO resource. E.g., <code>SAML</code> or <code>OIDC</code>.\n\noptional"]
28603 #[serde(rename = "protocol_name")]
28604 #[serde(skip_serializing_if = "Option::is_none")]
28605 pub protocol_name: Option<String>,
28606 #[doc = "Scopes\n\nScopes define the specific permissions or actions that the client is allowed to perform on behalf of the user. Each scope represents a different set of permissions, and the user can selectively grant or deny access to specific scopes during the authorization process.\n\noptional"]
28607 #[serde(rename = "scopes")]
28608 #[serde(skip_serializing_if = "Option::is_none")]
28609 pub scopes: Option<Vec<String>>,
28610 #[doc = "Unique ID\n\nA unique identifier for a SSO resource.\n\nrecommended"]
28611 #[serde(rename = "uid")]
28612 #[serde(skip_serializing_if = "Option::is_none")]
28613 pub uid: Option<String>,
28614 #[doc = "Service Provider\n\nName of the vendor or service provider implementing SSO. E.g., <code>Okta</code>, <code>Auth0</code>, <code>Microsoft</code>.\n\noptional"]
28615 #[serde(rename = "vendor_name")]
28616 #[serde(skip_serializing_if = "Option::is_none")]
28617 pub vendor_name: Option<String>,
28618}
28619#[doc = "Startup Item\n\nThe startup item object describes an application component that has associated startup criteria and configurations.\n\n[] Category: | Name: startup_item\n\n**Constraints:**\n* just_one: `[driver`,`job`,`process`,`win_service]`\n"]
28620#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28621#[serde(default)]
28622#[non_exhaustive]
28623pub struct StartupItem {
28624 #[doc = "Kernel Driver\n\nThe startup item kernel driver resource.\n\noptional"]
28625 #[serde(rename = "driver")]
28626 #[serde(skip_serializing_if = "Option::is_none")]
28627 pub driver: Option<Box<KernelDriver>>,
28628 #[doc = "Job\n\nThe startup item job resource.\n\noptional"]
28629 #[serde(rename = "job")]
28630 #[serde(skip_serializing_if = "Option::is_none")]
28631 pub job: Option<Box<Job>>,
28632 #[doc = "Name\n\nThe unique name of the startup item.\n\nrequired"]
28633 #[serde(rename = "name")]
28634 #[serde(skip_serializing_if = "Option::is_none")]
28635 pub name: Option<String>,
28636 #[doc = "Process\n\nThe startup item process resource.\n\noptional"]
28637 #[serde(rename = "process")]
28638 #[serde(skip_serializing_if = "Option::is_none")]
28639 pub process: Option<Box<Process>>,
28640 #[doc = "Run Mode IDs\n\nThe list of normalized identifiers that describe the startup items' properties when it is running. Use this field to capture extended information about the process, which may depend on the type of startup item. E.g., A Windows service that interacts with the desktop.\n\noptional"]
28641 #[serde(rename = "run_mode_ids")]
28642 #[serde(skip_serializing_if = "Option::is_none")]
28643 pub run_mode_ids: Option<Vec<i64>>,
28644 #[doc = "Run Modes\n\nThe list of run_modes, normalized to the captions of the run_mode_id values. In the case of 'Other', they are defined by the event source.\n\noptional"]
28645 #[serde(rename = "run_modes")]
28646 #[serde(skip_serializing_if = "Option::is_none")]
28647 pub run_modes: Option<Vec<String>>,
28648 #[doc = "Run State\n\nThe run state of the startup item.\n\noptional"]
28649 #[serde(rename = "run_state")]
28650 #[serde(skip_serializing_if = "Option::is_none")]
28651 pub run_state: Option<String>,
28652 #[doc = "Run State ID\n\nThe run state ID of the startup item.\n\nrecommended"]
28653 #[serde(rename = "run_state_id")]
28654 #[serde(skip_serializing_if = "Option::is_none")]
28655 pub run_state_id: Option<i64>,
28656 #[doc = "Start Type\n\nThe start type of the startup item.\n\noptional"]
28657 #[serde(rename = "start_type")]
28658 #[serde(skip_serializing_if = "Option::is_none")]
28659 pub start_type: Option<String>,
28660 #[doc = "Start Type ID\n\nThe start type ID of the startup item.\n\nrequired"]
28661 #[serde(rename = "start_type_id")]
28662 #[serde(skip_serializing_if = "Option::is_none")]
28663 pub start_type_id: Option<i64>,
28664 #[doc = "Type\n\nThe startup item type.\n\noptional"]
28665 #[serde(rename = "type")]
28666 #[serde(skip_serializing_if = "Option::is_none")]
28667 pub r#type: Option<String>,
28668 #[doc = "Type ID\n\nThe startup item type identifier.\n\nrecommended"]
28669 #[serde(rename = "type_id")]
28670 #[serde(skip_serializing_if = "Option::is_none")]
28671 pub type_id: Option<i64>,
28672 #[doc = "Windows Service\n\nThe startup item Windows service resource.\n\noptional"]
28673 #[serde(rename = "win_service")]
28674 #[serde(skip_serializing_if = "Option::is_none")]
28675 pub win_service: Option<Box<WinWinService>>,
28676}
28677#[doc = "MITRE Sub-technique\n\nThe MITRE Sub-technique object describes the ATT&CK® or ATLAS™ Sub-technique ID and/or name associated to an attack.\n\n[] Category: | Name: sub_technique\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28678#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28679#[serde(default)]
28680#[non_exhaustive]
28681pub struct SubTechnique {
28682 #[doc = "Name\n\nThe name of the attack sub-technique. For example: <code>Scanning IP Blocks</code> or <code>User Execution: Unsafe ML Artifacts</code>.\n\nrecommended"]
28683 #[serde(rename = "name")]
28684 #[serde(skip_serializing_if = "Option::is_none")]
28685 pub name: Option<String>,
28686 #[doc = "Source URL\n\nThe versioned permalink of the attack sub-technique. For example: <code>https://attack.mitre.org/versions/v14/techniques/T1595/001/</code>.\n\noptional"]
28687 #[serde(rename = "src_url")]
28688 #[serde(skip_serializing_if = "Option::is_none")]
28689 pub src_url: Option<String>,
28690 #[doc = "Unique ID\n\nThe unique identifier of the attack sub-technique. For example: <code>T1595.001</code> or <code>AML.T0011.000</code>.\n\nrecommended"]
28691 #[serde(rename = "uid")]
28692 #[serde(skip_serializing_if = "Option::is_none")]
28693 pub uid: Option<String>,
28694}
28695#[doc = "Table\n\nThe table object represents a table within a structured relational database or datastore, which contains columns and rows of data that are able to be create, updated, deleted and queried.\n\n[] Category: | Name: table\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28696#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28697#[serde(default)]
28698#[non_exhaustive]
28699pub struct Table {
28700 #[doc = "Created Time\n\nThe time when the table was known to have been created.\n\noptional"]
28701 #[serde(rename = "created_time")]
28702 #[serde(skip_serializing_if = "Option::is_none")]
28703 pub created_time: Option<i64>,
28704 #[doc = "Created Time\n\nThe time when the table was known to have been created.\n\noptional"]
28705 #[serde(rename = "created_time_dt")]
28706 #[serde(skip_serializing_if = "Option::is_none")]
28707 pub created_time_dt: Option<String>,
28708 #[doc = "Description\n\nThe description of the table.\n\noptional"]
28709 #[serde(rename = "desc")]
28710 #[serde(skip_serializing_if = "Option::is_none")]
28711 pub desc: Option<String>,
28712 #[doc = "Groups\n\nThe group names to which the table belongs.\n\noptional"]
28713 #[serde(rename = "groups")]
28714 #[serde(skip_serializing_if = "Option::is_none")]
28715 pub groups: Option<Vec<Group>>,
28716 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the table.\n\noptional"]
28717 #[serde(rename = "modified_time")]
28718 #[serde(skip_serializing_if = "Option::is_none")]
28719 pub modified_time: Option<i64>,
28720 #[doc = "Modified Time\n\nThe most recent time when any changes, updates, or modifications were made within the table.\n\noptional"]
28721 #[serde(rename = "modified_time_dt")]
28722 #[serde(skip_serializing_if = "Option::is_none")]
28723 pub modified_time_dt: Option<String>,
28724 #[doc = "Name\n\nThe table name, ordinarily as assigned by a database administrator.\n\nrecommended"]
28725 #[serde(rename = "name")]
28726 #[serde(skip_serializing_if = "Option::is_none")]
28727 pub name: Option<String>,
28728 #[doc = "Size\n\nThe size of the data table in bytes.\n\noptional"]
28729 #[serde(rename = "size")]
28730 #[serde(skip_serializing_if = "Option::is_none")]
28731 pub size: Option<i64>,
28732 #[doc = "Unique ID\n\nThe unique identifier of the table.\n\nrecommended"]
28733 #[serde(rename = "uid")]
28734 #[serde(skip_serializing_if = "Option::is_none")]
28735 pub uid: Option<String>,
28736}
28737#[doc = "MITRE Tactic\n\nThe MITRE Tactic object describes the ATT&CK® or ATLAS™ Tactic ID and/or name that is associated to an attack.\n\n[] Category: | Name: tactic\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28738#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28739#[serde(default)]
28740#[non_exhaustive]
28741pub struct Tactic {
28742 #[doc = "Name\n\nThe Tactic name that is associated with the attack technique. For example: <code>Reconnaissance</code> or <code>ML Model Access</code>.\n\nrecommended"]
28743 #[serde(rename = "name")]
28744 #[serde(skip_serializing_if = "Option::is_none")]
28745 pub name: Option<String>,
28746 #[doc = "Source URL\n\nThe versioned permalink of the Tactic. For example: <code>https://attack.mitre.org/versions/v14/tactics/TA0043/</code>.\n\noptional"]
28747 #[serde(rename = "src_url")]
28748 #[serde(skip_serializing_if = "Option::is_none")]
28749 pub src_url: Option<String>,
28750 #[doc = "Unique ID\n\nThe Tactic ID that is associated with the attack technique. For example: <code>TA0043</code>, or <code>AML.TA0000</code>.\n\nrecommended"]
28751 #[serde(rename = "uid")]
28752 #[serde(skip_serializing_if = "Option::is_none")]
28753 pub uid: Option<String>,
28754}
28755#[doc = "MITRE Technique\n\nThe MITRE Technique object describes the ATT&CK® or ATLAS™ Technique ID and/or name associated to an attack.\n\n[] Category: | Name: technique\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
28756#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28757#[serde(default)]
28758#[non_exhaustive]
28759pub struct Technique {
28760 #[doc = "Name\n\nThe name of the attack technique. For example: <code>Active Scanning</code> or <code>AI Model Inference API Access</code>.\n\nrecommended"]
28761 #[serde(rename = "name")]
28762 #[serde(skip_serializing_if = "Option::is_none")]
28763 pub name: Option<String>,
28764 #[doc = "Source URL\n\nThe versioned permalink of the attack technique. For example: <code>https://attack.mitre.org/versions/v14/techniques/T1595/</code>.\n\noptional"]
28765 #[serde(rename = "src_url")]
28766 #[serde(skip_serializing_if = "Option::is_none")]
28767 pub src_url: Option<String>,
28768 #[doc = "Unique ID\n\nThe unique identifier of the attack technique. For example: <code>T1595</code> or <code>AML.T0040</code>.\n\nrecommended"]
28769 #[serde(rename = "uid")]
28770 #[serde(skip_serializing_if = "Option::is_none")]
28771 pub uid: Option<String>,
28772}
28773#[doc = "Threat Actor\n\nThreat actor is responsible for the observed malicious activity.\n\n[] Category: | Name: threat_actor"]
28774#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28775#[serde(default)]
28776#[non_exhaustive]
28777pub struct ThreatActor {
28778 #[doc = "Name\n\nThe name of the threat actor.\n\nrequired"]
28779 #[serde(rename = "name")]
28780 #[serde(skip_serializing_if = "Option::is_none")]
28781 pub name: Option<String>,
28782 #[doc = "Threat Actor Type\n\nThe classification of the threat actor based on their motivations, capabilities, or affiliations. Common types include nation-state actors, cybercriminal groups, hacktivists, or insider threats.\n\noptional"]
28783 #[serde(rename = "type")]
28784 #[serde(skip_serializing_if = "Option::is_none")]
28785 pub r#type: Option<String>,
28786 #[doc = "Threat Actor Type ID\n\nThe normalized datastore resource type identifier.\n\nrecommended"]
28787 #[serde(rename = "type_id")]
28788 #[serde(skip_serializing_if = "Option::is_none")]
28789 pub type_id: Option<i64>,
28790}
28791#[doc = "Ticket\n\nThe Ticket object represents ticket in the customer's IT Service Management (ITSM) systems like ServiceNow, Jira, etc.\n\n[] Category: | Name: ticket\n\n**Constraints:**\n* at_least_one: `[src_url`,`uid]`\n"]
28792#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28793#[serde(default)]
28794#[non_exhaustive]
28795pub struct Ticket {
28796 #[doc = "Source URL\n\nThe url of a ticket in the ticket system.\n\nrecommended"]
28797 #[serde(rename = "src_url")]
28798 #[serde(skip_serializing_if = "Option::is_none")]
28799 pub src_url: Option<String>,
28800 #[doc = "Ticket Status\n\nThe status of the ticket normalized to the caption of the <code>status_id</code> value. In the case of <code>99</code>, this value should as defined by the source.\n\noptional"]
28801 #[serde(rename = "status")]
28802 #[serde(skip_serializing_if = "Option::is_none")]
28803 pub status: Option<String>,
28804 #[doc = "Status Details\n\nA list of contextual descriptions of the <code>status, status_id</code> values.\n\noptional"]
28805 #[serde(rename = "status_details")]
28806 #[serde(skip_serializing_if = "Option::is_none")]
28807 pub status_details: Option<Vec<String>>,
28808 #[doc = "Ticket Status ID\n\nThe normalized identifier for the ticket status.\n\noptional"]
28809 #[serde(rename = "status_id")]
28810 #[serde(skip_serializing_if = "Option::is_none")]
28811 pub status_id: Option<i64>,
28812 #[doc = "Title\n\nThe title of the ticket.\n\noptional"]
28813 #[serde(rename = "title")]
28814 #[serde(skip_serializing_if = "Option::is_none")]
28815 pub title: Option<String>,
28816 #[doc = "Ticket Type\n\nThe linked ticket type determines whether the ticket is internal or in an external ticketing system.\n\noptional"]
28817 #[serde(rename = "type")]
28818 #[serde(skip_serializing_if = "Option::is_none")]
28819 pub r#type: Option<String>,
28820 #[doc = "Ticket Type ID\n\nThe normalized identifier for the ticket type.\n\noptional"]
28821 #[serde(rename = "type_id")]
28822 #[serde(skip_serializing_if = "Option::is_none")]
28823 pub type_id: Option<i64>,
28824 #[doc = "Unique ID\n\nUnique identifier of the ticket.\n\nrecommended"]
28825 #[serde(rename = "uid")]
28826 #[serde(skip_serializing_if = "Option::is_none")]
28827 pub uid: Option<String>,
28828}
28829#[doc = "Time Span\n\nThe Time Span object represents different time period durations. If a timespan is fractional, i.e. crosses one period, e.g. a week and 3 days, more than one may be populated since each member is of integral type. In that case <code>type_id</code> if present should be set to <code>Other.</code><P>A timespan may also be defined by its time interval boundaries, <code>start_time</code> and <code>end_time</code>.\n\n[] Category: | Name: timespan\n\n**Constraints:**\n* at_least_one: `[duration`,`duration_days`,`duration_hours`,`duration_mins`,`duration_months`,`duration_secs`,`duration_weeks`,`duration_years`,`end_time`,`start_time]`\n"]
28830#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28831#[serde(default)]
28832#[non_exhaustive]
28833pub struct Timespan {
28834 #[doc = "Duration Milliseconds\n\nThe duration of the time span in milliseconds.\n\nrecommended"]
28835 #[serde(rename = "duration")]
28836 #[serde(skip_serializing_if = "Option::is_none")]
28837 pub duration: Option<i64>,
28838 #[doc = "Duration Days\n\nThe duration of the time span in days.\n\nrecommended"]
28839 #[serde(rename = "duration_days")]
28840 #[serde(skip_serializing_if = "Option::is_none")]
28841 pub duration_days: Option<i64>,
28842 #[doc = "Duration Hours\n\nThe duration of the time span in hours.\n\nrecommended"]
28843 #[serde(rename = "duration_hours")]
28844 #[serde(skip_serializing_if = "Option::is_none")]
28845 pub duration_hours: Option<i64>,
28846 #[doc = "Duration Minutes\n\nThe duration of the time span in minutes.\n\nrecommended"]
28847 #[serde(rename = "duration_mins")]
28848 #[serde(skip_serializing_if = "Option::is_none")]
28849 pub duration_mins: Option<i64>,
28850 #[doc = "Duration Months\n\nThe duration of the time span in months.\n\nrecommended"]
28851 #[serde(rename = "duration_months")]
28852 #[serde(skip_serializing_if = "Option::is_none")]
28853 pub duration_months: Option<i64>,
28854 #[doc = "Duration Seconds\n\nThe duration of the time span in seconds.\n\nrecommended"]
28855 #[serde(rename = "duration_secs")]
28856 #[serde(skip_serializing_if = "Option::is_none")]
28857 pub duration_secs: Option<i64>,
28858 #[doc = "Duration Weeks\n\nThe duration of the time span in weeks.\n\nrecommended"]
28859 #[serde(rename = "duration_weeks")]
28860 #[serde(skip_serializing_if = "Option::is_none")]
28861 pub duration_weeks: Option<i64>,
28862 #[doc = "Duration Years\n\nThe duration of the time span in years.\n\nrecommended"]
28863 #[serde(rename = "duration_years")]
28864 #[serde(skip_serializing_if = "Option::is_none")]
28865 pub duration_years: Option<i64>,
28866 #[doc = "End Time\n\nThe end time or conclusion of the timespan's interval.\n\nrecommended"]
28867 #[serde(rename = "end_time")]
28868 #[serde(skip_serializing_if = "Option::is_none")]
28869 pub end_time: Option<i64>,
28870 #[doc = "End Time\n\nThe end time or conclusion of the timespan's interval.\n\noptional"]
28871 #[serde(rename = "end_time_dt")]
28872 #[serde(skip_serializing_if = "Option::is_none")]
28873 pub end_time_dt: Option<String>,
28874 #[doc = "Start Time\n\nThe start time or beginning of the timespan's interval.\n\nrecommended"]
28875 #[serde(rename = "start_time")]
28876 #[serde(skip_serializing_if = "Option::is_none")]
28877 pub start_time: Option<i64>,
28878 #[doc = "Start Time\n\nThe start time or beginning of the timespan's interval.\n\noptional"]
28879 #[serde(rename = "start_time_dt")]
28880 #[serde(skip_serializing_if = "Option::is_none")]
28881 pub start_time_dt: Option<String>,
28882 #[doc = "Time Span Type\n\nThe type of time span duration the object represents.\n\noptional"]
28883 #[serde(rename = "type")]
28884 #[serde(skip_serializing_if = "Option::is_none")]
28885 pub r#type: Option<String>,
28886 #[doc = "Time Span Type ID\n\nThe normalized identifier for the time span duration type.\n\nrecommended"]
28887 #[serde(rename = "type_id")]
28888 #[serde(skip_serializing_if = "Option::is_none")]
28889 pub type_id: Option<i64>,
28890}
28891#[doc = "Transport Layer Security (TLS)\n\nThe Transport Layer Security (TLS) object describes the negotiated TLS protocol used for secure communications over an establish network connection.\n\n[] Category: | Name: tls"]
28892#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28893#[serde(default)]
28894#[non_exhaustive]
28895pub struct Tls {
28896 #[doc = "Client TLS Alert\n\nThe integer value of TLS alert if present. The alerts are defined in the TLS specification in <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc2246'>RFC-2246</a>.\n\noptional"]
28897 #[serde(rename = "alert")]
28898 #[serde(skip_serializing_if = "Option::is_none")]
28899 pub alert: Option<i64>,
28900 #[doc = "Certificate\n\nThe certificate object containing information about the digital certificate.\n\nrecommended"]
28901 #[serde(rename = "certificate")]
28902 #[serde(skip_serializing_if = "Option::is_none")]
28903 pub certificate: Option<Box<Certificate>>,
28904 #[doc = "Certificate Chain\n\nThe Chain of Certificate Serial Numbers field provides a chain of Certificate Issuer Serial Numbers leading to the Root Certificate Issuer.\n\nrecommended"]
28905 #[serde(rename = "certificate_chain")]
28906 #[serde(skip_serializing_if = "Option::is_none")]
28907 pub certificate_chain: Option<Vec<String>>,
28908 #[doc = "Cipher Suite\n\nThe negotiated cipher suite.\n\nrecommended"]
28909 #[serde(rename = "cipher")]
28910 #[serde(skip_serializing_if = "Option::is_none")]
28911 pub cipher: Option<String>,
28912 #[doc = "Client Cipher Suites\n\nThe client cipher suites that were exchanged during the TLS handshake negotiation.\n\nrecommended"]
28913 #[serde(rename = "client_ciphers")]
28914 #[serde(skip_serializing_if = "Option::is_none")]
28915 pub client_ciphers: Option<Vec<String>>,
28916 #[doc = "Extension List\n\nThe list of TLS extensions.\n\noptional"]
28917 #[serde(rename = "extension_list")]
28918 #[serde(skip_serializing_if = "Option::is_none")]
28919 pub extension_list: Option<Vec<TlsExtension>>,
28920 #[doc = "Handshake Duration\n\nThe amount of total time for the TLS handshake to complete after the TCP connection is established, including client-side delays, in milliseconds.\n\noptional"]
28921 #[serde(rename = "handshake_dur")]
28922 #[serde(skip_serializing_if = "Option::is_none")]
28923 pub handshake_dur: Option<i64>,
28924 #[doc = "JA3 Hash\n\nThe MD5 hash of a JA3 string.\n\nrecommended"]
28925 #[serde(rename = "ja3_hash")]
28926 #[serde(skip_serializing_if = "Option::is_none")]
28927 pub ja3_hash: Option<Box<Fingerprint>>,
28928 #[doc = "JA3S Hash\n\nThe MD5 hash of a JA3S string.\n\nrecommended"]
28929 #[serde(rename = "ja3s_hash")]
28930 #[serde(skip_serializing_if = "Option::is_none")]
28931 pub ja3s_hash: Option<Box<Fingerprint>>,
28932 #[doc = "Key Length\n\nThe length of the encryption key.\n\noptional"]
28933 #[serde(rename = "key_length")]
28934 #[serde(skip_serializing_if = "Option::is_none")]
28935 pub key_length: Option<i64>,
28936 #[doc = "Subject Alternative Names\n\nThe list of subject alternative names that are secured by a specific certificate.\n\noptional"]
28937 #[serde(rename = "sans")]
28938 #[serde(skip_serializing_if = "Option::is_none")]
28939 pub sans: Option<Vec<San>>,
28940 #[doc = "Server Cipher Suites\n\nThe server cipher suites that were exchanged during the TLS handshake negotiation.\n\noptional"]
28941 #[serde(rename = "server_ciphers")]
28942 #[serde(skip_serializing_if = "Option::is_none")]
28943 pub server_ciphers: Option<Vec<String>>,
28944 #[doc = "Server Name Indication\n\n The Server Name Indication (SNI) extension sent by the client.\n\nrecommended"]
28945 #[serde(rename = "sni")]
28946 #[serde(skip_serializing_if = "Option::is_none")]
28947 pub sni: Option<String>,
28948 #[doc = "TLS Extension List\n\nThe list of TLS extensions.\n\noptional"]
28949 #[serde(rename = "tls_extension_list")]
28950 #[serde(skip_serializing_if = "Option::is_none")]
28951 pub tls_extension_list: Option<Vec<TlsExtension>>,
28952 #[doc = "Version\n\nThe TLS protocol version.\n\nrequired"]
28953 #[serde(rename = "version")]
28954 #[serde(skip_serializing_if = "Option::is_none")]
28955 pub version: Option<String>,
28956}
28957#[doc = "TLS Extension\n\nThe TLS Extension object describes additional attributes that extend the base Transport Layer Security (TLS) object.\n\n[] Category: | Name: tls_extension"]
28958#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28959#[serde(default)]
28960#[non_exhaustive]
28961pub struct TlsExtension {
28962 #[doc = "Data\n\nThe data contains information specific to the particular extension type.\n\nrecommended"]
28963 #[serde(rename = "data")]
28964 #[serde(skip_serializing_if = "Option::is_none")]
28965 pub data: Option<serde_json::Value>,
28966 #[doc = "Type\n\nThe TLS extension type. For example: <code>Server Name</code>.\n\noptional"]
28967 #[serde(rename = "type")]
28968 #[serde(skip_serializing_if = "Option::is_none")]
28969 pub r#type: Option<String>,
28970 #[doc = "Type ID\n\nThe TLS extension type identifier. See <a target='_blank' href='https://datatracker.ietf.org/doc/html/rfc8446#page-35'>The Transport Layer Security (TLS) extension page</a>.\n\nrequired"]
28971 #[serde(rename = "type_id")]
28972 #[serde(skip_serializing_if = "Option::is_none")]
28973 pub type_id: Option<i64>,
28974}
28975#[doc = "Trace\n\nThe trace object contains information about a distributed trace, which is crucial for observability. Traces are made up of one or more spans, which are individual units of work in application activity. Traces track the journey of a request as it moves through various services in a system, capturing key details like timing, status, and dependencies at each step. Traces provide insights into system performance, helping to identify latency, bottlenecks, and issues in complex, distributed environments.\n\n[] Category: | Name: trace"]
28976#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
28977#[serde(default)]
28978#[non_exhaustive]
28979pub struct Trace {
28980 #[doc = "Duration Milliseconds\n\nThe total time, in milliseconds, that the trace covers, calculated as the difference between start_time and end_time. This duration helps assess the overall performance of a request as it travels across various services, and is essential for identifying latency and potential bottlenecks within the distributed system. The trace duration may differ from individual span durations due to the propagation and processing times of the trace as it spans multiple components.\n\noptional"]
28981 #[serde(rename = "duration")]
28982 #[serde(skip_serializing_if = "Option::is_none")]
28983 pub duration: Option<i64>,
28984 #[doc = "End Time\n\nThe end timestamp of the trace, essential for identifying latency and performance bottlenecks. Like the start time, this timestamp is normalized across the trace system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time allows for accurate trace duration calculations and helps observability tools track overall performance across services, regardless of the individual system time settings.\n\noptional"]
28985 #[serde(rename = "end_time")]
28986 #[serde(skip_serializing_if = "Option::is_none")]
28987 pub end_time: Option<i64>,
28988 #[doc = "End Time\n\nThe end timestamp of the trace, essential for identifying latency and performance bottlenecks. Like the start time, this timestamp is normalized across the trace system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time allows for accurate trace duration calculations and helps observability tools track overall performance across services, regardless of the individual system time settings.\n\noptional"]
28989 #[serde(rename = "end_time_dt")]
28990 #[serde(skip_serializing_if = "Option::is_none")]
28991 pub end_time_dt: Option<String>,
28992 #[doc = "Flags\n\nThe flags associated with the trace, used to indicate specific properties or behaviors, such as whether the trace is sampled or if it has special handling. Flags help control how traces are processed, logged, and analyzed, providing valuable context for tracing and observability tools in identifying trace characteristics or specific tracking requirements.\n\noptional"]
28993 #[serde(rename = "flags")]
28994 #[serde(skip_serializing_if = "Option::is_none")]
28995 pub flags: Option<Vec<String>>,
28996 #[doc = "Service\n\nIdentifies the service or component generating the trace, helping to track and correlate the flow of requests through various parts of a distributed system. This information is essential for understanding the role and performance of specific services within the broader context of system operations and for diagnosing issues across different components.\n\noptional"]
28997 #[serde(rename = "service")]
28998 #[serde(skip_serializing_if = "Option::is_none")]
28999 pub service: Option<Box<Service>>,
29000 #[doc = "Span\n\nRepresents a single unit of work or operation within a distributed trace. A span typically tracks the execution of a request across a service, capturing important details such as the operation, timestamps, and status. Spans help break down the overall trace into smaller, manageable parts, enabling detailed analysis of the performance and behavior of specific operations within the system. They are crucial for understanding latency, dependencies, and bottlenecks in complex distributed systems.\n\noptional"]
29001 #[serde(rename = "span")]
29002 #[serde(skip_serializing_if = "Option::is_none")]
29003 pub span: Option<Box<Span>>,
29004 #[doc = "Start Time\n\nThe start timestamp of the trace, essential for identifying latency and performance bottlenecks. Like the end time, this timestamp is normalized across the trace system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time enables accurate trace duration calculations and helps observability tools track performance across services, regardless of the individual system time settings.\n\noptional"]
29005 #[serde(rename = "start_time")]
29006 #[serde(skip_serializing_if = "Option::is_none")]
29007 pub start_time: Option<i64>,
29008 #[doc = "Start Time\n\nThe start timestamp of the trace, essential for identifying latency and performance bottlenecks. Like the end time, this timestamp is normalized across the trace system to ensure consistency, even when events are recorded across distributed services with unsynchronized clocks. Normalized time enables accurate trace duration calculations and helps observability tools track performance across services, regardless of the individual system time settings.\n\noptional"]
29009 #[serde(rename = "start_time_dt")]
29010 #[serde(skip_serializing_if = "Option::is_none")]
29011 pub start_time_dt: Option<String>,
29012 #[doc = "Unique ID\n\nThe unique identifier of the trace used in distributed systems and microservices architecture to track and correlate requests across various components of an application.\n\nrequired"]
29013 #[serde(rename = "uid")]
29014 #[serde(skip_serializing_if = "Option::is_none")]
29015 pub uid: Option<String>,
29016}
29017#[doc = "Trait\n\nDescribes a characteristic or feature of an entity that was observed. For example, this object can be used to represent specific characteristics derived from events or findings that can be surfaced as distinguishing traits of the entity in question.\n\n[] Category: | Name: trait\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29018#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29019#[serde(default)]
29020#[non_exhaustive]
29021pub struct Trait {
29022 #[doc = "Category\n\nThe high-level grouping or classification this trait belongs to.\n\noptional"]
29023 #[serde(rename = "category")]
29024 #[serde(skip_serializing_if = "Option::is_none")]
29025 pub category: Option<String>,
29026 #[doc = "Name\n\nThe name of the trait.\n\nrecommended"]
29027 #[serde(rename = "name")]
29028 #[serde(skip_serializing_if = "Option::is_none")]
29029 pub name: Option<String>,
29030 #[doc = "Type\n\nThe type of the trait. For example, this can be used to indicate if the trait acts as a contributing factor (increases risk/severity) or a mitigating factor (decreases risk/severity), in the context of the related finding.\n\noptional"]
29031 #[serde(rename = "type")]
29032 #[serde(skip_serializing_if = "Option::is_none")]
29033 pub r#type: Option<String>,
29034 #[doc = "Unique ID\n\nThe unique identifier of the trait.\n\nrecommended"]
29035 #[serde(rename = "uid")]
29036 #[serde(skip_serializing_if = "Option::is_none")]
29037 pub uid: Option<String>,
29038 #[doc = "Values\n\nThe values of the trait.\n\noptional"]
29039 #[serde(rename = "values")]
29040 #[serde(skip_serializing_if = "Option::is_none")]
29041 pub values: Option<Vec<String>>,
29042}
29043#[doc = "Transformation Info\n\nThe transformation_info object represents the mapping or transformation used.\n\n[] Category: | Name: transformation_info\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29044#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29045#[serde(default)]
29046#[non_exhaustive]
29047pub struct TransformationInfo {
29048 #[doc = "Language\n\nThe transformation language used to transform the data.\n\noptional"]
29049 #[serde(rename = "lang")]
29050 #[serde(skip_serializing_if = "Option::is_none")]
29051 pub lang: Option<String>,
29052 #[doc = "Name\n\nThe name of the transformation or mapping.\n\nrecommended"]
29053 #[serde(rename = "name")]
29054 #[serde(skip_serializing_if = "Option::is_none")]
29055 pub name: Option<String>,
29056 #[doc = "Product\n\nThe product or instance used to make the transformation\n\noptional"]
29057 #[serde(rename = "product")]
29058 #[serde(skip_serializing_if = "Option::is_none")]
29059 pub product: Option<Box<Product>>,
29060 #[doc = "Event Time\n\nTime of the transformation.\n\nrecommended"]
29061 #[serde(rename = "time")]
29062 #[serde(skip_serializing_if = "Option::is_none")]
29063 pub time: Option<i64>,
29064 #[doc = "Event Time\n\nTime of the transformation.\n\noptional"]
29065 #[serde(rename = "time_dt")]
29066 #[serde(skip_serializing_if = "Option::is_none")]
29067 pub time_dt: Option<String>,
29068 #[doc = "Unique ID\n\nThe unique identifier of the mapping or transformation.\n\noptional"]
29069 #[serde(rename = "uid")]
29070 #[serde(skip_serializing_if = "Option::is_none")]
29071 pub uid: Option<String>,
29072 #[doc = "URL String\n\nThe Uniform Resource Locator String where the mapping or transformation exists.\n\nrecommended"]
29073 #[serde(rename = "url_string")]
29074 #[serde(skip_serializing_if = "Option::is_none")]
29075 pub url_string: Option<String>,
29076}
29077#[doc = "Unmanned Aerial System\n\nThe Unmanned Aerial System object describes the characteristics, Position Location Information (PLI), and other metadata of Unmanned Aerial Systems (UAS) and other unmanned and drone systems used in Remote ID. Remote ID is defined in the Standard Specification for Remote ID and Tracking (ASTM Designation: F3411-22a) <a target='_blank' href='https://cdn.standards.iteh.ai/samples/112830/71297057ac42432880a203654f213709/ASTM-F3411-22a.pdf'>ASTM F3411-22a</a>.\n\n[] Category: | Name: unmanned_aerial_system\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29078#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29079#[serde(default)]
29080#[non_exhaustive]
29081pub struct UnmannedAerialSystem {
29082 #[doc = "UAS Hardware Information\n\nThe endpoint hardware information.\n\noptional"]
29083 #[serde(rename = "hw_info")]
29084 #[serde(skip_serializing_if = "Option::is_none")]
29085 pub hw_info: Option<Box<DeviceHwInfo>>,
29086 #[doc = "UAS Position Location Information\n\nThe detailed geographical location usually associated with an IP address.\n\nrecommended"]
29087 #[serde(rename = "location")]
29088 #[serde(skip_serializing_if = "Option::is_none")]
29089 pub location: Option<Box<Location>>,
29090 #[doc = "Model\n\nThe model name of the aircraft or unmanned system.\n\noptional"]
29091 #[serde(rename = "model")]
29092 #[serde(skip_serializing_if = "Option::is_none")]
29093 pub model: Option<String>,
29094 #[doc = "Name\n\nThe name of the unmanned system as reported by tracking or sensing hardware.\n\noptional"]
29095 #[serde(rename = "name")]
29096 #[serde(skip_serializing_if = "Option::is_none")]
29097 pub name: Option<String>,
29098 #[doc = "Serial Number\n\nThe serial number of the unmanned system. This is expressed in <code>CTA-2063-A</code> format.\n\nrecommended"]
29099 #[serde(rename = "serial_number")]
29100 #[serde(skip_serializing_if = "Option::is_none")]
29101 pub serial_number: Option<String>,
29102 #[doc = "Speed\n\nGround speed of flight. This value is provided in meters per second with a minimum resolution of 0.25 m/s. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: 255 m/s</code>.\n\noptional"]
29103 #[serde(rename = "speed")]
29104 #[serde(skip_serializing_if = "Option::is_none")]
29105 pub speed: Option<String>,
29106 #[doc = "Speed Accuracy\n\nProvides quality/containment on horizontal ground speed. Measured in meters/second.\n\noptional"]
29107 #[serde(rename = "speed_accuracy")]
29108 #[serde(skip_serializing_if = "Option::is_none")]
29109 pub speed_accuracy: Option<String>,
29110 #[doc = "Track Direction\n\nDirection of flight expressed as a “True North-based” ground track angle. This value is provided in clockwise degrees with a minimum resolution of 1 degree. If aircraft is not moving horizontally, use the “Unknown” value\n\noptional"]
29111 #[serde(rename = "track_direction")]
29112 #[serde(skip_serializing_if = "Option::is_none")]
29113 pub track_direction: Option<String>,
29114 #[doc = "Type\n\nThe type of the UAS. For example, Helicopter, Gyroplane, Rocket, etc.\n\noptional"]
29115 #[serde(rename = "type")]
29116 #[serde(skip_serializing_if = "Option::is_none")]
29117 pub r#type: Option<String>,
29118 #[doc = "Type ID\n\nThe UAS type identifier.\n\nrecommended"]
29119 #[serde(rename = "type_id")]
29120 #[serde(skip_serializing_if = "Option::is_none")]
29121 pub type_id: Option<i64>,
29122 #[doc = "UAS ID\n\nThe primary identification identifier for an unmanned system. This can be a Serial Number (in <code>CTA-2063-A</code> format, the Registration ID (provided by the <code>CAA</code>, a UTM, or a unique Session ID.\n\nrecommended"]
29123 #[serde(rename = "uid")]
29124 #[serde(skip_serializing_if = "Option::is_none")]
29125 pub uid: Option<String>,
29126 #[doc = "UAS Alternate ID\n\nA secondary identification identifier for an unmanned system. This can be a Serial Number (in <code>CTA-2063-A</code> format, the Registration ID (provided by the <code>CAA</code>, a UTM, or a unique Session ID.\n\nrecommended"]
29127 #[serde(rename = "uid_alt")]
29128 #[serde(skip_serializing_if = "Option::is_none")]
29129 pub uid_alt: Option<String>,
29130 #[doc = "UTM UUID\n\nThe Unmanned Aircraft System Traffic Management (UTM) provided universal unique ID (UUID) traceable to a non-obfuscated ID where this UTM UUID acts as a 'session id' to protect exposure of operationally sensitive information.\n\nrecommended"]
29131 #[serde(rename = "uuid")]
29132 #[serde(skip_serializing_if = "Option::is_none")]
29133 pub uuid: Option<String>,
29134 #[doc = "Vertical Speed\n\nVertical speed upward relative to the WGS-84 datum, measured in meters per second. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: 63 m/s</code>.\n\noptional"]
29135 #[serde(rename = "vertical_speed")]
29136 #[serde(skip_serializing_if = "Option::is_none")]
29137 pub vertical_speed: Option<String>,
29138}
29139#[doc = "Unmanned System Operating Area\n\nThe Unmanned System Operating Area object describes details about a precise area of operations for a UAS flight or mission.\n\n[] Category: | Name: unmanned_system_operating_area\n\n**Constraints:**\n* at_least_one: `[city`,`country`,`postal_code`,`region]`\n"]
29140#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29141#[serde(default)]
29142#[non_exhaustive]
29143pub struct UnmannedSystemOperatingArea {
29144 #[doc = "Aerial Height\n\nExpressed as either height above takeoff location or height above ground level (AGL) for a UAS current location. This value is provided in meters and must have a minimum resolution of 1 m. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
29145 #[serde(rename = "aerial_height")]
29146 #[serde(skip_serializing_if = "Option::is_none")]
29147 pub aerial_height: Option<String>,
29148 #[doc = "Altitude Ceiling\n\nMaximum altitude (WGS-84 HAE) for a group or an Intent-Based Network Participant. Measured in meters. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
29149 #[serde(rename = "altitude_ceiling")]
29150 #[serde(skip_serializing_if = "Option::is_none")]
29151 pub altitude_ceiling: Option<String>,
29152 #[doc = "Altitude Floor\n\nMinimum altitude (WGS-84 HAE) for a group or an Intent-Based Network Participant. Measured in meters. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
29153 #[serde(rename = "altitude_floor")]
29154 #[serde(skip_serializing_if = "Option::is_none")]
29155 pub altitude_floor: Option<String>,
29156 #[doc = "City\n\nThe name of the city.\n\nrecommended"]
29157 #[serde(rename = "city")]
29158 #[serde(skip_serializing_if = "Option::is_none")]
29159 pub city: Option<String>,
29160 #[doc = "Continent\n\nThe name of the continent.\n\nrecommended"]
29161 #[serde(rename = "continent")]
29162 #[serde(skip_serializing_if = "Option::is_none")]
29163 pub continent: Option<String>,
29164 #[doc = "Coordinates\n\nA two-element array, containing a longitude/latitude pair. The format conforms with <a target='_blank' href='https://geojson.org'>GeoJSON</a>. For example: <code>[-73.983, 40.719]</code>.\n\noptional"]
29165 #[serde(rename = "coordinates")]
29166 #[serde(skip_serializing_if = "Option::is_none")]
29167 pub coordinates: Option<Vec<f64>>,
29168 #[doc = "Count\n\nIndicates the number of UAS in the operating area.\n\nrecommended"]
29169 #[serde(rename = "count")]
29170 #[serde(skip_serializing_if = "Option::is_none")]
29171 pub count: Option<i64>,
29172 #[doc = "Country\n\nThe ISO 3166-1 Alpha-2 country code.<p><b>Note:</b> The two letter country code should be capitalized. For example: <code>US</code> or <code>CA</code>.</p>\n\nrecommended"]
29173 #[serde(rename = "country")]
29174 #[serde(skip_serializing_if = "Option::is_none")]
29175 pub country: Option<String>,
29176 #[doc = "Description\n\nThe description of the geographical location.\n\noptional"]
29177 #[serde(rename = "desc")]
29178 #[serde(skip_serializing_if = "Option::is_none")]
29179 pub desc: Option<String>,
29180 #[doc = "End Time\n\nThe date and time at which a group or an Intent-Based Network Participant operation ends. (This field is only applicable to Network Remote ID.)\n\noptional"]
29181 #[serde(rename = "end_time")]
29182 #[serde(skip_serializing_if = "Option::is_none")]
29183 pub end_time: Option<i64>,
29184 #[doc = "End Time\n\nThe date and time at which a group or an Intent-Based Network Participant operation ends. (This field is only applicable to Network Remote ID.)\n\noptional"]
29185 #[serde(rename = "end_time_dt")]
29186 #[serde(skip_serializing_if = "Option::is_none")]
29187 pub end_time_dt: Option<String>,
29188 #[doc = "Geodetic Altitude\n\nThe aircraft distance above or below the ellipsoid as measured along a line that passes through the aircraft and is normal to the surface of the WGS-84 ellipsoid. This value is provided in meters and must have a minimum resolution of 1 m. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
29189 #[serde(rename = "geodetic_altitude")]
29190 #[serde(skip_serializing_if = "Option::is_none")]
29191 pub geodetic_altitude: Option<String>,
29192 #[doc = "Geodetic Vertical Accuracy\n\nProvides quality/containment on geodetic altitude. This is based on ADS-B Geodetic Vertical Accuracy (GVA). Measured in meters.\n\noptional"]
29193 #[serde(rename = "geodetic_vertical_accuracy")]
29194 #[serde(skip_serializing_if = "Option::is_none")]
29195 pub geodetic_vertical_accuracy: Option<String>,
29196 #[doc = "Geohash\n\n<p>Geohash of the geo-coordinates (latitude and longitude).</p><a target='_blank' href='https://en.wikipedia.org/wiki/Geohash'>Geohashing</a> is a geocoding system used to encode geographic coordinates in decimal degrees, to a single string.\n\noptional"]
29197 #[serde(rename = "geohash")]
29198 #[serde(skip_serializing_if = "Option::is_none")]
29199 pub geohash: Option<String>,
29200 #[doc = "Horizontal Accuracy\n\nProvides quality/containment on horizontal position. This is based on ADS-B NACp. Measured in meters.\n\noptional"]
29201 #[serde(rename = "horizontal_accuracy")]
29202 #[serde(skip_serializing_if = "Option::is_none")]
29203 pub horizontal_accuracy: Option<String>,
29204 #[doc = "On Premises\n\nThe indication of whether the location is on premises.\n\noptional"]
29205 #[serde(rename = "is_on_premises")]
29206 #[serde(skip_serializing_if = "Option::is_none")]
29207 pub is_on_premises: Option<bool>,
29208 #[doc = "ISP Name\n\nThe name of the Internet Service Provider (ISP).\n\noptional"]
29209 #[serde(rename = "isp")]
29210 #[serde(skip_serializing_if = "Option::is_none")]
29211 pub isp: Option<String>,
29212 #[doc = "Latitude\n\nThe geographical Latitude coordinate represented in Decimal Degrees (DD). For example: <code>42.361145</code>.\n\noptional"]
29213 #[serde(rename = "lat")]
29214 #[serde(skip_serializing_if = "Option::is_none")]
29215 pub lat: Option<f64>,
29216 #[doc = "Operating Polygon\n\nA list of Position Location Information (PLI) (latitude/longitude pairs) defining the area where a group or Intent-Based Network Participant operation is taking place. (This field is only applicable to Network Remote ID.)\n\nrecommended"]
29217 #[serde(rename = "locations")]
29218 #[serde(skip_serializing_if = "Option::is_none")]
29219 pub locations: Option<Vec<Location>>,
29220 #[doc = "Longitude\n\nThe geographical Longitude coordinate represented in Decimal Degrees (DD). For example: <code>-71.057083</code>.\n\noptional"]
29221 #[serde(rename = "long")]
29222 #[serde(skip_serializing_if = "Option::is_none")]
29223 pub long: Option<f64>,
29224 #[doc = "Postal Code\n\nThe postal code of the location.\n\noptional"]
29225 #[serde(rename = "postal_code")]
29226 #[serde(skip_serializing_if = "Option::is_none")]
29227 pub postal_code: Option<String>,
29228 #[doc = "Pressure Altitude\n\nThe uncorrected barometric pressure altitude (based on reference standard 29.92 inHg, 1013.25 mb) provides a reference for algorithms that utilize 'altitude deltas' between aircraft. This value is provided in meters and must have a minimum resolution of 1 m.. Special Values: <code>Invalid</code>, <code>No Value</code>, or <code>Unknown: -1000 m</code>.\n\noptional"]
29229 #[serde(rename = "pressure_altitude")]
29230 #[serde(skip_serializing_if = "Option::is_none")]
29231 pub pressure_altitude: Option<String>,
29232 #[doc = "Provider\n\nThe provider of the geographical location data.\n\noptional"]
29233 #[serde(rename = "provider")]
29234 #[serde(skip_serializing_if = "Option::is_none")]
29235 pub provider: Option<String>,
29236 #[doc = "Operating Area Radius\n\nFarthest horizontal distance from the reported location at which any UA in a group may be located (meters). Also allows defining the area where an Intent-Based Network Participant operation is taking place. Default: 0 m.\n\noptional"]
29237 #[serde(rename = "radius")]
29238 #[serde(skip_serializing_if = "Option::is_none")]
29239 pub radius: Option<String>,
29240 #[doc = "Region\n\nThe alphanumeric code that identifies the principal subdivision (e.g. province or state) of the country. For example, 'CH-VD' for the Canton of Vaud, Switzerland\n\noptional"]
29241 #[serde(rename = "region")]
29242 #[serde(skip_serializing_if = "Option::is_none")]
29243 pub region: Option<String>,
29244 #[doc = "Start Time\n\nThe date and time at which a group or an Intent-Based Network Participant operation starts. (This field is only applicable to Network Remote ID.)\n\noptional"]
29245 #[serde(rename = "start_time")]
29246 #[serde(skip_serializing_if = "Option::is_none")]
29247 pub start_time: Option<i64>,
29248 #[doc = "Start Time\n\nThe date and time at which a group or an Intent-Based Network Participant operation starts. (This field is only applicable to Network Remote ID.)\n\noptional"]
29249 #[serde(rename = "start_time_dt")]
29250 #[serde(skip_serializing_if = "Option::is_none")]
29251 pub start_time_dt: Option<String>,
29252 #[doc = "Type\n\nThe type of operating area. For example, <code>Takeoff Location</code>, <code>Fixed Location</code>, <code>Dynamic Location</code>.\n\noptional"]
29253 #[serde(rename = "type")]
29254 #[serde(skip_serializing_if = "Option::is_none")]
29255 pub r#type: Option<String>,
29256 #[doc = "Type ID\n\nThe operating area type identifier.\n\nrecommended"]
29257 #[serde(rename = "type_id")]
29258 #[serde(skip_serializing_if = "Option::is_none")]
29259 pub type_id: Option<i64>,
29260}
29261#[doc = "Uniform Resource Locator\n\nThe Uniform Resource Locator (URL) object describes the characteristics of a URL.\n\n[] Category: | Name: url\n\n**Constraints:**\n* at_least_one: `[url_string`,`path]`\n"]
29262#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29263#[serde(default)]
29264#[non_exhaustive]
29265pub struct Url {
29266 #[doc = "Website Categorization\n\nThe Website categorization names, as defined by <code>category_ids</code> enum values.\n\noptional"]
29267 #[serde(rename = "categories")]
29268 #[serde(skip_serializing_if = "Option::is_none")]
29269 pub categories: Option<Vec<String>>,
29270 #[doc = "Website Categorization IDs\n\nThe Website categorization identifiers.\n\nrecommended"]
29271 #[serde(rename = "category_ids")]
29272 #[serde(skip_serializing_if = "Option::is_none")]
29273 pub category_ids: Option<Vec<i64>>,
29274 #[doc = "Domain\n\nThe domain portion of the URL. For example: <code>example.com</code> in <code>https://sub.example.com</code>.\n\noptional"]
29275 #[serde(rename = "domain")]
29276 #[serde(skip_serializing_if = "Option::is_none")]
29277 pub domain: Option<String>,
29278 #[doc = "Hostname\n\nThe URL host as extracted from the URL. For example: <code>www.example.com</code> from <code>www.example.com/download/trouble</code>.\n\nrecommended"]
29279 #[serde(rename = "hostname")]
29280 #[serde(skip_serializing_if = "Option::is_none")]
29281 pub hostname: Option<String>,
29282 #[doc = "Path\n\nThe URL path as extracted from the URL. For example: <code>/download/trouble</code> from <code>www.example.com/download/trouble</code>.\n\nrecommended"]
29283 #[serde(rename = "path")]
29284 #[serde(skip_serializing_if = "Option::is_none")]
29285 pub path: Option<String>,
29286 #[doc = "Port\n\nThe URL port. For example: <code>80</code>.\n\nrecommended"]
29287 #[serde(rename = "port")]
29288 #[serde(skip_serializing_if = "Option::is_none")]
29289 pub port: Option<i64>,
29290 #[doc = "HTTP Query String\n\nThe query portion of the URL. For example: the query portion of the URL <code>http://www.example.com/search?q=bad&sort=date</code> is <code>q=bad&sort=date</code>.\n\nrecommended"]
29291 #[serde(rename = "query_string")]
29292 #[serde(skip_serializing_if = "Option::is_none")]
29293 pub query_string: Option<String>,
29294 #[doc = "Resource Type\n\nThe context in which a resource was retrieved in a web request.\n\noptional"]
29295 #[serde(rename = "resource_type")]
29296 #[serde(skip_serializing_if = "Option::is_none")]
29297 pub resource_type: Option<String>,
29298 #[doc = "Scheme\n\nThe scheme portion of the URL. For example: <code>http</code>, <code>https</code>, <code>ftp</code>, or <code>sftp</code>.\n\nrecommended"]
29299 #[serde(rename = "scheme")]
29300 #[serde(skip_serializing_if = "Option::is_none")]
29301 pub scheme: Option<String>,
29302 #[doc = "Subdomain\n\nThe subdomain portion of the URL. For example: <code>sub</code> in <code>https://sub.example.com</code> or <code>sub2.sub1</code> in <code>https://sub2.sub1.example.com</code>.\n\noptional"]
29303 #[serde(rename = "subdomain")]
29304 #[serde(skip_serializing_if = "Option::is_none")]
29305 pub subdomain: Option<String>,
29306 #[doc = "URL String\n\nThe URL string. See RFC 1738. For example: <code>http://www.example.com/download/trouble.exe</code>. Note: The URL path should not populate the URL string.\n\nrecommended"]
29307 #[serde(rename = "url_string")]
29308 #[serde(skip_serializing_if = "Option::is_none")]
29309 pub url_string: Option<String>,
29310}
29311#[doc = "User\n\nThe User object describes the characteristics of a user/person or a security principal.\n\n[] Category: | Name: user\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29312#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29313#[serde(default)]
29314#[non_exhaustive]
29315pub struct User {
29316 #[doc = "Account\n\nThe user's account or the account associated with the user.\n\noptional"]
29317 #[serde(rename = "account")]
29318 #[serde(skip_serializing_if = "Option::is_none")]
29319 pub account: Option<Box<Account>>,
29320 #[doc = "User Credential ID\n\nThe unique identifier of the user's credential. For example, AWS Access Key ID.\n\noptional"]
29321 #[serde(rename = "credential_uid")]
29322 #[serde(skip_serializing_if = "Option::is_none")]
29323 pub credential_uid: Option<String>,
29324 #[doc = "Display Name\n\nThe display name of the user, as reported by the product.\n\noptional"]
29325 #[serde(rename = "display_name")]
29326 #[serde(skip_serializing_if = "Option::is_none")]
29327 pub display_name: Option<String>,
29328 #[doc = "Domain\n\nThe domain where the user is defined. For example: the LDAP or Active Directory domain.\n\noptional"]
29329 #[serde(rename = "domain")]
29330 #[serde(skip_serializing_if = "Option::is_none")]
29331 pub domain: Option<String>,
29332 #[doc = "Email Address\n\nThe user's primary email address.\n\noptional"]
29333 #[serde(rename = "email_addr")]
29334 #[serde(skip_serializing_if = "Option::is_none")]
29335 pub email_addr: Option<String>,
29336 #[doc = "Forwarding Address\n\nThe user's forwarding email address.\n\noptional"]
29337 #[serde(rename = "forward_addr")]
29338 #[serde(skip_serializing_if = "Option::is_none")]
29339 pub forward_addr: Option<String>,
29340 #[doc = "Full Name\n\nThe full name of the user, as reported by the product.\n\noptional"]
29341 #[serde(rename = "full_name")]
29342 #[serde(skip_serializing_if = "Option::is_none")]
29343 pub full_name: Option<String>,
29344 #[doc = "Groups\n\nThe administrative groups to which the user belongs.\n\noptional"]
29345 #[serde(rename = "groups")]
29346 #[serde(skip_serializing_if = "Option::is_none")]
29347 pub groups: Option<Vec<Group>>,
29348 #[doc = "MFA Assigned\n\nThe user has a multi-factor or secondary-factor device assigned.\n\nrecommended"]
29349 #[serde(rename = "has_mfa")]
29350 #[serde(skip_serializing_if = "Option::is_none")]
29351 pub has_mfa: Option<bool>,
29352 #[doc = "LDAP Person\n\nThe additional LDAP attributes that describe a person.\n\noptional"]
29353 #[serde(rename = "ldap_person")]
29354 #[serde(skip_serializing_if = "Option::is_none")]
29355 pub ldap_person: Option<Box<LdapPerson>>,
29356 #[doc = "Name\n\nThe username. For example, <code>janedoe1</code>.\n\nrecommended"]
29357 #[serde(rename = "name")]
29358 #[serde(skip_serializing_if = "Option::is_none")]
29359 pub name: Option<String>,
29360 #[doc = "Organization\n\nOrganization and org unit related to the user.\n\noptional"]
29361 #[serde(rename = "org")]
29362 #[serde(skip_serializing_if = "Option::is_none")]
29363 pub org: Option<Box<Organization>>,
29364 #[doc = "Telephone Number\n\nThe telephone number of the user.\n\noptional"]
29365 #[serde(rename = "phone_number")]
29366 #[serde(skip_serializing_if = "Option::is_none")]
29367 pub phone_number: Option<String>,
29368 #[doc = "Programmatic Credentials\n\nDetails about the programmatic credential (API keys, access tokens, certificates, etc) associated to the user.\n\noptional"]
29369 #[serde(rename = "programmatic_credentials")]
29370 #[serde(skip_serializing_if = "Option::is_none")]
29371 pub programmatic_credentials: Option<Vec<ProgrammaticCredential>>,
29372 #[doc = "Risk Level\n\nThe risk level, normalized to the caption of the risk_level_id value.\n\noptional"]
29373 #[serde(rename = "risk_level")]
29374 #[serde(skip_serializing_if = "Option::is_none")]
29375 pub risk_level: Option<String>,
29376 #[doc = "Risk Level ID\n\nThe normalized risk level id.\n\noptional"]
29377 #[serde(rename = "risk_level_id")]
29378 #[serde(skip_serializing_if = "Option::is_none")]
29379 pub risk_level_id: Option<i64>,
29380 #[doc = "Risk Score\n\nThe risk score as reported by the event source.\n\noptional"]
29381 #[serde(rename = "risk_score")]
29382 #[serde(skip_serializing_if = "Option::is_none")]
29383 pub risk_score: Option<i64>,
29384 #[doc = "Type\n\nThe type of the user. For example, System, AWS IAM User, etc.\n\noptional"]
29385 #[serde(rename = "type")]
29386 #[serde(skip_serializing_if = "Option::is_none")]
29387 pub r#type: Option<String>,
29388 #[doc = "Type ID\n\nThe account type identifier.\n\nrecommended"]
29389 #[serde(rename = "type_id")]
29390 #[serde(skip_serializing_if = "Option::is_none")]
29391 pub type_id: Option<i64>,
29392 #[doc = "Unique ID\n\nThe unique user identifier. For example, the Windows user SID, ActiveDirectory DN or AWS user ARN.\n\nrecommended"]
29393 #[serde(rename = "uid")]
29394 #[serde(skip_serializing_if = "Option::is_none")]
29395 pub uid: Option<String>,
29396 #[doc = "Alternate ID\n\nThe alternate user identifier. For example, the Active Directory user GUID or AWS user Principal ID.\n\noptional"]
29397 #[serde(rename = "uid_alt")]
29398 #[serde(skip_serializing_if = "Option::is_none")]
29399 pub uid_alt: Option<String>,
29400}
29401#[doc = "Vendor Attributes\n\nThe Vendor Attributes object can be used to represent values of attributes populated by the Vendor/Finding Provider. It can help distinguish between the vendor-provided values and consumer-updated values, of key attributes like <code>severity_id</code>.<br>The original finding producer should not populate this object. It should be populated by consuming systems that support data mutability.\n\n[] Category: | Name: vendor_attributes"]
29402#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29403#[serde(default)]
29404#[non_exhaustive]
29405pub struct VendorAttributes {
29406 #[doc = "Severity\n\nThe finding severity, as reported by the Vendor (Finding Provider). The value should be normalized to the caption of the <code>severity_id</code> value. In the case of 'Other', it is defined by the source.\n\noptional"]
29407 #[serde(rename = "severity")]
29408 #[serde(skip_serializing_if = "Option::is_none")]
29409 pub severity: Option<String>,
29410 #[doc = "Severity ID\n\nThe finding severity ID, as reported by the Vendor (Finding Provider).\n\noptional"]
29411 #[serde(rename = "severity_id")]
29412 #[serde(skip_serializing_if = "Option::is_none")]
29413 pub severity_id: Option<i64>,
29414}
29415#[doc = "Vulnerability Details\n\nThe vulnerability is an unintended characteristic of a computing component or system configuration that multiplies the risk of an adverse event or a loss occurring either due to accidental exposure, deliberate attack, or conflict with new system components.\n\n[] Category: | Name: vulnerability\n\n**Constraints:**\n* just_one: `[advisory`,`cve`,`cwe]`\n"]
29416#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29417#[serde(default)]
29418#[non_exhaustive]
29419pub struct Vulnerability {
29420 #[doc = "Security Advisory\n\nDetail about the security advisory, that is used to publicly disclose cybersecurity vulnerabilities by a vendor.\n\noptional"]
29421 #[serde(rename = "advisory")]
29422 #[serde(skip_serializing_if = "Option::is_none")]
29423 pub advisory: Option<Box<Advisory>>,
29424 #[doc = "Affected Code\n\nList of Affected Code objects that describe details about code blocks identified as vulnerable.\n\noptional"]
29425 #[serde(rename = "affected_code")]
29426 #[serde(skip_serializing_if = "Option::is_none")]
29427 pub affected_code: Option<Vec<AffectedCode>>,
29428 #[doc = "Affected Software Packages\n\nList of software packages identified as affected by a vulnerability/vulnerabilities.\n\noptional"]
29429 #[serde(rename = "affected_packages")]
29430 #[serde(skip_serializing_if = "Option::is_none")]
29431 pub affected_packages: Option<Vec<AffectedPackage>>,
29432 #[doc = "Category\n\nThe category of a vulnerability or weakness, as reported by the source tool, such as <code>Container Security</code> or <code>Open Source Security</code>.\n\noptional"]
29433 #[serde(rename = "category")]
29434 #[serde(skip_serializing_if = "Option::is_none")]
29435 pub category: Option<String>,
29436 #[doc = "CVE\n\nDescribes the Common Vulnerabilities and Exposures <a target='_blank' href='https://cve.mitre.org/'>(CVE)</a> details related to the vulnerability.\n\nrecommended"]
29437 #[serde(rename = "cve")]
29438 #[serde(skip_serializing_if = "Option::is_none")]
29439 pub cve: Option<Box<Cve>>,
29440 #[doc = "CWE\n\nDescribes the Common Weakness Enumeration <a target='_blank' href='https://cwe.mitre.org/'>(CWE)</a> details related to the vulnerability.\n\nrecommended"]
29441 #[serde(rename = "cwe")]
29442 #[serde(skip_serializing_if = "Option::is_none")]
29443 pub cwe: Option<Box<Cwe>>,
29444 #[doc = "Dependency Chain\n\nInformation about the chain of dependencies related to the issue as reported by an Application Security or Vulnerability Management tool. E.g., <code>serverless-offline -> @serverless/utils -> memoizee -> es5-ext</code>.\n\noptional"]
29445 #[serde(rename = "dependency_chain")]
29446 #[serde(skip_serializing_if = "Option::is_none")]
29447 pub dependency_chain: Option<String>,
29448 #[doc = "Description\n\nThe description of the vulnerability.\n\noptional"]
29449 #[serde(rename = "desc")]
29450 #[serde(skip_serializing_if = "Option::is_none")]
29451 pub desc: Option<String>,
29452 #[doc = "Exploit Last Seen Time\n\nThe time when the exploit was most recently observed.\n\noptional"]
29453 #[serde(rename = "exploit_last_seen_time")]
29454 #[serde(skip_serializing_if = "Option::is_none")]
29455 pub exploit_last_seen_time: Option<i64>,
29456 #[doc = "Exploit Last Seen Time\n\nThe time when the exploit was most recently observed.\n\noptional"]
29457 #[serde(rename = "exploit_last_seen_time_dt")]
29458 #[serde(skip_serializing_if = "Option::is_none")]
29459 pub exploit_last_seen_time_dt: Option<String>,
29460 #[doc = "Exploit URL\n\nThe URL of the exploit code or Proof-of-Concept (PoC).\n\noptional"]
29461 #[serde(rename = "exploit_ref_url")]
29462 #[serde(skip_serializing_if = "Option::is_none")]
29463 pub exploit_ref_url: Option<String>,
29464 #[doc = "Exploit Requirement\n\nThe requirement description related to any constraints around exploit execution.\n\noptional"]
29465 #[serde(rename = "exploit_requirement")]
29466 #[serde(skip_serializing_if = "Option::is_none")]
29467 pub exploit_requirement: Option<String>,
29468 #[doc = "Exploit Type\n\nThe categorization or type of Exploit. E.g., <code>Network</code> or <code>Physical</code>.\n\noptional"]
29469 #[serde(rename = "exploit_type")]
29470 #[serde(skip_serializing_if = "Option::is_none")]
29471 pub exploit_type: Option<String>,
29472 #[doc = "First Seen\n\nThe time when the vulnerability was first observed.\n\noptional"]
29473 #[serde(rename = "first_seen_time")]
29474 #[serde(skip_serializing_if = "Option::is_none")]
29475 pub first_seen_time: Option<i64>,
29476 #[doc = "First Seen\n\nThe time when the vulnerability was first observed.\n\noptional"]
29477 #[serde(rename = "first_seen_time_dt")]
29478 #[serde(skip_serializing_if = "Option::is_none")]
29479 pub first_seen_time_dt: Option<String>,
29480 #[doc = "Fix Availability\n\nIndicates if a fix is available for the reported vulnerability.\n\noptional"]
29481 #[serde(rename = "fix_available")]
29482 #[serde(skip_serializing_if = "Option::is_none")]
29483 pub fix_available: Option<bool>,
29484 #[doc = "Fix Coverage\n\nThe fix coverage, normalized to the caption of the <code>fix_coverage_id</code> value.\n\noptional"]
29485 #[serde(rename = "fix_coverage")]
29486 #[serde(skip_serializing_if = "Option::is_none")]
29487 pub fix_coverage: Option<String>,
29488 #[doc = "Fix Coverage ID\n\nThe normalized identifier for fix coverage, applicable to this vulnerability. Typically useful, when there are multiple affected packages but only a subset have available fixes.\n\noptional"]
29489 #[serde(rename = "fix_coverage_id")]
29490 #[serde(skip_serializing_if = "Option::is_none")]
29491 pub fix_coverage_id: Option<i64>,
29492 #[doc = "Exploit Availability\n\nIndicates if an exploit or a PoC (proof-of-concept) is available for the reported vulnerability.\n\noptional"]
29493 #[serde(rename = "is_exploit_available")]
29494 #[serde(skip_serializing_if = "Option::is_none")]
29495 pub is_exploit_available: Option<bool>,
29496 #[doc = "Fix Availability\n\nIndicates if a fix is available for the reported vulnerability.\n\noptional"]
29497 #[serde(rename = "is_fix_available")]
29498 #[serde(skip_serializing_if = "Option::is_none")]
29499 pub is_fix_available: Option<bool>,
29500 #[doc = "Knowledgebase Articles\n\nA list of KB articles or patches related to an endpoint. A KB Article contains metadata that describes the patch or an update.\n\noptional"]
29501 #[serde(rename = "kb_article_list")]
29502 #[serde(skip_serializing_if = "Option::is_none")]
29503 pub kb_article_list: Option<Vec<KbArticle>>,
29504 #[doc = "Knowledgebase Articles\n\nThe KB article/s related to the entity. A KB Article contains metadata that describes the patch or an update.\n\noptional"]
29505 #[serde(rename = "kb_articles")]
29506 #[serde(skip_serializing_if = "Option::is_none")]
29507 pub kb_articles: Option<Vec<String>>,
29508 #[doc = "Last Seen\n\nThe time when the vulnerability was most recently observed.\n\noptional"]
29509 #[serde(rename = "last_seen_time")]
29510 #[serde(skip_serializing_if = "Option::is_none")]
29511 pub last_seen_time: Option<i64>,
29512 #[doc = "Last Seen\n\nThe time when the vulnerability was most recently observed.\n\noptional"]
29513 #[serde(rename = "last_seen_time_dt")]
29514 #[serde(skip_serializing_if = "Option::is_none")]
29515 pub last_seen_time_dt: Option<String>,
29516 #[doc = "Software Packages\n\nList of vulnerable packages as identified by the security product\n\noptional"]
29517 #[serde(rename = "packages")]
29518 #[serde(skip_serializing_if = "Option::is_none")]
29519 pub packages: Option<Vec<Package>>,
29520 #[doc = "References\n\nA list of reference URLs with additional information about the vulnerability.\n\nrecommended"]
29521 #[serde(rename = "references")]
29522 #[serde(skip_serializing_if = "Option::is_none")]
29523 pub references: Option<Vec<String>>,
29524 #[doc = "Related Vulnerability IDs\n\nList of vulnerability IDs (e.g. CVE ID) that are related to this vulnerability.\n\noptional"]
29525 #[serde(rename = "related_vulnerabilities")]
29526 #[serde(skip_serializing_if = "Option::is_none")]
29527 pub related_vulnerabilities: Option<Vec<String>>,
29528 #[doc = "Remediation Guidance\n\nThe remediation recommendations on how to mitigate the identified vulnerability.\n\noptional"]
29529 #[serde(rename = "remediation")]
29530 #[serde(skip_serializing_if = "Option::is_none")]
29531 pub remediation: Option<Box<Remediation>>,
29532 #[doc = "Severity\n\nThe vendor assigned severity of the vulnerability.\n\noptional"]
29533 #[serde(rename = "severity")]
29534 #[serde(skip_serializing_if = "Option::is_none")]
29535 pub severity: Option<String>,
29536 #[doc = "Title\n\nA title or a brief phrase summarizing the discovered vulnerability.\n\noptional"]
29537 #[serde(rename = "title")]
29538 #[serde(skip_serializing_if = "Option::is_none")]
29539 pub title: Option<String>,
29540 #[doc = "Vendor Name\n\nThe name of the vendor that identified the vulnerability.\n\noptional"]
29541 #[serde(rename = "vendor_name")]
29542 #[serde(skip_serializing_if = "Option::is_none")]
29543 pub vendor_name: Option<String>,
29544}
29545#[doc = "Web Resource\n\nThe Web Resource object describes characteristics of a web resource that was affected by the activity/event.\n\n[] Category: | Name: web_resource\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29546#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29547#[serde(default)]
29548#[non_exhaustive]
29549pub struct WebResource {
29550 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
29551 #[serde(rename = "created_time")]
29552 #[serde(skip_serializing_if = "Option::is_none")]
29553 pub created_time: Option<i64>,
29554 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
29555 #[serde(rename = "created_time_dt")]
29556 #[serde(skip_serializing_if = "Option::is_none")]
29557 pub created_time_dt: Option<String>,
29558 #[doc = "Data\n\nDetails of the web resource, e.g, <code>file</code> details, <code>search</code> results or application-defined resource.\n\noptional"]
29559 #[serde(rename = "data")]
29560 #[serde(skip_serializing_if = "Option::is_none")]
29561 pub data: Option<serde_json::Value>,
29562 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
29563 #[serde(rename = "data_classification")]
29564 #[serde(skip_serializing_if = "Option::is_none")]
29565 pub data_classification: Option<Box<DataClassification>>,
29566 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
29567 #[serde(rename = "data_classifications")]
29568 #[serde(skip_serializing_if = "Option::is_none")]
29569 pub data_classifications: Option<Vec<DataClassification>>,
29570 #[doc = "Description\n\nDescription of the web resource.\n\noptional"]
29571 #[serde(rename = "desc")]
29572 #[serde(skip_serializing_if = "Option::is_none")]
29573 pub desc: Option<String>,
29574 #[doc = "Labels\n\nThe list of labels associated to the resource.\n\noptional"]
29575 #[serde(rename = "labels")]
29576 #[serde(skip_serializing_if = "Option::is_none")]
29577 pub labels: Option<Vec<String>>,
29578 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
29579 #[serde(rename = "modified_time")]
29580 #[serde(skip_serializing_if = "Option::is_none")]
29581 pub modified_time: Option<i64>,
29582 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
29583 #[serde(rename = "modified_time_dt")]
29584 #[serde(skip_serializing_if = "Option::is_none")]
29585 pub modified_time_dt: Option<String>,
29586 #[doc = "Name\n\nThe name of the web resource.\n\nrecommended"]
29587 #[serde(rename = "name")]
29588 #[serde(skip_serializing_if = "Option::is_none")]
29589 pub name: Option<String>,
29590 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the resource.\n\noptional"]
29591 #[serde(rename = "tags")]
29592 #[serde(skip_serializing_if = "Option::is_none")]
29593 pub tags: Option<Vec<KeyValueObject>>,
29594 #[doc = "Type\n\nThe web resource type as defined by the event source.\n\noptional"]
29595 #[serde(rename = "type")]
29596 #[serde(skip_serializing_if = "Option::is_none")]
29597 pub r#type: Option<String>,
29598 #[doc = "Unique ID\n\nThe unique identifier of the web resource.\n\nrecommended"]
29599 #[serde(rename = "uid")]
29600 #[serde(skip_serializing_if = "Option::is_none")]
29601 pub uid: Option<String>,
29602 #[doc = "Alternate ID\n\nThe alternative unique identifier of the resource.\n\noptional"]
29603 #[serde(rename = "uid_alt")]
29604 #[serde(skip_serializing_if = "Option::is_none")]
29605 pub uid_alt: Option<String>,
29606 #[doc = "URL String\n\nThe URL pointing towards the source of the web resource.\n\nrecommended"]
29607 #[serde(rename = "url_string")]
29608 #[serde(skip_serializing_if = "Option::is_none")]
29609 pub url_string: Option<String>,
29610}
29611#[doc = "WHOIS\n\nThe resources of a WHOIS record for a given domain. This can include domain names, IP address blocks, autonomous system information, and/or contact and registration information for a domain.\n\n[] Category: | Name: whois"]
29612#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29613#[serde(default)]
29614#[non_exhaustive]
29615pub struct Whois {
29616 #[doc = "Autonomous System\n\nThe autonomous system information associated with a domain.\n\noptional"]
29617 #[serde(rename = "autonomous_system")]
29618 #[serde(skip_serializing_if = "Option::is_none")]
29619 pub autonomous_system: Option<Box<AutonomousSystem>>,
29620 #[doc = "Registered At\n\nWhen the domain was registered or WHOIS entry was created.\n\nrecommended"]
29621 #[serde(rename = "created_time")]
29622 #[serde(skip_serializing_if = "Option::is_none")]
29623 pub created_time: Option<i64>,
29624 #[doc = "Registered At\n\nWhen the domain was registered or WHOIS entry was created.\n\noptional"]
29625 #[serde(rename = "created_time_dt")]
29626 #[serde(skip_serializing_if = "Option::is_none")]
29627 pub created_time_dt: Option<String>,
29628 #[doc = "DNSSEC Status\n\nThe normalized value of dnssec_status_id.\n\noptional"]
29629 #[serde(rename = "dnssec_status")]
29630 #[serde(skip_serializing_if = "Option::is_none")]
29631 pub dnssec_status: Option<String>,
29632 #[doc = "DNSSEC Status ID\n\nDescribes the normalized status of DNS Security Extensions (DNSSEC) for a domain.\n\nrecommended"]
29633 #[serde(rename = "dnssec_status_id")]
29634 #[serde(skip_serializing_if = "Option::is_none")]
29635 pub dnssec_status_id: Option<i64>,
29636 #[doc = "Domain\n\nThe domain name corresponding to the WHOIS record.\n\nrecommended"]
29637 #[serde(rename = "domain")]
29638 #[serde(skip_serializing_if = "Option::is_none")]
29639 pub domain: Option<String>,
29640 #[doc = "Domain Contacts\n\nAn array of <code>Domain Contact</code> objects.\n\nrecommended"]
29641 #[serde(rename = "domain_contacts")]
29642 #[serde(skip_serializing_if = "Option::is_none")]
29643 pub domain_contacts: Option<Vec<DomainContact>>,
29644 #[doc = "Registrar Abuse Email Address\n\nThe email address for the registrar's abuse contact\n\noptional"]
29645 #[serde(rename = "email_addr")]
29646 #[serde(skip_serializing_if = "Option::is_none")]
29647 pub email_addr: Option<String>,
29648 #[doc = "ISP Name\n\nThe name of the Internet Service Provider (ISP).\n\noptional"]
29649 #[serde(rename = "isp")]
29650 #[serde(skip_serializing_if = "Option::is_none")]
29651 pub isp: Option<String>,
29652 #[doc = "ISP Org\n\nThe organization name of the Internet Service Provider (ISP). This represents the parent organization or company that owns/operates the ISP. For example, Comcast Corporation would be the ISP org for Xfinity internet service. This attribute helps identify the ultimate provider when ISPs operate under different brand names.\n\noptional"]
29653 #[serde(rename = "isp_org")]
29654 #[serde(skip_serializing_if = "Option::is_none")]
29655 pub isp_org: Option<String>,
29656 #[doc = "Last Updated At\n\nWhen the WHOIS record was last updated or seen at.\n\nrecommended"]
29657 #[serde(rename = "last_seen_time")]
29658 #[serde(skip_serializing_if = "Option::is_none")]
29659 pub last_seen_time: Option<i64>,
29660 #[doc = "Last Updated At\n\nWhen the WHOIS record was last updated or seen at.\n\noptional"]
29661 #[serde(rename = "last_seen_time_dt")]
29662 #[serde(skip_serializing_if = "Option::is_none")]
29663 pub last_seen_time_dt: Option<String>,
29664 #[doc = "Name Servers\n\nA collection of name servers related to a domain registration or other record.\n\nrecommended"]
29665 #[serde(rename = "name_servers")]
29666 #[serde(skip_serializing_if = "Option::is_none")]
29667 pub name_servers: Option<Vec<String>>,
29668 #[doc = "Registrar Abuse Phone Number\n\nThe phone number for the registrar's abuse contact\n\noptional"]
29669 #[serde(rename = "phone_number")]
29670 #[serde(skip_serializing_if = "Option::is_none")]
29671 pub phone_number: Option<String>,
29672 #[doc = "Domain Registrar\n\nThe domain registrar.\n\nrecommended"]
29673 #[serde(rename = "registrar")]
29674 #[serde(skip_serializing_if = "Option::is_none")]
29675 pub registrar: Option<String>,
29676 #[doc = "Domain Status\n\nThe status of a domain and its ability to be transferred, e.g., <code>clientTransferProhibited</code>.\n\nrecommended"]
29677 #[serde(rename = "status")]
29678 #[serde(skip_serializing_if = "Option::is_none")]
29679 pub status: Option<String>,
29680 #[doc = "Subdomains\n\nAn array of subdomain strings. Can be used to collect several subdomains such as those from Domain Generation Algorithms (DGAs).\n\noptional"]
29681 #[serde(rename = "subdomains")]
29682 #[serde(skip_serializing_if = "Option::is_none")]
29683 pub subdomains: Option<Vec<String>>,
29684 #[doc = "Subnet Block\n\nThe IP address block (CIDR) associated with a domain.\n\noptional"]
29685 #[serde(rename = "subnet")]
29686 #[serde(skip_serializing_if = "Option::is_none")]
29687 pub subnet: Option<String>,
29688}
29689#[doc = "Registry Key\n\nThe registry key object describes a Windows registry key.\n\n[] Category: | Name: reg_key"]
29690#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29691#[serde(default)]
29692#[non_exhaustive]
29693pub struct WinRegKey {
29694 #[doc = "System\n\nThe indication of whether the object is part of the operating system.\n\noptional"]
29695 #[serde(rename = "is_system")]
29696 #[serde(skip_serializing_if = "Option::is_none")]
29697 pub is_system: Option<bool>,
29698 #[doc = "Modified Time\n\nThe time when the registry key was last modified.\n\noptional"]
29699 #[serde(rename = "modified_time")]
29700 #[serde(skip_serializing_if = "Option::is_none")]
29701 pub modified_time: Option<i64>,
29702 #[doc = "Modified Time\n\nThe time when the registry key was last modified.\n\noptional"]
29703 #[serde(rename = "modified_time_dt")]
29704 #[serde(skip_serializing_if = "Option::is_none")]
29705 pub modified_time_dt: Option<String>,
29706 #[doc = "Path\n\nThe full path to the registry key.\n\nrequired"]
29707 #[serde(rename = "path")]
29708 #[serde(skip_serializing_if = "Option::is_none")]
29709 pub path: Option<String>,
29710 #[doc = "Security Descriptor\n\nThe security descriptor of the registry key.\n\noptional"]
29711 #[serde(rename = "security_descriptor")]
29712 #[serde(skip_serializing_if = "Option::is_none")]
29713 pub security_descriptor: Option<String>,
29714}
29715#[doc = "Registry Value\n\nThe registry value object describes a Windows registry value.\n\n[] Category: | Name: reg_value"]
29716#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29717#[serde(default)]
29718#[non_exhaustive]
29719pub struct WinRegValue {
29720 #[doc = "Data\n\nThe data of the registry value. Where the value type is known, implementers should instead use a type-specific attribute, i.e. <code>reg_binary_data</code>, <code>reg_integer_data</code>, <code>reg_string_data</code>, or <code>reg_string_list_data</code>.\n\noptional"]
29721 #[serde(rename = "data")]
29722 #[serde(skip_serializing_if = "Option::is_none")]
29723 pub data: Option<serde_json::Value>,
29724 #[doc = "Default Value\n\nThe indication of whether the value is from a default value name. For example, the value name could be missing.\n\noptional"]
29725 #[serde(rename = "is_default")]
29726 #[serde(skip_serializing_if = "Option::is_none")]
29727 pub is_default: Option<bool>,
29728 #[doc = "System\n\nThe indication of whether the object is part of the operating system.\n\noptional"]
29729 #[serde(rename = "is_system")]
29730 #[serde(skip_serializing_if = "Option::is_none")]
29731 pub is_system: Option<bool>,
29732 #[doc = "Modified Time\n\nThe time when the registry value was last modified.\n\noptional"]
29733 #[serde(rename = "modified_time")]
29734 #[serde(skip_serializing_if = "Option::is_none")]
29735 pub modified_time: Option<i64>,
29736 #[doc = "Modified Time\n\nThe time when the registry value was last modified.\n\noptional"]
29737 #[serde(rename = "modified_time_dt")]
29738 #[serde(skip_serializing_if = "Option::is_none")]
29739 pub modified_time_dt: Option<String>,
29740 #[doc = "Name\n\nThe name of the registry value.\n\nrequired"]
29741 #[serde(rename = "name")]
29742 #[serde(skip_serializing_if = "Option::is_none")]
29743 pub name: Option<String>,
29744 #[doc = "Path\n\nThe full path to the registry key, where the value is located.\n\nrequired"]
29745 #[serde(rename = "path")]
29746 #[serde(skip_serializing_if = "Option::is_none")]
29747 pub path: Option<String>,
29748 #[doc = "Registry Binary Data\n\nThe data of the registry value when <code>type_id</code> is <code>REG_BINARY</code> or <code>REG_NONE</code>.\n\noptional"]
29749 #[serde(rename = "reg_binary_data")]
29750 #[serde(skip_serializing_if = "Option::is_none")]
29751 pub reg_binary_data: Option<String>,
29752 #[doc = "Registry Integer Data\n\nThe data of the registry value when <code>type_id</code> is <code>REG_DWORD</code>, <code>REG_DWORD_BIG_ENDIAN</code>, or <code>REG_QWORD</code>.\n\noptional"]
29753 #[serde(rename = "reg_integer_data")]
29754 #[serde(skip_serializing_if = "Option::is_none")]
29755 pub reg_integer_data: Option<i64>,
29756 #[doc = "Registry String Data\n\nThe data of the registry value when <code>type_id</code> is <code>REG_SZ</code>, <code>REG_EXPAND_SZ</code>, or <code>REG_LINK</code>.\n\noptional"]
29757 #[serde(rename = "reg_string_data")]
29758 #[serde(skip_serializing_if = "Option::is_none")]
29759 pub reg_string_data: Option<String>,
29760 #[doc = "Registry String List Data\n\nThe data of the registry value when <code>type_id</code> is <code>REG_MULTI_SZ</code>.\n\noptional"]
29761 #[serde(rename = "reg_string_list_data")]
29762 #[serde(skip_serializing_if = "Option::is_none")]
29763 pub reg_string_list_data: Option<Vec<String>>,
29764 #[doc = "Type\n\nA string representation of the value type as specified in <a target='_blank' href='https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry-value-types'>Registry Value Types</a>.\n\noptional"]
29765 #[serde(rename = "type")]
29766 #[serde(skip_serializing_if = "Option::is_none")]
29767 pub r#type: Option<String>,
29768 #[doc = "Type ID\n\nThe value type ID.\n\nrecommended"]
29769 #[serde(rename = "type_id")]
29770 #[serde(skip_serializing_if = "Option::is_none")]
29771 pub type_id: Option<i64>,
29772}
29773#[doc = "Windows Resource\n\nThe Windows resource object describes a resource object managed by Windows, such as mutant or timer.\n\n[] Category: | Name: win_resource\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29774#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29775#[serde(default)]
29776#[non_exhaustive]
29777pub struct WinWinResource {
29778 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
29779 #[serde(rename = "created_time")]
29780 #[serde(skip_serializing_if = "Option::is_none")]
29781 pub created_time: Option<i64>,
29782 #[doc = "Created Time\n\nThe time when the resource was created.\n\noptional"]
29783 #[serde(rename = "created_time_dt")]
29784 #[serde(skip_serializing_if = "Option::is_none")]
29785 pub created_time_dt: Option<String>,
29786 #[doc = "Data\n\nAdditional data describing the resource.\n\noptional"]
29787 #[serde(rename = "data")]
29788 #[serde(skip_serializing_if = "Option::is_none")]
29789 pub data: Option<serde_json::Value>,
29790 #[doc = "Data Classification\n\nThe Data Classification object includes information about data classification levels and data category types.\n\nrecommended"]
29791 #[serde(rename = "data_classification")]
29792 #[serde(skip_serializing_if = "Option::is_none")]
29793 pub data_classification: Option<Box<DataClassification>>,
29794 #[doc = "Data Classification\n\nA list of Data Classification objects, that include information about data classification levels and data category types, identified by a classifier.\n\nrecommended"]
29795 #[serde(rename = "data_classifications")]
29796 #[serde(skip_serializing_if = "Option::is_none")]
29797 pub data_classifications: Option<Vec<DataClassification>>,
29798 #[doc = "Details\n\nThe string detailing the attributes of the resource object.\n\noptional"]
29799 #[serde(rename = "details")]
29800 #[serde(skip_serializing_if = "Option::is_none")]
29801 pub details: Option<String>,
29802 #[doc = "Labels\n\nThe list of labels associated to the resource.\n\noptional"]
29803 #[serde(rename = "labels")]
29804 #[serde(skip_serializing_if = "Option::is_none")]
29805 pub labels: Option<Vec<String>>,
29806 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
29807 #[serde(rename = "modified_time")]
29808 #[serde(skip_serializing_if = "Option::is_none")]
29809 pub modified_time: Option<i64>,
29810 #[doc = "Modified Time\n\nThe time when the resource was last modified.\n\noptional"]
29811 #[serde(rename = "modified_time_dt")]
29812 #[serde(skip_serializing_if = "Option::is_none")]
29813 pub modified_time_dt: Option<String>,
29814 #[doc = "Name\n\nThe name of the resource object.\n\nrecommended"]
29815 #[serde(rename = "name")]
29816 #[serde(skip_serializing_if = "Option::is_none")]
29817 pub name: Option<String>,
29818 #[doc = "Service Name\n\nThe Windows service acting as the object server for the resource object, such as Security or Security Account Manager.\n\noptional"]
29819 #[serde(rename = "svc_name")]
29820 #[serde(skip_serializing_if = "Option::is_none")]
29821 pub svc_name: Option<String>,
29822 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the resource.\n\noptional"]
29823 #[serde(rename = "tags")]
29824 #[serde(skip_serializing_if = "Option::is_none")]
29825 pub tags: Option<Vec<KeyValueObject>>,
29826 #[doc = "Type\n\nThe type of the Windows resource object.\n\noptional"]
29827 #[serde(rename = "type")]
29828 #[serde(skip_serializing_if = "Option::is_none")]
29829 pub r#type: Option<String>,
29830 #[doc = "Type ID\n\nThe normalized type identifier of the Windows resource object accessed.\n\nrequired"]
29831 #[serde(rename = "type_id")]
29832 #[serde(skip_serializing_if = "Option::is_none")]
29833 pub type_id: Option<i64>,
29834 #[doc = "Unique ID\n\nThe Windows provided handle identifier for the resource object\n\nrecommended"]
29835 #[serde(rename = "uid")]
29836 #[serde(skip_serializing_if = "Option::is_none")]
29837 pub uid: Option<String>,
29838 #[doc = "Alternate ID\n\nThe alternative unique identifier of the resource.\n\noptional"]
29839 #[serde(rename = "uid_alt")]
29840 #[serde(skip_serializing_if = "Option::is_none")]
29841 pub uid_alt: Option<String>,
29842}
29843#[doc = "Windows Service\n\nThe Windows Service object describes a Windows service.\n\n[] Category: | Name: win_service\n\n**Constraints:**\n* at_least_one: `[name`,`uid]`\n"]
29844#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
29845#[serde(default)]
29846#[non_exhaustive]
29847pub struct WinWinService {
29848 #[doc = "Command Line\n\nThe full command line used to launch the service.\n\nrecommended"]
29849 #[serde(rename = "cmd_line")]
29850 #[serde(skip_serializing_if = "Option::is_none")]
29851 pub cmd_line: Option<String>,
29852 #[doc = "Hosting Process\n\nThe process that is hosting this service.\n\noptional"]
29853 #[serde(rename = "hosting_process")]
29854 #[serde(skip_serializing_if = "Option::is_none")]
29855 pub hosting_process: Option<Box<ProcessEntity>>,
29856 #[doc = "Labels\n\nThe list of labels associated with the service.\n\noptional"]
29857 #[serde(rename = "labels")]
29858 #[serde(skip_serializing_if = "Option::is_none")]
29859 pub labels: Option<Vec<String>>,
29860 #[doc = "Load Order Group\n\nThe name of the load ordering group of which this service is a member.\n\nrecommended"]
29861 #[serde(rename = "load_order_group")]
29862 #[serde(skip_serializing_if = "Option::is_none")]
29863 pub load_order_group: Option<String>,
29864 #[doc = "Name\n\nThe unique name of the service.\n\nrequired"]
29865 #[serde(rename = "name")]
29866 #[serde(skip_serializing_if = "Option::is_none")]
29867 pub name: Option<String>,
29868 #[doc = "Service Category\n\nThe service category, normalized to the caption of the service_category_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
29869 #[serde(rename = "service_category")]
29870 #[serde(skip_serializing_if = "Option::is_none")]
29871 pub service_category: Option<String>,
29872 #[doc = "Service Category ID\n\nThe normalized identifier of the service category.\n\nrecommended"]
29873 #[serde(rename = "service_category_id")]
29874 #[serde(skip_serializing_if = "Option::is_none")]
29875 pub service_category_id: Option<i64>,
29876 #[doc = "Service Dependencies\n\nThe names of other services upon which this service has a dependency.\n\nrecommended"]
29877 #[serde(rename = "service_dependencies")]
29878 #[serde(skip_serializing_if = "Option::is_none")]
29879 pub service_dependencies: Option<Vec<String>>,
29880 #[doc = "Service DLL\n\nFor a shared user mode service (<code>service_type_id</code> is 4) this is the DLL that gets loaded by the generic service host process (e.g. <code>svchost.exe</code>) to implement the service.\n\noptional"]
29881 #[serde(rename = "service_dll_file")]
29882 #[serde(skip_serializing_if = "Option::is_none")]
29883 pub service_dll_file: Option<Box<File>>,
29884 #[doc = "Service Error Control\n\nThe service error control, normalized to the caption of the <code>service_error_control_id</code> value. In the case of 'Other', it is defined by the event source.\n\noptional"]
29885 #[serde(rename = "service_error_control")]
29886 #[serde(skip_serializing_if = "Option::is_none")]
29887 pub service_error_control: Option<String>,
29888 #[doc = "Service Error Control ID\n\nThe normalized identifier of the service error control.\n\nrecommended"]
29889 #[serde(rename = "service_error_control_id")]
29890 #[serde(skip_serializing_if = "Option::is_none")]
29891 pub service_error_control_id: Option<i64>,
29892 #[doc = "Service File\n\nFor a user mode service (<code>service_type_id</code> 3 or 4) this is the executable program that the SCM launches as the service process.<br>For a kernel mode driver (<code>service_type_id</code> 1 or 2) this is the driver file loaded into the kernel at the request of the SCM. \n\nrecommended"]
29893 #[serde(rename = "service_file")]
29894 #[serde(skip_serializing_if = "Option::is_none")]
29895 pub service_file: Option<Box<File>>,
29896 #[doc = "Service Start Name\n\nFor a user mode service, this attribute represents the name of the account under which the service is run. For a kernel mode driver, this attribute represents the object name used to load the driver.\n\nrecommended"]
29897 #[serde(rename = "service_start_name")]
29898 #[serde(skip_serializing_if = "Option::is_none")]
29899 pub service_start_name: Option<String>,
29900 #[doc = "Service Start Type\n\nThe service start type, normalized to the caption of the <code>service_start_type_id</code> value. In the case of 'Other', it is defined by the event source.\n\noptional"]
29901 #[serde(rename = "service_start_type")]
29902 #[serde(skip_serializing_if = "Option::is_none")]
29903 pub service_start_type: Option<String>,
29904 #[doc = "Service Start Type ID\n\nThe normalized identifier of the service start type.\n\nrecommended"]
29905 #[serde(rename = "service_start_type_id")]
29906 #[serde(skip_serializing_if = "Option::is_none")]
29907 pub service_start_type_id: Option<i64>,
29908 #[doc = "Service Type\n\nThe service type, normalized to the caption of the service_type_id value. In the case of 'Other', it is defined by the event source.\n\noptional"]
29909 #[serde(rename = "service_type")]
29910 #[serde(skip_serializing_if = "Option::is_none")]
29911 pub service_type: Option<String>,
29912 #[doc = "Service Type ID\n\nThe normalized identifier of the service type.\n\nrecommended"]
29913 #[serde(rename = "service_type_id")]
29914 #[serde(skip_serializing_if = "Option::is_none")]
29915 pub service_type_id: Option<i64>,
29916 #[doc = "Tags\n\nThe list of tags; <code>{key:value}</code> pairs associated to the service.\n\noptional"]
29917 #[serde(rename = "tags")]
29918 #[serde(skip_serializing_if = "Option::is_none")]
29919 pub tags: Option<Vec<KeyValueObject>>,
29920 #[doc = "Unique ID\n\nThe unique identifier of the service.\n\nrecommended"]
29921 #[serde(rename = "uid")]
29922 #[serde(skip_serializing_if = "Option::is_none")]
29923 pub uid: Option<String>,
29924 #[doc = "Version\n\nThe version of the service.\n\nrecommended"]
29925 #[serde(rename = "version")]
29926 #[serde(skip_serializing_if = "Option::is_none")]
29927 pub version: Option<String>,
29928}