cdp_protocol/
browser.rs

1// Auto-generated from Chrome at version 140.0.7339.186 domain: Browser
2use super::target;
3#[allow(unused_imports)]
4use super::types::*;
5#[allow(unused_imports)]
6use serde::{Deserialize, Serialize};
7#[allow(unused_imports)]
8use serde_json::Value as Json;
9pub type BrowserContextId = String;
10pub type WindowId = JsUInt;
11#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
12pub enum WindowState {
13    #[serde(rename = "normal")]
14    Normal,
15    #[serde(rename = "minimized")]
16    Minimized,
17    #[serde(rename = "maximized")]
18    Maximized,
19    #[serde(rename = "fullscreen")]
20    Fullscreen,
21}
22#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
23pub enum PermissionType {
24    #[serde(rename = "ar")]
25    Ar,
26    #[serde(rename = "audioCapture")]
27    AudioCapture,
28    #[serde(rename = "automaticFullscreen")]
29    AutomaticFullscreen,
30    #[serde(rename = "backgroundFetch")]
31    BackgroundFetch,
32    #[serde(rename = "backgroundSync")]
33    BackgroundSync,
34    #[serde(rename = "cameraPanTiltZoom")]
35    CameraPanTiltZoom,
36    #[serde(rename = "capturedSurfaceControl")]
37    CapturedSurfaceControl,
38    #[serde(rename = "clipboardReadWrite")]
39    ClipboardReadWrite,
40    #[serde(rename = "clipboardSanitizedWrite")]
41    ClipboardSanitizedWrite,
42    #[serde(rename = "displayCapture")]
43    DisplayCapture,
44    #[serde(rename = "durableStorage")]
45    DurableStorage,
46    #[serde(rename = "geolocation")]
47    Geolocation,
48    #[serde(rename = "handTracking")]
49    HandTracking,
50    #[serde(rename = "idleDetection")]
51    IdleDetection,
52    #[serde(rename = "keyboardLock")]
53    KeyboardLock,
54    #[serde(rename = "localFonts")]
55    LocalFonts,
56    #[serde(rename = "localNetworkAccess")]
57    LocalNetworkAccess,
58    #[serde(rename = "midi")]
59    Midi,
60    #[serde(rename = "midiSysex")]
61    MidiSysex,
62    #[serde(rename = "nfc")]
63    Nfc,
64    #[serde(rename = "notifications")]
65    Notifications,
66    #[serde(rename = "paymentHandler")]
67    PaymentHandler,
68    #[serde(rename = "periodicBackgroundSync")]
69    PeriodicBackgroundSync,
70    #[serde(rename = "pointerLock")]
71    PointerLock,
72    #[serde(rename = "protectedMediaIdentifier")]
73    ProtectedMediaIdentifier,
74    #[serde(rename = "sensors")]
75    Sensors,
76    #[serde(rename = "smartCard")]
77    SmartCard,
78    #[serde(rename = "speakerSelection")]
79    SpeakerSelection,
80    #[serde(rename = "storageAccess")]
81    StorageAccess,
82    #[serde(rename = "topLevelStorageAccess")]
83    TopLevelStorageAccess,
84    #[serde(rename = "videoCapture")]
85    VideoCapture,
86    #[serde(rename = "vr")]
87    Vr,
88    #[serde(rename = "wakeLockScreen")]
89    WakeLockScreen,
90    #[serde(rename = "wakeLockSystem")]
91    WakeLockSystem,
92    #[serde(rename = "webAppInstallation")]
93    WebAppInstallation,
94    #[serde(rename = "webPrinting")]
95    WebPrinting,
96    #[serde(rename = "windowManagement")]
97    WindowManagement,
98}
99#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
100pub enum PermissionSetting {
101    #[serde(rename = "granted")]
102    Granted,
103    #[serde(rename = "denied")]
104    Denied,
105    #[serde(rename = "prompt")]
106    Prompt,
107}
108#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
109pub enum BrowserCommandId {
110    #[serde(rename = "openTabSearch")]
111    OpenTabSearch,
112    #[serde(rename = "closeTabSearch")]
113    CloseTabSearch,
114    #[serde(rename = "openGlic")]
115    OpenGlic,
116}
117#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
118pub enum PrivacySandboxApi {
119    #[serde(rename = "BiddingAndAuctionServices")]
120    BiddingAndAuctionServices,
121    #[serde(rename = "TrustedKeyValue")]
122    TrustedKeyValue,
123}
124#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
125pub enum SetDownloadBehaviorBehaviorOption {
126    #[serde(rename = "deny")]
127    Deny,
128    #[serde(rename = "allow")]
129    Allow,
130    #[serde(rename = "allowAndName")]
131    AllowAndName,
132    #[serde(rename = "default")]
133    Default,
134}
135#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
136pub enum DownloadProgressStateOption {
137    #[serde(rename = "inProgress")]
138    InProgress,
139    #[serde(rename = "completed")]
140    Completed,
141    #[serde(rename = "canceled")]
142    Canceled,
143}
144#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
145pub struct Bounds {
146    #[serde(skip_serializing_if = "Option::is_none")]
147    #[serde(default)]
148    #[serde(rename = "left")]
149    pub left: Option<JsUInt>,
150    #[serde(skip_serializing_if = "Option::is_none")]
151    #[serde(default)]
152    #[serde(rename = "top")]
153    pub top: Option<JsUInt>,
154    #[serde(skip_serializing_if = "Option::is_none")]
155    #[serde(default)]
156    #[serde(rename = "width")]
157    pub width: Option<JsUInt>,
158    #[serde(skip_serializing_if = "Option::is_none")]
159    #[serde(default)]
160    #[serde(rename = "height")]
161    pub height: Option<JsUInt>,
162    #[serde(skip_serializing_if = "Option::is_none")]
163    #[serde(rename = "windowState")]
164    pub window_state: Option<WindowState>,
165}
166#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
167pub struct PermissionDescriptor {
168    #[serde(default)]
169    #[serde(rename = "name")]
170    pub name: String,
171    #[serde(skip_serializing_if = "Option::is_none")]
172    #[serde(default)]
173    #[serde(rename = "sysex")]
174    pub sysex: Option<bool>,
175    #[serde(skip_serializing_if = "Option::is_none")]
176    #[serde(default)]
177    #[serde(rename = "userVisibleOnly")]
178    pub user_visible_only: Option<bool>,
179    #[serde(skip_serializing_if = "Option::is_none")]
180    #[serde(default)]
181    #[serde(rename = "allowWithoutSanitization")]
182    pub allow_without_sanitization: Option<bool>,
183    #[serde(skip_serializing_if = "Option::is_none")]
184    #[serde(default)]
185    #[serde(rename = "allowWithoutGesture")]
186    pub allow_without_gesture: Option<bool>,
187    #[serde(skip_serializing_if = "Option::is_none")]
188    #[serde(default)]
189    #[serde(rename = "panTiltZoom")]
190    pub pan_tilt_zoom: Option<bool>,
191}
192#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
193pub struct Bucket {
194    #[serde(default)]
195    #[serde(rename = "low")]
196    pub low: JsUInt,
197    #[serde(default)]
198    #[serde(rename = "high")]
199    pub high: JsUInt,
200    #[serde(default)]
201    #[serde(rename = "count")]
202    pub count: JsUInt,
203}
204#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
205pub struct Histogram {
206    #[serde(default)]
207    #[serde(rename = "name")]
208    pub name: String,
209    #[serde(default)]
210    #[serde(rename = "sum")]
211    pub sum: JsUInt,
212    #[serde(default)]
213    #[serde(rename = "count")]
214    pub count: JsUInt,
215    #[serde(rename = "buckets")]
216    pub buckets: Vec<Bucket>,
217}
218#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
219pub struct SetPermission {
220    #[serde(rename = "permission")]
221    pub permission: PermissionDescriptor,
222    #[serde(rename = "setting")]
223    pub setting: PermissionSetting,
224    #[serde(skip_serializing_if = "Option::is_none")]
225    #[serde(default)]
226    #[serde(rename = "origin")]
227    pub origin: Option<String>,
228    #[serde(skip_serializing_if = "Option::is_none")]
229    #[serde(rename = "browserContextId")]
230    pub browser_context_id: Option<BrowserContextId>,
231}
232#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
233pub struct GrantPermissions {
234    #[serde(rename = "permissions")]
235    pub permissions: Vec<PermissionType>,
236    #[serde(skip_serializing_if = "Option::is_none")]
237    #[serde(default)]
238    #[serde(rename = "origin")]
239    pub origin: Option<String>,
240    #[serde(skip_serializing_if = "Option::is_none")]
241    #[serde(rename = "browserContextId")]
242    pub browser_context_id: Option<BrowserContextId>,
243}
244#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
245pub struct ResetPermissions {
246    #[serde(skip_serializing_if = "Option::is_none")]
247    #[serde(rename = "browserContextId")]
248    pub browser_context_id: Option<BrowserContextId>,
249}
250#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
251pub struct SetDownloadBehavior {
252    #[serde(rename = "behavior")]
253    pub behavior: SetDownloadBehaviorBehaviorOption,
254    #[serde(skip_serializing_if = "Option::is_none")]
255    #[serde(rename = "browserContextId")]
256    pub browser_context_id: Option<BrowserContextId>,
257    #[serde(skip_serializing_if = "Option::is_none")]
258    #[serde(default)]
259    #[serde(rename = "downloadPath")]
260    pub download_path: Option<String>,
261    #[serde(skip_serializing_if = "Option::is_none")]
262    #[serde(default)]
263    #[serde(rename = "eventsEnabled")]
264    pub events_enabled: Option<bool>,
265}
266#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
267pub struct CancelDownload {
268    #[serde(default)]
269    #[serde(rename = "guid")]
270    pub guid: String,
271    #[serde(skip_serializing_if = "Option::is_none")]
272    #[serde(rename = "browserContextId")]
273    pub browser_context_id: Option<BrowserContextId>,
274}
275#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
276#[serde(rename_all = "camelCase")]
277pub struct Close(pub Option<serde_json::Value>);
278#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
279#[serde(rename_all = "camelCase")]
280pub struct Crash(pub Option<serde_json::Value>);
281#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
282#[serde(rename_all = "camelCase")]
283pub struct CrashGpuProcess(pub Option<serde_json::Value>);
284#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
285#[serde(rename_all = "camelCase")]
286pub struct GetVersion(pub Option<serde_json::Value>);
287#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
288#[serde(rename_all = "camelCase")]
289pub struct GetBrowserCommandLine(pub Option<serde_json::Value>);
290#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
291pub struct GetHistograms {
292    #[serde(skip_serializing_if = "Option::is_none")]
293    #[serde(default)]
294    #[serde(rename = "query")]
295    pub query: Option<String>,
296    #[serde(skip_serializing_if = "Option::is_none")]
297    #[serde(default)]
298    #[serde(rename = "delta")]
299    pub delta: Option<bool>,
300}
301#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
302pub struct GetHistogram {
303    #[serde(default)]
304    #[serde(rename = "name")]
305    pub name: String,
306    #[serde(skip_serializing_if = "Option::is_none")]
307    #[serde(default)]
308    #[serde(rename = "delta")]
309    pub delta: Option<bool>,
310}
311#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
312pub struct GetWindowBounds {
313    #[serde(rename = "windowId")]
314    pub window_id: WindowId,
315}
316#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
317pub struct GetWindowForTarget {
318    #[serde(skip_serializing_if = "Option::is_none")]
319    #[serde(rename = "targetId")]
320    pub target_id: Option<target::TargetId>,
321}
322#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
323pub struct SetWindowBounds {
324    #[serde(rename = "windowId")]
325    pub window_id: WindowId,
326    #[serde(rename = "bounds")]
327    pub bounds: Bounds,
328}
329#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
330pub struct SetContentsSize {
331    #[serde(rename = "windowId")]
332    pub window_id: WindowId,
333    #[serde(skip_serializing_if = "Option::is_none")]
334    #[serde(default)]
335    #[serde(rename = "width")]
336    pub width: Option<JsUInt>,
337    #[serde(skip_serializing_if = "Option::is_none")]
338    #[serde(default)]
339    #[serde(rename = "height")]
340    pub height: Option<JsUInt>,
341}
342#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
343pub struct SetDockTile {
344    #[serde(skip_serializing_if = "Option::is_none")]
345    #[serde(default)]
346    #[serde(rename = "badgeLabel")]
347    pub badge_label: Option<String>,
348    #[serde(skip_serializing_if = "Option::is_none")]
349    #[serde(rename = "image")]
350    pub image: Option<Vec<u8>>,
351}
352#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
353pub struct ExecuteBrowserCommand {
354    #[serde(rename = "commandId")]
355    pub command_id: BrowserCommandId,
356}
357#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
358pub struct AddPrivacySandboxEnrollmentOverride {
359    #[serde(default)]
360    #[serde(rename = "url")]
361    pub url: String,
362}
363#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
364pub struct AddPrivacySandboxCoordinatorKeyConfig {
365    #[serde(rename = "api")]
366    pub api: PrivacySandboxApi,
367    #[serde(default)]
368    #[serde(rename = "coordinatorOrigin")]
369    pub coordinator_origin: String,
370    #[serde(default)]
371    #[serde(rename = "keyConfig")]
372    pub key_config: String,
373    #[serde(skip_serializing_if = "Option::is_none")]
374    #[serde(rename = "browserContextId")]
375    pub browser_context_id: Option<BrowserContextId>,
376}
377#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
378#[serde(rename_all = "camelCase")]
379pub struct SetPermissionReturnObject {}
380#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
381#[serde(rename_all = "camelCase")]
382pub struct GrantPermissionsReturnObject {}
383#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
384#[serde(rename_all = "camelCase")]
385pub struct ResetPermissionsReturnObject {}
386#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
387#[serde(rename_all = "camelCase")]
388pub struct SetDownloadBehaviorReturnObject {}
389#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
390#[serde(rename_all = "camelCase")]
391pub struct CancelDownloadReturnObject {}
392#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
393#[serde(rename_all = "camelCase")]
394pub struct CloseReturnObject {}
395#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
396#[serde(rename_all = "camelCase")]
397pub struct CrashReturnObject {}
398#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
399#[serde(rename_all = "camelCase")]
400pub struct CrashGpuProcessReturnObject {}
401#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
402pub struct GetVersionReturnObject {
403    #[serde(default)]
404    #[serde(rename = "protocolVersion")]
405    pub protocol_version: String,
406    #[serde(default)]
407    #[serde(rename = "product")]
408    pub product: String,
409    #[serde(default)]
410    #[serde(rename = "revision")]
411    pub revision: String,
412    #[serde(default)]
413    #[serde(rename = "userAgent")]
414    pub user_agent: String,
415    #[serde(default)]
416    #[serde(rename = "jsVersion")]
417    pub js_version: String,
418}
419#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
420pub struct GetBrowserCommandLineReturnObject {
421    #[serde(rename = "arguments")]
422    pub arguments: Vec<String>,
423}
424#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
425pub struct GetHistogramsReturnObject {
426    #[serde(rename = "histograms")]
427    pub histograms: Vec<Histogram>,
428}
429#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
430pub struct GetHistogramReturnObject {
431    #[serde(rename = "histogram")]
432    pub histogram: Histogram,
433}
434#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
435pub struct GetWindowBoundsReturnObject {
436    #[serde(rename = "bounds")]
437    pub bounds: Bounds,
438}
439#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
440pub struct GetWindowForTargetReturnObject {
441    #[serde(rename = "windowId")]
442    pub window_id: WindowId,
443    #[serde(rename = "bounds")]
444    pub bounds: Bounds,
445}
446#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
447#[serde(rename_all = "camelCase")]
448pub struct SetWindowBoundsReturnObject {}
449#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
450#[serde(rename_all = "camelCase")]
451pub struct SetContentsSizeReturnObject {}
452#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
453#[serde(rename_all = "camelCase")]
454pub struct SetDockTileReturnObject {}
455#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
456#[serde(rename_all = "camelCase")]
457pub struct ExecuteBrowserCommandReturnObject {}
458#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
459#[serde(rename_all = "camelCase")]
460pub struct AddPrivacySandboxEnrollmentOverrideReturnObject {}
461#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
462#[serde(rename_all = "camelCase")]
463pub struct AddPrivacySandboxCoordinatorKeyConfigReturnObject {}
464impl Method for SetPermission {
465    const NAME: &'static str = "Browser.setPermission";
466    type ReturnObject = SetPermissionReturnObject;
467}
468impl Method for GrantPermissions {
469    const NAME: &'static str = "Browser.grantPermissions";
470    type ReturnObject = GrantPermissionsReturnObject;
471}
472impl Method for ResetPermissions {
473    const NAME: &'static str = "Browser.resetPermissions";
474    type ReturnObject = ResetPermissionsReturnObject;
475}
476impl Method for SetDownloadBehavior {
477    const NAME: &'static str = "Browser.setDownloadBehavior";
478    type ReturnObject = SetDownloadBehaviorReturnObject;
479}
480impl Method for CancelDownload {
481    const NAME: &'static str = "Browser.cancelDownload";
482    type ReturnObject = CancelDownloadReturnObject;
483}
484impl Method for Close {
485    const NAME: &'static str = "Browser.close";
486    type ReturnObject = CloseReturnObject;
487}
488impl Method for Crash {
489    const NAME: &'static str = "Browser.crash";
490    type ReturnObject = CrashReturnObject;
491}
492impl Method for CrashGpuProcess {
493    const NAME: &'static str = "Browser.crashGpuProcess";
494    type ReturnObject = CrashGpuProcessReturnObject;
495}
496impl Method for GetVersion {
497    const NAME: &'static str = "Browser.getVersion";
498    type ReturnObject = GetVersionReturnObject;
499}
500impl Method for GetBrowserCommandLine {
501    const NAME: &'static str = "Browser.getBrowserCommandLine";
502    type ReturnObject = GetBrowserCommandLineReturnObject;
503}
504impl Method for GetHistograms {
505    const NAME: &'static str = "Browser.getHistograms";
506    type ReturnObject = GetHistogramsReturnObject;
507}
508impl Method for GetHistogram {
509    const NAME: &'static str = "Browser.getHistogram";
510    type ReturnObject = GetHistogramReturnObject;
511}
512impl Method for GetWindowBounds {
513    const NAME: &'static str = "Browser.getWindowBounds";
514    type ReturnObject = GetWindowBoundsReturnObject;
515}
516impl Method for GetWindowForTarget {
517    const NAME: &'static str = "Browser.getWindowForTarget";
518    type ReturnObject = GetWindowForTargetReturnObject;
519}
520impl Method for SetWindowBounds {
521    const NAME: &'static str = "Browser.setWindowBounds";
522    type ReturnObject = SetWindowBoundsReturnObject;
523}
524impl Method for SetContentsSize {
525    const NAME: &'static str = "Browser.setContentsSize";
526    type ReturnObject = SetContentsSizeReturnObject;
527}
528impl Method for SetDockTile {
529    const NAME: &'static str = "Browser.setDockTile";
530    type ReturnObject = SetDockTileReturnObject;
531}
532impl Method for ExecuteBrowserCommand {
533    const NAME: &'static str = "Browser.executeBrowserCommand";
534    type ReturnObject = ExecuteBrowserCommandReturnObject;
535}
536impl Method for AddPrivacySandboxEnrollmentOverride {
537    const NAME: &'static str = "Browser.addPrivacySandboxEnrollmentOverride";
538    type ReturnObject = AddPrivacySandboxEnrollmentOverrideReturnObject;
539}
540impl Method for AddPrivacySandboxCoordinatorKeyConfig {
541    const NAME: &'static str = "Browser.addPrivacySandboxCoordinatorKeyConfig";
542    type ReturnObject = AddPrivacySandboxCoordinatorKeyConfigReturnObject;
543}
544pub mod events {
545    #[allow(unused_imports)]
546    use super::super::types::*;
547    #[allow(unused_imports)]
548    use serde::{Deserialize, Serialize};
549    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
550    pub struct DownloadWillBeginEvent {
551        pub params: DownloadWillBeginEventParams,
552    }
553    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
554    pub struct DownloadWillBeginEventParams {
555        #[serde(rename = "frameId")]
556        pub frame_id: super::super::page::FrameId,
557        #[serde(default)]
558        #[serde(rename = "guid")]
559        pub guid: String,
560        #[serde(default)]
561        #[serde(rename = "url")]
562        pub url: String,
563        #[serde(default)]
564        #[serde(rename = "suggestedFilename")]
565        pub suggested_filename: String,
566    }
567    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
568    pub struct DownloadProgressEvent {
569        pub params: DownloadProgressEventParams,
570    }
571    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
572    pub struct DownloadProgressEventParams {
573        #[serde(default)]
574        #[serde(rename = "guid")]
575        pub guid: String,
576        #[serde(default)]
577        #[serde(rename = "totalBytes")]
578        pub total_bytes: JsFloat,
579        #[serde(default)]
580        #[serde(rename = "receivedBytes")]
581        pub received_bytes: JsFloat,
582        #[serde(rename = "state")]
583        pub state: super::DownloadProgressStateOption,
584        #[serde(skip_serializing_if = "Option::is_none")]
585        #[serde(default)]
586        #[serde(rename = "filePath")]
587        pub file_path: Option<String>,
588    }
589}