Skip to main content

allwright/
allwright.engine.v1.rs

1// This file is @generated by prost-build.
2#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3pub struct PingRequest {}
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct PingResponse {
6    #[prost(string, tag = "1")]
7    pub message: ::prost::alloc::string::String,
8    #[prost(string, tag = "2")]
9    pub version: ::prost::alloc::string::String,
10}
11#[derive(Clone, Copy, PartialEq, ::prost::Message)]
12pub struct CommandRetryOptions {
13    #[prost(uint32, optional, tag = "1")]
14    pub timeout_ms: ::core::option::Option<u32>,
15    #[prost(uint32, optional, tag = "2")]
16    pub retry_interval_ms: ::core::option::Option<u32>,
17}
18#[derive(Clone, PartialEq, ::prost::Message)]
19pub struct ConnectDesktopCommand {
20    #[prost(enumeration = "DesktopPlatform", tag = "1")]
21    pub platform: i32,
22    #[prost(string, optional, tag = "2")]
23    pub agent_endpoint: ::core::option::Option<::prost::alloc::string::String>,
24    #[prost(message, optional, tag = "3")]
25    pub retry_options: ::core::option::Option<CommandRetryOptions>,
26}
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct DesktopConnectedEvent {
29    #[prost(enumeration = "DesktopPlatform", tag = "1")]
30    pub platform: i32,
31    #[prost(string, tag = "2")]
32    pub host_name: ::prost::alloc::string::String,
33    #[prost(string, tag = "3")]
34    pub note: ::prost::alloc::string::String,
35    #[prost(string, tag = "4")]
36    pub backend: ::prost::alloc::string::String,
37    #[prost(string, tag = "5")]
38    pub desktop_session_id: ::prost::alloc::string::String,
39    #[prost(string, tag = "6")]
40    pub initial_app_session_id: ::prost::alloc::string::String,
41}
42#[derive(Clone, PartialEq, ::prost::Message)]
43pub struct LaunchDesktopAppCommand {
44    #[prost(string, tag = "1")]
45    pub app_id: ::prost::alloc::string::String,
46    #[prost(bool, tag = "2")]
47    pub terminate_running: bool,
48    #[prost(message, optional, tag = "3")]
49    pub retry_options: ::core::option::Option<CommandRetryOptions>,
50}
51#[derive(Clone, PartialEq, ::prost::Message)]
52pub struct DesktopAppLaunchedEvent {
53    #[prost(string, tag = "1")]
54    pub app_session_id: ::prost::alloc::string::String,
55    #[prost(string, tag = "2")]
56    pub app_id: ::prost::alloc::string::String,
57    #[prost(string, tag = "3")]
58    pub note: ::prost::alloc::string::String,
59}
60#[derive(Clone, Copy, PartialEq, ::prost::Message)]
61pub struct ListDesktopWindowsCommand {}
62#[derive(Clone, Copy, PartialEq, ::prost::Message)]
63pub struct CloseDesktopWindowCommand {}
64#[derive(Clone, Copy, PartialEq, ::prost::Message)]
65pub struct RegisterDesktopWindowHook {}
66#[derive(Clone, PartialEq, ::prost::Message)]
67pub struct DesktopWindowInfo {
68    #[prost(string, tag = "1")]
69    pub context_session_id: ::prost::alloc::string::String,
70    #[prost(string, tag = "2")]
71    pub window_id: ::prost::alloc::string::String,
72    #[prost(string, tag = "3")]
73    pub title: ::prost::alloc::string::String,
74    #[prost(bool, tag = "4")]
75    pub is_main: bool,
76}
77#[derive(Clone, PartialEq, ::prost::Message)]
78pub struct DesktopWindowsResolvedEvent {
79    #[prost(message, repeated, tag = "1")]
80    pub windows: ::prost::alloc::vec::Vec<DesktopWindowInfo>,
81}
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct DesktopWindowClosedEvent {
84    #[prost(string, tag = "1")]
85    pub window_id: ::prost::alloc::string::String,
86}
87#[derive(Clone, PartialEq, ::prost::Message)]
88pub struct DesktopWindowHookResult {
89    #[prost(message, optional, tag = "1")]
90    pub window: ::core::option::Option<DesktopWindowInfo>,
91}
92#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
93#[repr(i32)]
94pub enum DesktopPlatform {
95    Unspecified = 0,
96    Mac = 1,
97    Windows = 2,
98}
99impl DesktopPlatform {
100    /// String value of the enum field names used in the ProtoBuf definition.
101    ///
102    /// The values are not transformed in any way and thus are considered stable
103    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
104    pub fn as_str_name(&self) -> &'static str {
105        match self {
106            Self::Unspecified => "DESKTOP_PLATFORM_UNSPECIFIED",
107            Self::Mac => "DESKTOP_PLATFORM_MAC",
108            Self::Windows => "DESKTOP_PLATFORM_WINDOWS",
109        }
110    }
111    /// Creates an enum from field names used in the ProtoBuf definition.
112    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
113        match value {
114            "DESKTOP_PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
115            "DESKTOP_PLATFORM_MAC" => Some(Self::Mac),
116            "DESKTOP_PLATFORM_WINDOWS" => Some(Self::Windows),
117            _ => None,
118        }
119    }
120}
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct ConnectMobileCommand {
123    #[prost(enumeration = "MobilePlatform", tag = "1")]
124    pub platform: i32,
125    #[prost(string, optional, tag = "2")]
126    pub device: ::core::option::Option<::prost::alloc::string::String>,
127    #[prost(string, optional, tag = "3")]
128    pub adb_endpoint: ::core::option::Option<::prost::alloc::string::String>,
129    #[prost(bool, tag = "4")]
130    pub preserve_app_state: bool,
131    #[prost(message, optional, tag = "5")]
132    pub retry_options: ::core::option::Option<CommandRetryOptions>,
133}
134#[derive(Clone, PartialEq, ::prost::Message)]
135pub struct MobileConnectedEvent {
136    #[prost(enumeration = "MobilePlatform", tag = "1")]
137    pub platform: i32,
138    #[prost(string, tag = "2")]
139    pub device_name: ::prost::alloc::string::String,
140    #[prost(string, tag = "3")]
141    pub note: ::prost::alloc::string::String,
142    #[prost(string, tag = "4")]
143    pub device_id: ::prost::alloc::string::String,
144    #[prost(enumeration = "DeviceConnectionKind", tag = "5")]
145    pub connection_kind: i32,
146    #[prost(string, tag = "6")]
147    pub backend: ::prost::alloc::string::String,
148    #[prost(string, tag = "7")]
149    pub device_session_id: ::prost::alloc::string::String,
150    #[prost(string, tag = "8")]
151    pub initial_app_session_id: ::prost::alloc::string::String,
152    #[prost(string, optional, tag = "9")]
153    pub package_name: ::core::option::Option<::prost::alloc::string::String>,
154    #[prost(string, optional, tag = "10")]
155    pub activity_name: ::core::option::Option<::prost::alloc::string::String>,
156}
157#[derive(Clone, PartialEq, ::prost::Message)]
158pub struct LaunchAppCommand {
159    #[prost(string, optional, tag = "1")]
160    pub apk_path: ::core::option::Option<::prost::alloc::string::String>,
161    #[prost(string, optional, tag = "2")]
162    pub app_id: ::core::option::Option<::prost::alloc::string::String>,
163    #[prost(string, optional, tag = "3")]
164    pub launch_activity: ::core::option::Option<::prost::alloc::string::String>,
165    #[prost(bool, tag = "4")]
166    pub stop_before_launch: bool,
167    #[prost(message, optional, tag = "5")]
168    pub retry_options: ::core::option::Option<CommandRetryOptions>,
169}
170#[derive(Clone, PartialEq, ::prost::Message)]
171pub struct AppLaunchedEvent {
172    #[prost(string, tag = "1")]
173    pub app_session_id: ::prost::alloc::string::String,
174    #[prost(string, tag = "2")]
175    pub note: ::prost::alloc::string::String,
176    #[prost(string, optional, tag = "3")]
177    pub package_name: ::core::option::Option<::prost::alloc::string::String>,
178    #[prost(string, optional, tag = "4")]
179    pub activity_name: ::core::option::Option<::prost::alloc::string::String>,
180    #[prost(string, optional, tag = "5")]
181    pub webview_context: ::core::option::Option<::prost::alloc::string::String>,
182}
183#[derive(Clone, Copy, PartialEq, ::prost::Message)]
184pub struct RegisterMobileFileChooserHook {}
185#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct MobileFileChooserHookResult {
187    #[prost(string, tag = "1")]
188    pub file_chooser_id: ::prost::alloc::string::String,
189    #[prost(bool, tag = "2")]
190    pub is_multiple: bool,
191    #[prost(string, tag = "3")]
192    pub note: ::prost::alloc::string::String,
193}
194#[derive(Clone, PartialEq, ::prost::Message)]
195pub struct SetMobileFileChooserFilesCommand {
196    #[prost(string, tag = "1")]
197    pub file_chooser_id: ::prost::alloc::string::String,
198    #[prost(string, repeated, tag = "2")]
199    pub file_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
200    #[prost(message, optional, tag = "3")]
201    pub retry_options: ::core::option::Option<CommandRetryOptions>,
202}
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct MobileFileChooserFilesSetEvent {
205    #[prost(string, tag = "1")]
206    pub file_chooser_id: ::prost::alloc::string::String,
207    #[prost(string, repeated, tag = "2")]
208    pub file_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
209    #[prost(string, tag = "3")]
210    pub note: ::prost::alloc::string::String,
211}
212#[derive(Clone, Copy, PartialEq, ::prost::Message)]
213pub struct RegisterMobileDownloadHook {}
214#[derive(Clone, PartialEq, ::prost::Message)]
215pub struct MobileDownloadHookResult {
216    #[prost(string, tag = "1")]
217    pub download_id: ::prost::alloc::string::String,
218    #[prost(string, tag = "2")]
219    pub suggested_filename: ::prost::alloc::string::String,
220    #[prost(string, tag = "3")]
221    pub note: ::prost::alloc::string::String,
222}
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct SaveMobileDownloadCommand {
225    #[prost(string, tag = "1")]
226    pub download_id: ::prost::alloc::string::String,
227    #[prost(message, optional, tag = "2")]
228    pub retry_options: ::core::option::Option<CommandRetryOptions>,
229}
230#[derive(Clone, PartialEq, ::prost::Message)]
231pub struct MobileDownloadSavedEvent {
232    #[prost(string, tag = "1")]
233    pub download_id: ::prost::alloc::string::String,
234    #[prost(string, tag = "2")]
235    pub file_id: ::prost::alloc::string::String,
236    #[prost(string, tag = "3")]
237    pub suggested_filename: ::prost::alloc::string::String,
238    #[prost(uint64, tag = "4")]
239    pub size: u64,
240    #[prost(string, tag = "5")]
241    pub note: ::prost::alloc::string::String,
242}
243#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
244#[repr(i32)]
245pub enum MobilePlatform {
246    Unspecified = 0,
247    Android = 1,
248    Ios = 2,
249}
250impl MobilePlatform {
251    /// String value of the enum field names used in the ProtoBuf definition.
252    ///
253    /// The values are not transformed in any way and thus are considered stable
254    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
255    pub fn as_str_name(&self) -> &'static str {
256        match self {
257            Self::Unspecified => "MOBILE_PLATFORM_UNSPECIFIED",
258            Self::Android => "MOBILE_PLATFORM_ANDROID",
259            Self::Ios => "MOBILE_PLATFORM_IOS",
260        }
261    }
262    /// Creates an enum from field names used in the ProtoBuf definition.
263    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
264        match value {
265            "MOBILE_PLATFORM_UNSPECIFIED" => Some(Self::Unspecified),
266            "MOBILE_PLATFORM_ANDROID" => Some(Self::Android),
267            "MOBILE_PLATFORM_IOS" => Some(Self::Ios),
268            _ => None,
269        }
270    }
271}
272#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
273#[repr(i32)]
274pub enum DeviceConnectionKind {
275    Unspecified = 0,
276    Usb = 1,
277    Emulator = 2,
278    RemoteAdb = 3,
279}
280impl DeviceConnectionKind {
281    /// String value of the enum field names used in the ProtoBuf definition.
282    ///
283    /// The values are not transformed in any way and thus are considered stable
284    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
285    pub fn as_str_name(&self) -> &'static str {
286        match self {
287            Self::Unspecified => "DEVICE_CONNECTION_KIND_UNSPECIFIED",
288            Self::Usb => "DEVICE_CONNECTION_KIND_USB",
289            Self::Emulator => "DEVICE_CONNECTION_KIND_EMULATOR",
290            Self::RemoteAdb => "DEVICE_CONNECTION_KIND_REMOTE_ADB",
291        }
292    }
293    /// Creates an enum from field names used in the ProtoBuf definition.
294    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
295        match value {
296            "DEVICE_CONNECTION_KIND_UNSPECIFIED" => Some(Self::Unspecified),
297            "DEVICE_CONNECTION_KIND_USB" => Some(Self::Usb),
298            "DEVICE_CONNECTION_KIND_EMULATOR" => Some(Self::Emulator),
299            "DEVICE_CONNECTION_KIND_REMOTE_ADB" => Some(Self::RemoteAdb),
300            _ => None,
301        }
302    }
303}
304#[derive(Clone, PartialEq, ::prost::Message)]
305pub struct LaunchBrowserCommand {
306    #[prost(enumeration = "BrowserKind", tag = "1")]
307    pub browser_kind: i32,
308    #[prost(string, optional, tag = "2")]
309    pub browser_binary: ::core::option::Option<::prost::alloc::string::String>,
310    #[prost(message, optional, tag = "3")]
311    pub retry_options: ::core::option::Option<CommandRetryOptions>,
312}
313#[derive(Clone, PartialEq, ::prost::Message)]
314pub struct BrowserLaunchedEvent {
315    #[prost(enumeration = "BrowserKind", tag = "1")]
316    pub browser_kind: i32,
317    #[prost(string, tag = "2")]
318    pub browser: ::prost::alloc::string::String,
319    #[prost(string, tag = "3")]
320    pub note: ::prost::alloc::string::String,
321    #[prost(string, tag = "4")]
322    pub user_data_dir: ::prost::alloc::string::String,
323    #[prost(string, tag = "5")]
324    pub initial_page_session_id: ::prost::alloc::string::String,
325}
326#[derive(Clone, PartialEq, ::prost::Message)]
327pub struct LaunchChromeCommand {
328    #[prost(string, optional, tag = "1")]
329    pub chrome_binary: ::core::option::Option<::prost::alloc::string::String>,
330    #[prost(message, optional, tag = "2")]
331    pub retry_options: ::core::option::Option<CommandRetryOptions>,
332}
333#[derive(Clone, PartialEq, ::prost::Message)]
334pub struct ChromeLaunchedEvent {
335    #[prost(string, tag = "1")]
336    pub browser: ::prost::alloc::string::String,
337    #[prost(string, tag = "2")]
338    pub note: ::prost::alloc::string::String,
339    #[prost(string, tag = "3")]
340    pub cdp_websocket_url: ::prost::alloc::string::String,
341    #[prost(string, tag = "4")]
342    pub user_data_dir: ::prost::alloc::string::String,
343    #[prost(string, tag = "5")]
344    pub initial_page_session_id: ::prost::alloc::string::String,
345}
346/// Register before the triggering action; wait returns a pending JavaScript dialog.
347#[derive(Clone, Copy, PartialEq, ::prost::Message)]
348pub struct RegisterDialogHook {}
349#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct DialogHookResult {
351    #[prost(string, tag = "1")]
352    pub dialog_id: ::prost::alloc::string::String,
353    #[prost(string, tag = "2")]
354    pub r#type: ::prost::alloc::string::String,
355    #[prost(string, tag = "3")]
356    pub message: ::prost::alloc::string::String,
357    #[prost(string, tag = "4")]
358    pub default_value: ::prost::alloc::string::String,
359}
360#[derive(Clone, PartialEq, ::prost::Message)]
361pub struct HandleDialogCommand {
362    #[prost(string, tag = "1")]
363    pub dialog_id: ::prost::alloc::string::String,
364    #[prost(bool, tag = "2")]
365    pub accept: bool,
366    #[prost(string, optional, tag = "3")]
367    pub prompt_text: ::core::option::Option<::prost::alloc::string::String>,
368    /// A single-attempt deadline, not a retry request.
369    #[prost(message, optional, tag = "4")]
370    pub retry_options: ::core::option::Option<CommandRetryOptions>,
371}
372#[derive(Clone, PartialEq, ::prost::Message)]
373pub struct DialogHandledEvent {
374    #[prost(string, tag = "1")]
375    pub dialog_id: ::prost::alloc::string::String,
376}
377#[derive(Clone, Copy, PartialEq, ::prost::Message)]
378pub struct RegisterNewPageHook {}
379#[derive(Clone, PartialEq, ::prost::Message)]
380pub struct NewPageHookResult {
381    #[prost(string, tag = "1")]
382    pub context_session_id: ::prost::alloc::string::String,
383    #[prost(string, tag = "2")]
384    pub note: ::prost::alloc::string::String,
385}
386#[derive(Clone, Copy, PartialEq, ::prost::Message)]
387pub struct RegisterFileChooserHook {}
388#[derive(Clone, PartialEq, ::prost::Message)]
389pub struct FileChooserHookResult {
390    #[prost(string, tag = "1")]
391    pub file_chooser_id: ::prost::alloc::string::String,
392    #[prost(bool, tag = "2")]
393    pub is_multiple: bool,
394    #[prost(string, tag = "3")]
395    pub note: ::prost::alloc::string::String,
396}
397#[derive(Clone, PartialEq, ::prost::Message)]
398pub struct SetFileChooserFilesCommand {
399    #[prost(string, tag = "1")]
400    pub file_chooser_id: ::prost::alloc::string::String,
401    #[prost(string, repeated, tag = "2")]
402    pub file_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
403    #[prost(message, optional, tag = "3")]
404    pub retry_options: ::core::option::Option<CommandRetryOptions>,
405}
406#[derive(Clone, PartialEq, ::prost::Message)]
407pub struct FileChooserFilesSetEvent {
408    #[prost(string, tag = "1")]
409    pub file_chooser_id: ::prost::alloc::string::String,
410    #[prost(string, repeated, tag = "2")]
411    pub file_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
412    #[prost(string, tag = "3")]
413    pub note: ::prost::alloc::string::String,
414}
415#[derive(Clone, Copy, PartialEq, ::prost::Message)]
416pub struct RegisterDownloadHook {}
417#[derive(Clone, PartialEq, ::prost::Message)]
418pub struct DownloadHookResult {
419    #[prost(string, tag = "1")]
420    pub download_id: ::prost::alloc::string::String,
421    #[prost(string, tag = "2")]
422    pub url: ::prost::alloc::string::String,
423    #[prost(string, tag = "3")]
424    pub suggested_filename: ::prost::alloc::string::String,
425    #[prost(string, tag = "4")]
426    pub note: ::prost::alloc::string::String,
427}
428#[derive(Clone, PartialEq, ::prost::Message)]
429pub struct SaveDownloadCommand {
430    #[prost(string, tag = "1")]
431    pub download_id: ::prost::alloc::string::String,
432    #[prost(message, optional, tag = "2")]
433    pub retry_options: ::core::option::Option<CommandRetryOptions>,
434}
435#[derive(Clone, PartialEq, ::prost::Message)]
436pub struct DownloadSavedEvent {
437    #[prost(string, tag = "1")]
438    pub download_id: ::prost::alloc::string::String,
439    #[prost(string, tag = "2")]
440    pub file_id: ::prost::alloc::string::String,
441    #[prost(string, tag = "3")]
442    pub suggested_filename: ::prost::alloc::string::String,
443    #[prost(uint64, tag = "4")]
444    pub size: u64,
445    #[prost(string, tag = "5")]
446    pub note: ::prost::alloc::string::String,
447}
448/// Resolve an iframe locator to a page after its document has loaded and settled.
449#[derive(Clone, PartialEq, ::prost::Message)]
450pub struct ResolveFrameCommand {
451    #[prost(string, tag = "1")]
452    pub css_selector: ::prost::alloc::string::String,
453    #[prost(message, optional, tag = "2")]
454    pub retry_options: ::core::option::Option<CommandRetryOptions>,
455}
456#[derive(Clone, PartialEq, ::prost::Message)]
457pub struct FrameResolvedEvent {
458    #[prost(string, tag = "1")]
459    pub context_session_id: ::prost::alloc::string::String,
460}
461#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
462#[repr(i32)]
463pub enum BrowserKind {
464    Unspecified = 0,
465    Chromium = 1,
466    Firefox = 2,
467}
468impl BrowserKind {
469    /// String value of the enum field names used in the ProtoBuf definition.
470    ///
471    /// The values are not transformed in any way and thus are considered stable
472    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
473    pub fn as_str_name(&self) -> &'static str {
474        match self {
475            Self::Unspecified => "BROWSER_KIND_UNSPECIFIED",
476            Self::Chromium => "BROWSER_KIND_CHROMIUM",
477            Self::Firefox => "BROWSER_KIND_FIREFOX",
478        }
479    }
480    /// Creates an enum from field names used in the ProtoBuf definition.
481    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
482        match value {
483            "BROWSER_KIND_UNSPECIFIED" => Some(Self::Unspecified),
484            "BROWSER_KIND_CHROMIUM" => Some(Self::Chromium),
485            "BROWSER_KIND_FIREFOX" => Some(Self::Firefox),
486            _ => None,
487        }
488    }
489}
490#[derive(Clone, PartialEq, ::prost::Message)]
491pub struct SurfaceSessionCommand {
492    #[prost(
493        oneof = "surface_session_command::Command",
494        tags = "1, 2, 3, 4, 5, 6, 7, 8, 9"
495    )]
496    pub command: ::core::option::Option<surface_session_command::Command>,
497}
498/// Nested message and enum types in `SurfaceSessionCommand`.
499pub mod surface_session_command {
500    #[derive(Clone, PartialEq, ::prost::Oneof)]
501    pub enum Command {
502        #[prost(message, tag = "1")]
503        LaunchChrome(super::LaunchChromeCommand),
504        #[prost(message, tag = "2")]
505        OpenContext(super::OpenContextCommand),
506        #[prost(message, tag = "3")]
507        Ping(super::SessionPingCommand),
508        #[prost(message, tag = "4")]
509        Close(super::CloseSurfaceSessionCommand),
510        #[prost(message, tag = "5")]
511        LaunchBrowser(super::LaunchBrowserCommand),
512        #[prost(message, tag = "6")]
513        ConnectMobile(super::ConnectMobileCommand),
514        #[prost(message, tag = "7")]
515        LaunchApp(super::LaunchAppCommand),
516        #[prost(message, tag = "8")]
517        ConnectDesktop(super::ConnectDesktopCommand),
518        #[prost(message, tag = "9")]
519        LaunchDesktopApp(super::LaunchDesktopAppCommand),
520    }
521}
522#[derive(Clone, Copy, PartialEq, ::prost::Message)]
523pub struct OpenContextCommand {
524    #[prost(message, optional, tag = "1")]
525    pub retry_options: ::core::option::Option<CommandRetryOptions>,
526}
527#[derive(Clone, PartialEq, ::prost::Message)]
528pub struct SessionPingCommand {
529    #[prost(string, tag = "1")]
530    pub message: ::prost::alloc::string::String,
531}
532#[derive(Clone, Copy, PartialEq, ::prost::Message)]
533pub struct CloseSurfaceSessionCommand {}
534#[derive(Clone, PartialEq, ::prost::Message)]
535pub struct SurfaceSessionEvent {
536    #[prost(string, tag = "1")]
537    pub session_id: ::prost::alloc::string::String,
538    #[prost(
539        oneof = "surface_session_event::Event",
540        tags = "2, 3, 4, 5, 6, 7, 8, 9, 10, 11"
541    )]
542    pub event: ::core::option::Option<surface_session_event::Event>,
543}
544/// Nested message and enum types in `SurfaceSessionEvent`.
545pub mod surface_session_event {
546    #[derive(Clone, PartialEq, ::prost::Oneof)]
547    pub enum Event {
548        #[prost(message, tag = "2")]
549        ChromeLaunched(super::ChromeLaunchedEvent),
550        #[prost(message, tag = "3")]
551        ContextOpened(super::ContextOpenedEvent),
552        #[prost(message, tag = "4")]
553        Pong(super::SessionPongEvent),
554        #[prost(message, tag = "5")]
555        Closed(super::SurfaceSessionClosedEvent),
556        #[prost(message, tag = "6")]
557        Error(super::SurfaceSessionErrorEvent),
558        #[prost(message, tag = "7")]
559        BrowserLaunched(super::BrowserLaunchedEvent),
560        #[prost(message, tag = "8")]
561        MobileConnected(super::MobileConnectedEvent),
562        #[prost(message, tag = "9")]
563        AppLaunched(super::AppLaunchedEvent),
564        #[prost(message, tag = "10")]
565        DesktopConnected(super::DesktopConnectedEvent),
566        #[prost(message, tag = "11")]
567        DesktopAppLaunched(super::DesktopAppLaunchedEvent),
568    }
569}
570#[derive(Clone, PartialEq, ::prost::Message)]
571pub struct ContextOpenedEvent {
572    #[prost(string, tag = "1")]
573    pub context_session_id: ::prost::alloc::string::String,
574    #[prost(string, tag = "2")]
575    pub note: ::prost::alloc::string::String,
576}
577#[derive(Clone, PartialEq, ::prost::Message)]
578pub struct SessionPongEvent {
579    #[prost(string, tag = "1")]
580    pub message: ::prost::alloc::string::String,
581}
582#[derive(Clone, PartialEq, ::prost::Message)]
583pub struct SurfaceSessionClosedEvent {
584    #[prost(string, tag = "1")]
585    pub reason: ::prost::alloc::string::String,
586}
587#[derive(Clone, PartialEq, ::prost::Message)]
588pub struct SurfaceSessionErrorEvent {
589    #[prost(string, tag = "1")]
590    pub message: ::prost::alloc::string::String,
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct ContextSessionCommand {
594    #[prost(string, tag = "1")]
595    pub surface_session_id: ::prost::alloc::string::String,
596    #[prost(string, tag = "2")]
597    pub context_session_id: ::prost::alloc::string::String,
598    #[prost(
599        oneof = "context_session_command::Command",
600        tags = "3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30"
601    )]
602    pub command: ::core::option::Option<context_session_command::Command>,
603}
604/// Nested message and enum types in `ContextSessionCommand`.
605pub mod context_session_command {
606    #[derive(Clone, PartialEq, ::prost::Oneof)]
607    pub enum Command {
608        #[prost(message, tag = "3")]
609        Ping(super::ContextSessionPingCommand),
610        #[prost(message, tag = "4")]
611        Close(super::CloseContextSessionCommand),
612        #[prost(message, tag = "5")]
613        Navigate(super::NavigatePageCommand),
614        #[prost(message, tag = "6")]
615        ClickElement(super::ClickElementCommand),
616        #[prost(message, tag = "7")]
617        CountElements(super::CountElementsCommand),
618        #[prost(message, tag = "8")]
619        HighlightElements(super::HighlightElementsCommand),
620        #[prost(message, tag = "9")]
621        FocusElement(super::FocusElementCommand),
622        #[prost(message, tag = "10")]
623        FillElement(super::FillElementCommand),
624        #[prost(message, tag = "11")]
625        HoverElement(super::HoverElementCommand),
626        #[prost(message, tag = "12")]
627        PressKey(super::PressKeyCommand),
628        #[prost(message, tag = "13")]
629        GetTextContent(super::GetTextContentCommand),
630        #[prost(message, tag = "14")]
631        GetInnerText(super::GetInnerTextCommand),
632        #[prost(message, tag = "15")]
633        WaitForSelector(super::WaitForSelectorCommand),
634        #[prost(message, tag = "16")]
635        Screenshot(super::ScreenshotCommand),
636        #[prost(message, tag = "17")]
637        AccessibilitySnapshot(super::AccessibilitySnapshotCommand),
638        #[prost(message, tag = "18")]
639        RegisterHook(super::RegisterHookCommand),
640        #[prost(message, tag = "19")]
641        WaitForHook(super::WaitForHookCommand),
642        #[prost(message, tag = "20")]
643        SetFileChooserFiles(super::SetFileChooserFilesCommand),
644        #[prost(message, tag = "21")]
645        SaveDownload(super::SaveDownloadCommand),
646        #[prost(message, tag = "22")]
647        UploadFileChunk(super::UploadFileChunkCommand),
648        #[prost(message, tag = "23")]
649        ReadFileChunk(super::ReadFileChunkCommand),
650        #[prost(message, tag = "24")]
651        SetMobileFileChooserFiles(super::SetMobileFileChooserFilesCommand),
652        #[prost(message, tag = "25")]
653        SaveMobileDownload(super::SaveMobileDownloadCommand),
654        #[prost(message, tag = "26")]
655        ResolveFrame(super::ResolveFrameCommand),
656        #[prost(message, tag = "27")]
657        Capture(super::CaptureCommand),
658        #[prost(message, tag = "28")]
659        HandleDialog(super::HandleDialogCommand),
660        #[prost(message, tag = "29")]
661        ListDesktopWindows(super::ListDesktopWindowsCommand),
662        #[prost(message, tag = "30")]
663        CloseDesktopWindow(super::CloseDesktopWindowCommand),
664    }
665}
666#[derive(Clone, PartialEq, ::prost::Message)]
667pub struct ContextSessionPingCommand {
668    #[prost(string, tag = "1")]
669    pub message: ::prost::alloc::string::String,
670}
671#[derive(Clone, Copy, PartialEq, ::prost::Message)]
672pub struct CloseContextSessionCommand {}
673#[derive(Clone, PartialEq, ::prost::Message)]
674pub struct ContextSessionEvent {
675    #[prost(string, tag = "1")]
676    pub context_session_id: ::prost::alloc::string::String,
677    #[prost(
678        oneof = "context_session_event::Event",
679        tags = "2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32"
680    )]
681    pub event: ::core::option::Option<context_session_event::Event>,
682}
683/// Nested message and enum types in `ContextSessionEvent`.
684pub mod context_session_event {
685    #[derive(Clone, PartialEq, ::prost::Oneof)]
686    pub enum Event {
687        #[prost(message, tag = "2")]
688        Attached(super::ContextSessionAttachedEvent),
689        #[prost(message, tag = "3")]
690        Pong(super::ContextSessionPongEvent),
691        #[prost(message, tag = "4")]
692        Closed(super::ContextSessionClosedEvent),
693        #[prost(message, tag = "5")]
694        Error(super::ContextSessionErrorEvent),
695        #[prost(message, tag = "6")]
696        Navigated(super::PageNavigatedEvent),
697        #[prost(message, tag = "7")]
698        ChromiumBidiInjection(super::ChromiumBidiInjectionEvent),
699        #[prost(message, tag = "8")]
700        ElementClicked(super::ElementClickedEvent),
701        #[prost(message, tag = "9")]
702        ElementCounted(super::ElementCountedEvent),
703        #[prost(message, tag = "10")]
704        ElementsHighlighted(super::ElementsHighlightedEvent),
705        #[prost(message, tag = "11")]
706        ElementFocused(super::ElementFocusedEvent),
707        #[prost(message, tag = "12")]
708        ElementFilled(super::ElementFilledEvent),
709        #[prost(message, tag = "13")]
710        ElementHovered(super::ElementHoveredEvent),
711        #[prost(message, tag = "14")]
712        KeyPressed(super::KeyPressedEvent),
713        #[prost(message, tag = "15")]
714        TextContentResolved(super::TextContentResolvedEvent),
715        #[prost(message, tag = "16")]
716        InnerTextResolved(super::InnerTextResolvedEvent),
717        #[prost(message, tag = "17")]
718        SelectorWaitSatisfied(super::SelectorWaitSatisfiedEvent),
719        #[prost(message, tag = "18")]
720        ScreenshotCaptured(super::ScreenshotCapturedEvent),
721        #[prost(message, tag = "19")]
722        AccessibilitySnapshotCaptured(super::AccessibilitySnapshotCapturedEvent),
723        #[prost(message, tag = "20")]
724        HookRegistered(super::HookRegisteredEvent),
725        #[prost(message, tag = "21")]
726        HookCompleted(super::HookCompletedEvent),
727        #[prost(message, tag = "22")]
728        FileChooserFilesSet(super::FileChooserFilesSetEvent),
729        #[prost(message, tag = "23")]
730        DownloadSaved(super::DownloadSavedEvent),
731        #[prost(message, tag = "24")]
732        FileUploaded(super::FileUploadedEvent),
733        #[prost(message, tag = "25")]
734        FileChunk(super::FileChunkEvent),
735        #[prost(message, tag = "26")]
736        MobileFileChooserFilesSet(super::MobileFileChooserFilesSetEvent),
737        #[prost(message, tag = "27")]
738        MobileDownloadSaved(super::MobileDownloadSavedEvent),
739        #[prost(message, tag = "28")]
740        FrameResolved(super::FrameResolvedEvent),
741        #[prost(message, tag = "29")]
742        CaptureResolved(super::CaptureResolvedEvent),
743        #[prost(message, tag = "30")]
744        DialogHandled(super::DialogHandledEvent),
745        #[prost(message, tag = "31")]
746        DesktopWindowsResolved(super::DesktopWindowsResolvedEvent),
747        #[prost(message, tag = "32")]
748        DesktopWindowClosed(super::DesktopWindowClosedEvent),
749    }
750}
751#[derive(Clone, PartialEq, ::prost::Message)]
752pub struct ContextSessionAttachedEvent {
753    #[prost(string, tag = "1")]
754    pub note: ::prost::alloc::string::String,
755}
756#[derive(Clone, PartialEq, ::prost::Message)]
757pub struct ContextSessionPongEvent {
758    #[prost(string, tag = "1")]
759    pub message: ::prost::alloc::string::String,
760}
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct ContextSessionClosedEvent {
763    #[prost(string, tag = "1")]
764    pub reason: ::prost::alloc::string::String,
765}
766#[derive(Clone, PartialEq, ::prost::Message)]
767pub struct ContextSessionErrorEvent {
768    #[prost(string, tag = "1")]
769    pub message: ::prost::alloc::string::String,
770}
771#[derive(Clone, Copy, PartialEq, ::prost::Message)]
772pub struct RegisterHookCommand {
773    #[prost(oneof = "register_hook_command::Hook", tags = "1, 2, 3, 4, 5, 6, 7")]
774    pub hook: ::core::option::Option<register_hook_command::Hook>,
775}
776/// Nested message and enum types in `RegisterHookCommand`.
777pub mod register_hook_command {
778    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
779    pub enum Hook {
780        #[prost(message, tag = "1")]
781        NewPage(super::RegisterNewPageHook),
782        #[prost(message, tag = "2")]
783        FileChooser(super::RegisterFileChooserHook),
784        #[prost(message, tag = "3")]
785        Download(super::RegisterDownloadHook),
786        #[prost(message, tag = "4")]
787        MobileFileChooser(super::RegisterMobileFileChooserHook),
788        #[prost(message, tag = "5")]
789        MobileDownload(super::RegisterMobileDownloadHook),
790        #[prost(message, tag = "6")]
791        Dialog(super::RegisterDialogHook),
792        #[prost(message, tag = "7")]
793        DesktopWindow(super::RegisterDesktopWindowHook),
794    }
795}
796#[derive(Clone, PartialEq, ::prost::Message)]
797pub struct WaitForHookCommand {
798    #[prost(string, tag = "1")]
799    pub hook_id: ::prost::alloc::string::String,
800    #[prost(message, optional, tag = "2")]
801    pub retry_options: ::core::option::Option<CommandRetryOptions>,
802}
803#[derive(Clone, PartialEq, ::prost::Message)]
804pub struct HookRegisteredEvent {
805    #[prost(string, tag = "1")]
806    pub hook_id: ::prost::alloc::string::String,
807}
808#[derive(Clone, PartialEq, ::prost::Message)]
809pub struct HookCompletedEvent {
810    #[prost(string, tag = "1")]
811    pub hook_id: ::prost::alloc::string::String,
812    #[prost(oneof = "hook_completed_event::Result", tags = "2, 3, 4, 5, 6, 7, 8")]
813    pub result: ::core::option::Option<hook_completed_event::Result>,
814}
815/// Nested message and enum types in `HookCompletedEvent`.
816pub mod hook_completed_event {
817    #[derive(Clone, PartialEq, ::prost::Oneof)]
818    pub enum Result {
819        #[prost(message, tag = "2")]
820        NewPage(super::NewPageHookResult),
821        #[prost(message, tag = "3")]
822        FileChooser(super::FileChooserHookResult),
823        #[prost(message, tag = "4")]
824        Download(super::DownloadHookResult),
825        #[prost(message, tag = "5")]
826        MobileFileChooser(super::MobileFileChooserHookResult),
827        #[prost(message, tag = "6")]
828        MobileDownload(super::MobileDownloadHookResult),
829        #[prost(message, tag = "7")]
830        Dialog(super::DialogHookResult),
831        #[prost(message, tag = "8")]
832        DesktopWindow(super::DesktopWindowHookResult),
833    }
834}
835#[derive(Clone, PartialEq, ::prost::Message)]
836pub struct UploadFileChunkCommand {
837    #[prost(string, tag = "1")]
838    pub transfer_id: ::prost::alloc::string::String,
839    #[prost(string, tag = "2")]
840    pub name: ::prost::alloc::string::String,
841    #[prost(uint64, tag = "3")]
842    pub offset: u64,
843    #[prost(bytes = "vec", tag = "4")]
844    pub data: ::prost::alloc::vec::Vec<u8>,
845    #[prost(bool, tag = "5")]
846    pub last: bool,
847}
848#[derive(Clone, PartialEq, ::prost::Message)]
849pub struct FileUploadedEvent {
850    #[prost(string, tag = "1")]
851    pub transfer_id: ::prost::alloc::string::String,
852    #[prost(string, tag = "2")]
853    pub file_id: ::prost::alloc::string::String,
854    #[prost(string, tag = "3")]
855    pub name: ::prost::alloc::string::String,
856    #[prost(uint64, tag = "4")]
857    pub size: u64,
858}
859#[derive(Clone, PartialEq, ::prost::Message)]
860pub struct ReadFileChunkCommand {
861    #[prost(string, tag = "1")]
862    pub file_id: ::prost::alloc::string::String,
863    #[prost(uint64, tag = "2")]
864    pub offset: u64,
865    #[prost(uint32, tag = "3")]
866    pub max_bytes: u32,
867}
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct FileChunkEvent {
870    #[prost(string, tag = "1")]
871    pub file_id: ::prost::alloc::string::String,
872    #[prost(uint64, tag = "2")]
873    pub offset: u64,
874    #[prost(bytes = "vec", tag = "3")]
875    pub data: ::prost::alloc::vec::Vec<u8>,
876    #[prost(bool, tag = "4")]
877    pub last: bool,
878}
879#[derive(Clone, PartialEq, ::prost::Message)]
880pub struct NavigatePageCommand {
881    #[prost(string, tag = "1")]
882    pub url: ::prost::alloc::string::String,
883    #[prost(message, optional, tag = "2")]
884    pub retry_options: ::core::option::Option<CommandRetryOptions>,
885}
886#[derive(Clone, PartialEq, ::prost::Message)]
887pub struct ClickElementCommand {
888    #[prost(string, tag = "1")]
889    pub css_selector: ::prost::alloc::string::String,
890    #[prost(message, optional, tag = "2")]
891    pub retry_options: ::core::option::Option<CommandRetryOptions>,
892    #[prost(string, optional, tag = "3")]
893    pub button: ::core::option::Option<::prost::alloc::string::String>,
894    #[prost(uint32, optional, tag = "4")]
895    pub click_count: ::core::option::Option<u32>,
896}
897#[derive(Clone, PartialEq, ::prost::Message)]
898pub struct CountElementsCommand {
899    #[prost(string, tag = "1")]
900    pub css_selector: ::prost::alloc::string::String,
901    #[prost(message, optional, tag = "2")]
902    pub retry_options: ::core::option::Option<CommandRetryOptions>,
903}
904#[derive(Clone, PartialEq, ::prost::Message)]
905pub struct HighlightElementsCommand {
906    #[prost(string, tag = "1")]
907    pub css_selector: ::prost::alloc::string::String,
908    #[prost(uint32, optional, tag = "2")]
909    pub duration_ms: ::core::option::Option<u32>,
910    #[prost(message, optional, tag = "3")]
911    pub retry_options: ::core::option::Option<CommandRetryOptions>,
912}
913#[derive(Clone, PartialEq, ::prost::Message)]
914pub struct FocusElementCommand {
915    #[prost(string, tag = "1")]
916    pub css_selector: ::prost::alloc::string::String,
917    #[prost(message, optional, tag = "2")]
918    pub retry_options: ::core::option::Option<CommandRetryOptions>,
919}
920#[derive(Clone, PartialEq, ::prost::Message)]
921pub struct FillElementCommand {
922    #[prost(string, tag = "1")]
923    pub css_selector: ::prost::alloc::string::String,
924    #[prost(string, tag = "2")]
925    pub value: ::prost::alloc::string::String,
926    #[prost(message, optional, tag = "3")]
927    pub retry_options: ::core::option::Option<CommandRetryOptions>,
928}
929#[derive(Clone, PartialEq, ::prost::Message)]
930pub struct HoverElementCommand {
931    #[prost(string, tag = "1")]
932    pub css_selector: ::prost::alloc::string::String,
933    #[prost(message, optional, tag = "2")]
934    pub retry_options: ::core::option::Option<CommandRetryOptions>,
935}
936#[derive(Clone, PartialEq, ::prost::Message)]
937pub struct PressKeyCommand {
938    #[prost(string, tag = "1")]
939    pub css_selector: ::prost::alloc::string::String,
940    #[prost(string, tag = "2")]
941    pub key: ::prost::alloc::string::String,
942    #[prost(string, optional, tag = "3")]
943    pub text: ::core::option::Option<::prost::alloc::string::String>,
944    #[prost(message, optional, tag = "4")]
945    pub retry_options: ::core::option::Option<CommandRetryOptions>,
946}
947#[derive(Clone, PartialEq, ::prost::Message)]
948pub struct GetTextContentCommand {
949    #[prost(string, tag = "1")]
950    pub css_selector: ::prost::alloc::string::String,
951    #[prost(message, optional, tag = "2")]
952    pub retry_options: ::core::option::Option<CommandRetryOptions>,
953}
954#[derive(Clone, PartialEq, ::prost::Message)]
955pub struct GetInnerTextCommand {
956    #[prost(string, tag = "1")]
957    pub css_selector: ::prost::alloc::string::String,
958    #[prost(message, optional, tag = "2")]
959    pub retry_options: ::core::option::Option<CommandRetryOptions>,
960}
961#[derive(Clone, PartialEq, ::prost::Message)]
962pub struct WaitForSelectorCommand {
963    #[prost(string, tag = "1")]
964    pub css_selector: ::prost::alloc::string::String,
965    #[prost(bool, optional, tag = "2")]
966    pub visible: ::core::option::Option<bool>,
967    #[prost(message, optional, tag = "3")]
968    pub retry_options: ::core::option::Option<CommandRetryOptions>,
969}
970#[derive(Clone, Copy, PartialEq, ::prost::Message)]
971pub struct ScreenshotCommand {
972    #[prost(message, optional, tag = "1")]
973    pub retry_options: ::core::option::Option<CommandRetryOptions>,
974    #[prost(bool, optional, tag = "2")]
975    pub full_page: ::core::option::Option<bool>,
976}
977#[derive(Clone, PartialEq, ::prost::Message)]
978pub struct PageNavigatedEvent {
979    #[prost(string, tag = "1")]
980    pub url: ::prost::alloc::string::String,
981    #[prost(string, tag = "2")]
982    pub note: ::prost::alloc::string::String,
983}
984#[derive(Clone, PartialEq, ::prost::Message)]
985pub struct ChromiumBidiInjectionEvent {
986    #[prost(string, tag = "1")]
987    pub note: ::prost::alloc::string::String,
988    #[prost(string, tag = "2")]
989    pub bidi_session_id: ::prost::alloc::string::String,
990    #[prost(string, tag = "3")]
991    pub mapper_target_id: ::prost::alloc::string::String,
992    #[prost(string, tag = "4")]
993    pub mapper_session_id: ::prost::alloc::string::String,
994    #[prost(string, tag = "5")]
995    pub package_version: ::prost::alloc::string::String,
996}
997#[derive(Clone, PartialEq, ::prost::Message)]
998pub struct ElementClickedEvent {
999    #[prost(string, tag = "1")]
1000    pub css_selector: ::prost::alloc::string::String,
1001    #[prost(string, tag = "2")]
1002    pub note: ::prost::alloc::string::String,
1003    #[prost(string, tag = "3")]
1004    pub bidi_session_id: ::prost::alloc::string::String,
1005}
1006#[derive(Clone, PartialEq, ::prost::Message)]
1007pub struct ElementCountedEvent {
1008    #[prost(string, tag = "1")]
1009    pub css_selector: ::prost::alloc::string::String,
1010    #[prost(uint32, tag = "2")]
1011    pub count: u32,
1012    #[prost(string, tag = "3")]
1013    pub note: ::prost::alloc::string::String,
1014}
1015#[derive(Clone, PartialEq, ::prost::Message)]
1016pub struct ElementsHighlightedEvent {
1017    #[prost(string, tag = "1")]
1018    pub css_selector: ::prost::alloc::string::String,
1019    #[prost(uint32, tag = "2")]
1020    pub count: u32,
1021    #[prost(string, tag = "3")]
1022    pub note: ::prost::alloc::string::String,
1023}
1024#[derive(Clone, PartialEq, ::prost::Message)]
1025pub struct ElementFocusedEvent {
1026    #[prost(string, tag = "1")]
1027    pub css_selector: ::prost::alloc::string::String,
1028    #[prost(string, tag = "2")]
1029    pub note: ::prost::alloc::string::String,
1030}
1031#[derive(Clone, PartialEq, ::prost::Message)]
1032pub struct ElementFilledEvent {
1033    #[prost(string, tag = "1")]
1034    pub css_selector: ::prost::alloc::string::String,
1035    #[prost(string, tag = "2")]
1036    pub value: ::prost::alloc::string::String,
1037    #[prost(string, tag = "3")]
1038    pub note: ::prost::alloc::string::String,
1039}
1040#[derive(Clone, PartialEq, ::prost::Message)]
1041pub struct ElementHoveredEvent {
1042    #[prost(string, tag = "1")]
1043    pub css_selector: ::prost::alloc::string::String,
1044    #[prost(string, tag = "2")]
1045    pub note: ::prost::alloc::string::String,
1046}
1047#[derive(Clone, PartialEq, ::prost::Message)]
1048pub struct KeyPressedEvent {
1049    #[prost(string, tag = "1")]
1050    pub css_selector: ::prost::alloc::string::String,
1051    #[prost(string, tag = "2")]
1052    pub key: ::prost::alloc::string::String,
1053    #[prost(string, tag = "3")]
1054    pub note: ::prost::alloc::string::String,
1055}
1056#[derive(Clone, PartialEq, ::prost::Message)]
1057pub struct TextContentResolvedEvent {
1058    #[prost(string, tag = "1")]
1059    pub css_selector: ::prost::alloc::string::String,
1060    #[prost(string, tag = "2")]
1061    pub text: ::prost::alloc::string::String,
1062    #[prost(string, tag = "3")]
1063    pub note: ::prost::alloc::string::String,
1064}
1065#[derive(Clone, PartialEq, ::prost::Message)]
1066pub struct InnerTextResolvedEvent {
1067    #[prost(string, tag = "1")]
1068    pub css_selector: ::prost::alloc::string::String,
1069    #[prost(string, tag = "2")]
1070    pub text: ::prost::alloc::string::String,
1071    #[prost(string, tag = "3")]
1072    pub note: ::prost::alloc::string::String,
1073}
1074#[derive(Clone, PartialEq, ::prost::Message)]
1075pub struct SelectorWaitSatisfiedEvent {
1076    #[prost(string, tag = "1")]
1077    pub css_selector: ::prost::alloc::string::String,
1078    #[prost(bool, tag = "2")]
1079    pub visible: bool,
1080    #[prost(string, tag = "3")]
1081    pub note: ::prost::alloc::string::String,
1082}
1083#[derive(Clone, PartialEq, ::prost::Message)]
1084pub struct ScreenshotCapturedEvent {
1085    #[prost(bytes = "vec", tag = "1")]
1086    pub png_data: ::prost::alloc::vec::Vec<u8>,
1087    #[prost(string, tag = "2")]
1088    pub note: ::prost::alloc::string::String,
1089}
1090/// Empty format defaults to JSON. Accepted values are "json" and "yaml".
1091#[derive(Clone, PartialEq, ::prost::Message)]
1092pub struct AccessibilitySnapshotCommand {
1093    /// Empty mode defaults to default. AI assigns queryable references; reference storage is surface-owned.
1094    /// Supported: default, ai, autoexpect, codegen.
1095    #[prost(string, tag = "3")]
1096    pub mode: ::prost::alloc::string::String,
1097    #[prost(string, tag = "1")]
1098    pub format: ::prost::alloc::string::String,
1099    #[prost(message, optional, tag = "2")]
1100    pub retry_options: ::core::option::Option<CommandRetryOptions>,
1101}
1102/// Both formats encode the same versioned, structured document.
1103#[derive(Clone, PartialEq, ::prost::Message)]
1104pub struct AccessibilitySnapshotCapturedEvent {
1105    #[prost(string, tag = "1")]
1106    pub snapshot: ::prost::alloc::string::String,
1107    #[prost(string, tag = "2")]
1108    pub format: ::prost::alloc::string::String,
1109}
1110#[derive(Clone, PartialEq, ::prost::Message)]
1111pub struct CaptureCommand {
1112    #[prost(enumeration = "CaptureKind", tag = "1")]
1113    pub kind: i32,
1114    #[prost(string, tag = "2")]
1115    pub css_selector: ::prost::alloc::string::String,
1116    #[prost(string, tag = "3")]
1117    pub attribute_name: ::prost::alloc::string::String,
1118    #[prost(message, optional, tag = "4")]
1119    pub retry_options: ::core::option::Option<CommandRetryOptions>,
1120}
1121#[derive(Clone, PartialEq, ::prost::Message)]
1122pub struct CapturedOption {
1123    #[prost(string, tag = "1")]
1124    pub value: ::prost::alloc::string::String,
1125    #[prost(string, tag = "2")]
1126    pub label: ::prost::alloc::string::String,
1127    #[prost(uint32, tag = "3")]
1128    pub index: u32,
1129}
1130#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1131pub struct BoundingBox {
1132    #[prost(double, tag = "1")]
1133    pub x: f64,
1134    #[prost(double, tag = "2")]
1135    pub y: f64,
1136    #[prost(double, tag = "3")]
1137    pub width: f64,
1138    #[prost(double, tag = "4")]
1139    pub height: f64,
1140}
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct CaptureResolvedEvent {
1143    /// Absent for a missing attribute or unsupported text selection.
1144    #[prost(string, optional, tag = "1")]
1145    pub value: ::core::option::Option<::prost::alloc::string::String>,
1146    #[prost(bool, optional, tag = "2")]
1147    pub checked: ::core::option::Option<bool>,
1148    #[prost(message, repeated, tag = "3")]
1149    pub selected_options: ::prost::alloc::vec::Vec<CapturedOption>,
1150    /// Viewport coordinates in CSS pixels, absent for an element without a visible box.
1151    #[prost(message, optional, tag = "4")]
1152    pub bounding_box: ::core::option::Option<BoundingBox>,
1153}
1154/// Read-only web inspection. Element reads use the first locator match.
1155#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1156#[repr(i32)]
1157pub enum CaptureKind {
1158    Unspecified = 0,
1159    Url = 1,
1160    InputValue = 2,
1161    SelectedOptions = 3,
1162    SelectedText = 4,
1163    Checked = 5,
1164    Attribute = 6,
1165    BoundingBox = 7,
1166}
1167impl CaptureKind {
1168    /// String value of the enum field names used in the ProtoBuf definition.
1169    ///
1170    /// The values are not transformed in any way and thus are considered stable
1171    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1172    pub fn as_str_name(&self) -> &'static str {
1173        match self {
1174            Self::Unspecified => "CAPTURE_KIND_UNSPECIFIED",
1175            Self::Url => "CAPTURE_KIND_URL",
1176            Self::InputValue => "CAPTURE_KIND_INPUT_VALUE",
1177            Self::SelectedOptions => "CAPTURE_KIND_SELECTED_OPTIONS",
1178            Self::SelectedText => "CAPTURE_KIND_SELECTED_TEXT",
1179            Self::Checked => "CAPTURE_KIND_CHECKED",
1180            Self::Attribute => "CAPTURE_KIND_ATTRIBUTE",
1181            Self::BoundingBox => "CAPTURE_KIND_BOUNDING_BOX",
1182        }
1183    }
1184    /// Creates an enum from field names used in the ProtoBuf definition.
1185    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1186        match value {
1187            "CAPTURE_KIND_UNSPECIFIED" => Some(Self::Unspecified),
1188            "CAPTURE_KIND_URL" => Some(Self::Url),
1189            "CAPTURE_KIND_INPUT_VALUE" => Some(Self::InputValue),
1190            "CAPTURE_KIND_SELECTED_OPTIONS" => Some(Self::SelectedOptions),
1191            "CAPTURE_KIND_SELECTED_TEXT" => Some(Self::SelectedText),
1192            "CAPTURE_KIND_CHECKED" => Some(Self::Checked),
1193            "CAPTURE_KIND_ATTRIBUTE" => Some(Self::Attribute),
1194            "CAPTURE_KIND_BOUNDING_BOX" => Some(Self::BoundingBox),
1195            _ => None,
1196        }
1197    }
1198}
1199/// Generated client implementations.
1200pub mod engine_service_client {
1201    #![allow(
1202        unused_variables,
1203        dead_code,
1204        missing_docs,
1205        clippy::wildcard_imports,
1206        clippy::let_unit_value,
1207    )]
1208    use tonic::codegen::*;
1209    use tonic::codegen::http::Uri;
1210    #[derive(Debug, Clone)]
1211    pub struct EngineServiceClient<T> {
1212        inner: tonic::client::Grpc<T>,
1213    }
1214    impl EngineServiceClient<tonic::transport::Channel> {
1215        /// Attempt to create a new client by connecting to a given endpoint.
1216        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1217        where
1218            D: TryInto<tonic::transport::Endpoint>,
1219            D::Error: Into<StdError>,
1220        {
1221            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1222            Ok(Self::new(conn))
1223        }
1224    }
1225    impl<T> EngineServiceClient<T>
1226    where
1227        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1228        T::Error: Into<StdError>,
1229        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1230        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1231    {
1232        pub fn new(inner: T) -> Self {
1233            let inner = tonic::client::Grpc::new(inner);
1234            Self { inner }
1235        }
1236        pub fn with_origin(inner: T, origin: Uri) -> Self {
1237            let inner = tonic::client::Grpc::with_origin(inner, origin);
1238            Self { inner }
1239        }
1240        pub fn with_interceptor<F>(
1241            inner: T,
1242            interceptor: F,
1243        ) -> EngineServiceClient<InterceptedService<T, F>>
1244        where
1245            F: tonic::service::Interceptor,
1246            T::ResponseBody: Default,
1247            T: tonic::codegen::Service<
1248                http::Request<tonic::body::BoxBody>,
1249                Response = http::Response<
1250                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1251                >,
1252            >,
1253            <T as tonic::codegen::Service<
1254                http::Request<tonic::body::BoxBody>,
1255            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1256        {
1257            EngineServiceClient::new(InterceptedService::new(inner, interceptor))
1258        }
1259        /// Compress requests with the given encoding.
1260        ///
1261        /// This requires the server to support it otherwise it might respond with an
1262        /// error.
1263        #[must_use]
1264        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1265            self.inner = self.inner.send_compressed(encoding);
1266            self
1267        }
1268        /// Enable decompressing responses.
1269        #[must_use]
1270        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1271            self.inner = self.inner.accept_compressed(encoding);
1272            self
1273        }
1274        /// Limits the maximum size of a decoded message.
1275        ///
1276        /// Default: `4MB`
1277        #[must_use]
1278        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1279            self.inner = self.inner.max_decoding_message_size(limit);
1280            self
1281        }
1282        /// Limits the maximum size of an encoded message.
1283        ///
1284        /// Default: `usize::MAX`
1285        #[must_use]
1286        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1287            self.inner = self.inner.max_encoding_message_size(limit);
1288            self
1289        }
1290        pub async fn ping(
1291            &mut self,
1292            request: impl tonic::IntoRequest<super::PingRequest>,
1293        ) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status> {
1294            self.inner
1295                .ready()
1296                .await
1297                .map_err(|e| {
1298                    tonic::Status::unknown(
1299                        format!("Service was not ready: {}", e.into()),
1300                    )
1301                })?;
1302            let codec = tonic::codec::ProstCodec::default();
1303            let path = http::uri::PathAndQuery::from_static(
1304                "/allwright.engine.v1.EngineService/Ping",
1305            );
1306            let mut req = request.into_request();
1307            req.extensions_mut()
1308                .insert(GrpcMethod::new("allwright.engine.v1.EngineService", "Ping"));
1309            self.inner.unary(req, path, codec).await
1310        }
1311        pub async fn surface_session(
1312            &mut self,
1313            request: impl tonic::IntoStreamingRequest<
1314                Message = super::SurfaceSessionCommand,
1315            >,
1316        ) -> std::result::Result<
1317            tonic::Response<tonic::codec::Streaming<super::SurfaceSessionEvent>>,
1318            tonic::Status,
1319        > {
1320            self.inner
1321                .ready()
1322                .await
1323                .map_err(|e| {
1324                    tonic::Status::unknown(
1325                        format!("Service was not ready: {}", e.into()),
1326                    )
1327                })?;
1328            let codec = tonic::codec::ProstCodec::default();
1329            let path = http::uri::PathAndQuery::from_static(
1330                "/allwright.engine.v1.EngineService/SurfaceSession",
1331            );
1332            let mut req = request.into_streaming_request();
1333            req.extensions_mut()
1334                .insert(
1335                    GrpcMethod::new(
1336                        "allwright.engine.v1.EngineService",
1337                        "SurfaceSession",
1338                    ),
1339                );
1340            self.inner.streaming(req, path, codec).await
1341        }
1342        pub async fn context_session(
1343            &mut self,
1344            request: impl tonic::IntoStreamingRequest<
1345                Message = super::ContextSessionCommand,
1346            >,
1347        ) -> std::result::Result<
1348            tonic::Response<tonic::codec::Streaming<super::ContextSessionEvent>>,
1349            tonic::Status,
1350        > {
1351            self.inner
1352                .ready()
1353                .await
1354                .map_err(|e| {
1355                    tonic::Status::unknown(
1356                        format!("Service was not ready: {}", e.into()),
1357                    )
1358                })?;
1359            let codec = tonic::codec::ProstCodec::default();
1360            let path = http::uri::PathAndQuery::from_static(
1361                "/allwright.engine.v1.EngineService/ContextSession",
1362            );
1363            let mut req = request.into_streaming_request();
1364            req.extensions_mut()
1365                .insert(
1366                    GrpcMethod::new(
1367                        "allwright.engine.v1.EngineService",
1368                        "ContextSession",
1369                    ),
1370                );
1371            self.inner.streaming(req, path, codec).await
1372        }
1373    }
1374}
1375/// Generated server implementations.
1376pub mod engine_service_server {
1377    #![allow(
1378        unused_variables,
1379        dead_code,
1380        missing_docs,
1381        clippy::wildcard_imports,
1382        clippy::let_unit_value,
1383    )]
1384    use tonic::codegen::*;
1385    /// Generated trait containing gRPC methods that should be implemented for use with EngineServiceServer.
1386    #[async_trait]
1387    pub trait EngineService: std::marker::Send + std::marker::Sync + 'static {
1388        async fn ping(
1389            &self,
1390            request: tonic::Request<super::PingRequest>,
1391        ) -> std::result::Result<tonic::Response<super::PingResponse>, tonic::Status>;
1392        /// Server streaming response type for the SurfaceSession method.
1393        type SurfaceSessionStream: tonic::codegen::tokio_stream::Stream<
1394                Item = std::result::Result<super::SurfaceSessionEvent, tonic::Status>,
1395            >
1396            + std::marker::Send
1397            + 'static;
1398        async fn surface_session(
1399            &self,
1400            request: tonic::Request<tonic::Streaming<super::SurfaceSessionCommand>>,
1401        ) -> std::result::Result<
1402            tonic::Response<Self::SurfaceSessionStream>,
1403            tonic::Status,
1404        >;
1405        /// Server streaming response type for the ContextSession method.
1406        type ContextSessionStream: tonic::codegen::tokio_stream::Stream<
1407                Item = std::result::Result<super::ContextSessionEvent, tonic::Status>,
1408            >
1409            + std::marker::Send
1410            + 'static;
1411        async fn context_session(
1412            &self,
1413            request: tonic::Request<tonic::Streaming<super::ContextSessionCommand>>,
1414        ) -> std::result::Result<
1415            tonic::Response<Self::ContextSessionStream>,
1416            tonic::Status,
1417        >;
1418    }
1419    #[derive(Debug)]
1420    pub struct EngineServiceServer<T> {
1421        inner: Arc<T>,
1422        accept_compression_encodings: EnabledCompressionEncodings,
1423        send_compression_encodings: EnabledCompressionEncodings,
1424        max_decoding_message_size: Option<usize>,
1425        max_encoding_message_size: Option<usize>,
1426    }
1427    impl<T> EngineServiceServer<T> {
1428        pub fn new(inner: T) -> Self {
1429            Self::from_arc(Arc::new(inner))
1430        }
1431        pub fn from_arc(inner: Arc<T>) -> Self {
1432            Self {
1433                inner,
1434                accept_compression_encodings: Default::default(),
1435                send_compression_encodings: Default::default(),
1436                max_decoding_message_size: None,
1437                max_encoding_message_size: None,
1438            }
1439        }
1440        pub fn with_interceptor<F>(
1441            inner: T,
1442            interceptor: F,
1443        ) -> InterceptedService<Self, F>
1444        where
1445            F: tonic::service::Interceptor,
1446        {
1447            InterceptedService::new(Self::new(inner), interceptor)
1448        }
1449        /// Enable decompressing requests with the given encoding.
1450        #[must_use]
1451        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1452            self.accept_compression_encodings.enable(encoding);
1453            self
1454        }
1455        /// Compress responses with the given encoding, if the client supports it.
1456        #[must_use]
1457        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1458            self.send_compression_encodings.enable(encoding);
1459            self
1460        }
1461        /// Limits the maximum size of a decoded message.
1462        ///
1463        /// Default: `4MB`
1464        #[must_use]
1465        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1466            self.max_decoding_message_size = Some(limit);
1467            self
1468        }
1469        /// Limits the maximum size of an encoded message.
1470        ///
1471        /// Default: `usize::MAX`
1472        #[must_use]
1473        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1474            self.max_encoding_message_size = Some(limit);
1475            self
1476        }
1477    }
1478    impl<T, B> tonic::codegen::Service<http::Request<B>> for EngineServiceServer<T>
1479    where
1480        T: EngineService,
1481        B: Body + std::marker::Send + 'static,
1482        B::Error: Into<StdError> + std::marker::Send + 'static,
1483    {
1484        type Response = http::Response<tonic::body::BoxBody>;
1485        type Error = std::convert::Infallible;
1486        type Future = BoxFuture<Self::Response, Self::Error>;
1487        fn poll_ready(
1488            &mut self,
1489            _cx: &mut Context<'_>,
1490        ) -> Poll<std::result::Result<(), Self::Error>> {
1491            Poll::Ready(Ok(()))
1492        }
1493        fn call(&mut self, req: http::Request<B>) -> Self::Future {
1494            match req.uri().path() {
1495                "/allwright.engine.v1.EngineService/Ping" => {
1496                    #[allow(non_camel_case_types)]
1497                    struct PingSvc<T: EngineService>(pub Arc<T>);
1498                    impl<
1499                        T: EngineService,
1500                    > tonic::server::UnaryService<super::PingRequest> for PingSvc<T> {
1501                        type Response = super::PingResponse;
1502                        type Future = BoxFuture<
1503                            tonic::Response<Self::Response>,
1504                            tonic::Status,
1505                        >;
1506                        fn call(
1507                            &mut self,
1508                            request: tonic::Request<super::PingRequest>,
1509                        ) -> Self::Future {
1510                            let inner = Arc::clone(&self.0);
1511                            let fut = async move {
1512                                <T as EngineService>::ping(&inner, request).await
1513                            };
1514                            Box::pin(fut)
1515                        }
1516                    }
1517                    let accept_compression_encodings = self.accept_compression_encodings;
1518                    let send_compression_encodings = self.send_compression_encodings;
1519                    let max_decoding_message_size = self.max_decoding_message_size;
1520                    let max_encoding_message_size = self.max_encoding_message_size;
1521                    let inner = self.inner.clone();
1522                    let fut = async move {
1523                        let method = PingSvc(inner);
1524                        let codec = tonic::codec::ProstCodec::default();
1525                        let mut grpc = tonic::server::Grpc::new(codec)
1526                            .apply_compression_config(
1527                                accept_compression_encodings,
1528                                send_compression_encodings,
1529                            )
1530                            .apply_max_message_size_config(
1531                                max_decoding_message_size,
1532                                max_encoding_message_size,
1533                            );
1534                        let res = grpc.unary(method, req).await;
1535                        Ok(res)
1536                    };
1537                    Box::pin(fut)
1538                }
1539                "/allwright.engine.v1.EngineService/SurfaceSession" => {
1540                    #[allow(non_camel_case_types)]
1541                    struct SurfaceSessionSvc<T: EngineService>(pub Arc<T>);
1542                    impl<
1543                        T: EngineService,
1544                    > tonic::server::StreamingService<super::SurfaceSessionCommand>
1545                    for SurfaceSessionSvc<T> {
1546                        type Response = super::SurfaceSessionEvent;
1547                        type ResponseStream = T::SurfaceSessionStream;
1548                        type Future = BoxFuture<
1549                            tonic::Response<Self::ResponseStream>,
1550                            tonic::Status,
1551                        >;
1552                        fn call(
1553                            &mut self,
1554                            request: tonic::Request<
1555                                tonic::Streaming<super::SurfaceSessionCommand>,
1556                            >,
1557                        ) -> Self::Future {
1558                            let inner = Arc::clone(&self.0);
1559                            let fut = async move {
1560                                <T as EngineService>::surface_session(&inner, request).await
1561                            };
1562                            Box::pin(fut)
1563                        }
1564                    }
1565                    let accept_compression_encodings = self.accept_compression_encodings;
1566                    let send_compression_encodings = self.send_compression_encodings;
1567                    let max_decoding_message_size = self.max_decoding_message_size;
1568                    let max_encoding_message_size = self.max_encoding_message_size;
1569                    let inner = self.inner.clone();
1570                    let fut = async move {
1571                        let method = SurfaceSessionSvc(inner);
1572                        let codec = tonic::codec::ProstCodec::default();
1573                        let mut grpc = tonic::server::Grpc::new(codec)
1574                            .apply_compression_config(
1575                                accept_compression_encodings,
1576                                send_compression_encodings,
1577                            )
1578                            .apply_max_message_size_config(
1579                                max_decoding_message_size,
1580                                max_encoding_message_size,
1581                            );
1582                        let res = grpc.streaming(method, req).await;
1583                        Ok(res)
1584                    };
1585                    Box::pin(fut)
1586                }
1587                "/allwright.engine.v1.EngineService/ContextSession" => {
1588                    #[allow(non_camel_case_types)]
1589                    struct ContextSessionSvc<T: EngineService>(pub Arc<T>);
1590                    impl<
1591                        T: EngineService,
1592                    > tonic::server::StreamingService<super::ContextSessionCommand>
1593                    for ContextSessionSvc<T> {
1594                        type Response = super::ContextSessionEvent;
1595                        type ResponseStream = T::ContextSessionStream;
1596                        type Future = BoxFuture<
1597                            tonic::Response<Self::ResponseStream>,
1598                            tonic::Status,
1599                        >;
1600                        fn call(
1601                            &mut self,
1602                            request: tonic::Request<
1603                                tonic::Streaming<super::ContextSessionCommand>,
1604                            >,
1605                        ) -> Self::Future {
1606                            let inner = Arc::clone(&self.0);
1607                            let fut = async move {
1608                                <T as EngineService>::context_session(&inner, request).await
1609                            };
1610                            Box::pin(fut)
1611                        }
1612                    }
1613                    let accept_compression_encodings = self.accept_compression_encodings;
1614                    let send_compression_encodings = self.send_compression_encodings;
1615                    let max_decoding_message_size = self.max_decoding_message_size;
1616                    let max_encoding_message_size = self.max_encoding_message_size;
1617                    let inner = self.inner.clone();
1618                    let fut = async move {
1619                        let method = ContextSessionSvc(inner);
1620                        let codec = tonic::codec::ProstCodec::default();
1621                        let mut grpc = tonic::server::Grpc::new(codec)
1622                            .apply_compression_config(
1623                                accept_compression_encodings,
1624                                send_compression_encodings,
1625                            )
1626                            .apply_max_message_size_config(
1627                                max_decoding_message_size,
1628                                max_encoding_message_size,
1629                            );
1630                        let res = grpc.streaming(method, req).await;
1631                        Ok(res)
1632                    };
1633                    Box::pin(fut)
1634                }
1635                _ => {
1636                    Box::pin(async move {
1637                        let mut response = http::Response::new(empty_body());
1638                        let headers = response.headers_mut();
1639                        headers
1640                            .insert(
1641                                tonic::Status::GRPC_STATUS,
1642                                (tonic::Code::Unimplemented as i32).into(),
1643                            );
1644                        headers
1645                            .insert(
1646                                http::header::CONTENT_TYPE,
1647                                tonic::metadata::GRPC_CONTENT_TYPE,
1648                            );
1649                        Ok(response)
1650                    })
1651                }
1652            }
1653        }
1654    }
1655    impl<T> Clone for EngineServiceServer<T> {
1656        fn clone(&self) -> Self {
1657            let inner = self.inner.clone();
1658            Self {
1659                inner,
1660                accept_compression_encodings: self.accept_compression_encodings,
1661                send_compression_encodings: self.send_compression_encodings,
1662                max_decoding_message_size: self.max_decoding_message_size,
1663                max_encoding_message_size: self.max_encoding_message_size,
1664            }
1665        }
1666    }
1667    /// Generated gRPC service name
1668    pub const SERVICE_NAME: &str = "allwright.engine.v1.EngineService";
1669    impl<T> tonic::server::NamedService for EngineServiceServer<T> {
1670        const NAME: &'static str = SERVICE_NAME;
1671    }
1672}