1use serde::{Serialize, Deserialize};
4use crate::browser::types::UserContext;
5use crate::browsing_context::types::BrowsingContext;
6use crate::EmptyResult;
7use super::types::*;
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10#[serde(untagged)]
11pub enum NetworkCommand {
12 AddDataCollector(AddDataCollector),
13 AddIntercept(AddIntercept),
14 ContinueRequest(ContinueRequest),
15 ContinueResponse(ContinueResponse),
16 ContinueWithAuth(ContinueWithAuth),
17 DisownData(DisownData),
18 FailRequest(FailRequest),
19 GetData(GetData),
20 ProvideResponse(ProvideResponse),
21 RemoveDataCollector(RemoveDataCollector),
22 RemoveIntercept(RemoveIntercept),
23 SetCacheBehavior(SetCacheBehavior),
24 SetExtraHeaders(SetExtraHeaders),
25}
26
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
29pub enum NetworkAddDataCollectorMethod {
30 #[serde(rename = "network.addDataCollector")]
31 NetworkAddDataCollector,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub enum NetworkAddInterceptMethod {
36 #[serde(rename = "network.addIntercept")]
37 NetworkAddIntercept,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
41pub enum NetworkContinueRequestMethod {
42 #[serde(rename = "network.continueRequest")]
43 NetworkContinueRequest,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
47pub enum NetworkContinueResponseMethod {
48 #[serde(rename = "network.continueResponse")]
49 NetworkContinueResponse,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
53pub enum NetworkContinueWithAuthMethod {
54 #[serde(rename = "network.continueWithAuth")]
55 NetworkContinueWithAuth,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
59pub enum NetworkDisownDataMethod {
60 #[serde(rename = "network.disownData")]
61 NetworkDisownData,
62}
63
64#[derive(Debug, Clone, Serialize, Deserialize)]
65pub enum NetworkFailRequestMethod {
66 #[serde(rename = "network.failRequest")]
67 NetworkFailRequest,
68}
69
70#[derive(Debug, Clone, Serialize, Deserialize)]
71pub enum NetworkGetDataMethod {
72 #[serde(rename = "network.getData")]
73 NetworkGetData,
74}
75
76#[derive(Debug, Clone, Serialize, Deserialize)]
77pub enum NetworkProvideResponseMethod {
78 #[serde(rename = "network.provideResponse")]
79 NetworkProvideResponse,
80}
81
82#[derive(Debug, Clone, Serialize, Deserialize)]
83pub enum NetworkRemoveDataCollectorMethod {
84 #[serde(rename = "network.removeDataCollector")]
85 NetworkRemoveDataCollector,
86}
87
88#[derive(Debug, Clone, Serialize, Deserialize)]
89pub enum NetworkRemoveInterceptMethod {
90 #[serde(rename = "network.removeIntercept")]
91 NetworkRemoveIntercept,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
95pub enum NetworkSetCacheBehaviorMethod {
96 #[serde(rename = "network.setCacheBehavior")]
97 NetworkSetCacheBehavior,
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
101pub enum NetworkSetExtraHeadersMethod {
102 #[serde(rename = "network.setExtraHeaders")]
103 NetworkSetExtraHeaders,
104}
105
106#[derive(Debug, Clone, Serialize, Deserialize)]
107pub struct AddDataCollectorParameters {
108 #[serde(rename = "dataTypes")]
109 pub data_types: Vec<DataType>,
110 #[serde(rename = "maxEncodedDataSize")]
111 pub max_encoded_data_size: u64,
112 #[serde(rename = "collectorType")]
113 #[serde(skip_serializing_if = "Option::is_none")]
114 pub collector_type: Option<CollectorType>,
115 #[serde(rename = "contexts")]
116 #[serde(skip_serializing_if = "Option::is_none")]
117 pub contexts: Option<Vec<BrowsingContext>>,
118 #[serde(rename = "userContexts")]
119 #[serde(skip_serializing_if = "Option::is_none")]
120 pub user_contexts: Option<Vec<UserContext>>,
121}
122
123#[derive(Debug, Clone, Serialize, Deserialize)]
124pub struct AddInterceptParameters {
125 #[serde(rename = "phases")]
126 pub phases: Vec<InterceptPhase>,
127 #[serde(rename = "contexts")]
128 #[serde(skip_serializing_if = "Option::is_none")]
129 pub contexts: Option<Vec<BrowsingContext>>,
130 #[serde(rename = "urlPatterns")]
131 #[serde(skip_serializing_if = "Option::is_none")]
132 pub url_patterns: Option<Vec<UrlPattern>>,
133}
134
135#[derive(Debug, Clone, Serialize, Deserialize)]
136pub struct ContinueRequestParameters {
137 #[serde(rename = "request")]
138 pub request: Request,
139 #[serde(rename = "body")]
140 #[serde(skip_serializing_if = "Option::is_none")]
141 pub body: Option<BytesValue>,
142 #[serde(rename = "cookies")]
143 #[serde(skip_serializing_if = "Option::is_none")]
144 pub cookies: Option<Vec<CookieHeader>>,
145 #[serde(rename = "headers")]
146 #[serde(skip_serializing_if = "Option::is_none")]
147 pub headers: Option<Vec<Header>>,
148 #[serde(rename = "method")]
149 #[serde(skip_serializing_if = "Option::is_none")]
150 pub method: Option<String>,
151 #[serde(rename = "url")]
152 #[serde(skip_serializing_if = "Option::is_none")]
153 pub url: Option<String>,
154}
155
156#[derive(Debug, Clone, Serialize, Deserialize)]
157pub struct ContinueResponseParameters {
158 #[serde(rename = "request")]
159 pub request: Request,
160 #[serde(rename = "cookies")]
161 #[serde(skip_serializing_if = "Option::is_none")]
162 pub cookies: Option<Vec<SetCookieHeader>>,
163 #[serde(rename = "credentials")]
164 #[serde(skip_serializing_if = "Option::is_none")]
165 pub credentials: Option<AuthCredentials>,
166 #[serde(rename = "headers")]
167 #[serde(skip_serializing_if = "Option::is_none")]
168 pub headers: Option<Vec<Header>>,
169 #[serde(rename = "reasonPhrase")]
170 #[serde(skip_serializing_if = "Option::is_none")]
171 pub reason_phrase: Option<String>,
172 #[serde(rename = "statusCode")]
173 #[serde(skip_serializing_if = "Option::is_none")]
174 pub status_code: Option<u64>,
175}
176
177#[derive(Debug, Clone, Serialize, Deserialize)]
178pub struct ContinueWithAuthParameters {
179 #[serde(rename = "request")]
180 pub request: Request,
181 #[serde(flatten)]
182 pub continue_with_auth_credentials_continue_with_auth_no_credentials_union: ContinueWithAuthCredentialsContinueWithAuthNoCredentialsUnion,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize)]
186pub struct DisownDataParameters {
187 #[serde(rename = "dataType")]
188 pub data_type: DataType,
189 #[serde(rename = "collector")]
190 pub collector: Collector,
191 #[serde(rename = "request")]
192 pub request: Request,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize)]
196pub struct FailRequestParameters {
197 #[serde(rename = "request")]
198 pub request: Request,
199}
200
201#[derive(Debug, Clone, Serialize, Deserialize)]
202pub struct GetDataParameters {
203 #[serde(rename = "dataType")]
204 pub data_type: DataType,
205 #[serde(rename = "collector")]
206 #[serde(skip_serializing_if = "Option::is_none")]
207 pub collector: Option<Collector>,
208 #[serde(rename = "disown")]
209 #[serde(skip_serializing_if = "Option::is_none")]
210 pub disown: Option<bool>,
211 #[serde(rename = "request")]
212 pub request: Request,
213}
214
215#[derive(Debug, Clone, Serialize, Deserialize)]
216pub struct ProvideResponseParameters {
217 #[serde(rename = "request")]
218 pub request: Request,
219 #[serde(rename = "body")]
220 #[serde(skip_serializing_if = "Option::is_none")]
221 pub body: Option<BytesValue>,
222 #[serde(rename = "cookies")]
223 #[serde(skip_serializing_if = "Option::is_none")]
224 pub cookies: Option<Vec<SetCookieHeader>>,
225 #[serde(rename = "headers")]
226 #[serde(skip_serializing_if = "Option::is_none")]
227 pub headers: Option<Vec<Header>>,
228 #[serde(rename = "reasonPhrase")]
229 #[serde(skip_serializing_if = "Option::is_none")]
230 pub reason_phrase: Option<String>,
231 #[serde(rename = "statusCode")]
232 #[serde(skip_serializing_if = "Option::is_none")]
233 pub status_code: Option<u64>,
234}
235
236#[derive(Debug, Clone, Serialize, Deserialize)]
237pub struct RemoveDataCollectorParameters {
238 #[serde(rename = "collector")]
239 pub collector: Collector,
240}
241
242#[derive(Debug, Clone, Serialize, Deserialize)]
243pub struct RemoveInterceptParameters {
244 #[serde(rename = "intercept")]
245 pub intercept: Intercept,
246}
247
248#[derive(Debug, Clone, Serialize, Deserialize)]
249pub struct SetCacheBehaviorParameters {
250 #[serde(rename = "cacheBehavior")]
251 pub cache_behavior: CacheBehaviorUnion,
252 #[serde(rename = "contexts")]
253 #[serde(skip_serializing_if = "Option::is_none")]
254 pub contexts: Option<Vec<BrowsingContext>>,
255}
256
257#[derive(Debug, Clone, Serialize, Deserialize)]
258pub struct SetExtraHeadersParameters {
259 #[serde(rename = "headers")]
260 pub headers: Vec<Header>,
261 #[serde(rename = "contexts")]
262 #[serde(skip_serializing_if = "Option::is_none")]
263 pub contexts: Option<Vec<BrowsingContext>>,
264 #[serde(rename = "userContexts")]
265 #[serde(skip_serializing_if = "Option::is_none")]
266 pub user_contexts: Option<Vec<UserContext>>,
267}
268
269#[derive(Debug, Clone, Serialize, Deserialize)]
270pub struct AddDataCollector {
271 #[serde(rename = "method")]
272 pub method: NetworkAddDataCollectorMethod,
273 #[serde(rename = "params")]
274 pub params: AddDataCollectorParameters,
275}
276
277#[derive(Debug, Clone, Serialize, Deserialize)]
278pub struct AddIntercept {
279 #[serde(rename = "method")]
280 pub method: NetworkAddInterceptMethod,
281 #[serde(rename = "params")]
282 pub params: AddInterceptParameters,
283}
284
285#[derive(Debug, Clone, Serialize, Deserialize)]
286pub struct ContinueRequest {
287 #[serde(rename = "method")]
288 pub method: NetworkContinueRequestMethod,
289 #[serde(rename = "params")]
290 pub params: ContinueRequestParameters,
291}
292
293#[derive(Debug, Clone, Serialize, Deserialize)]
294pub struct ContinueResponse {
295 #[serde(rename = "method")]
296 pub method: NetworkContinueResponseMethod,
297 #[serde(rename = "params")]
298 pub params: ContinueResponseParameters,
299}
300
301#[derive(Debug, Clone, Serialize, Deserialize)]
302pub struct ContinueWithAuth {
303 #[serde(rename = "method")]
304 pub method: NetworkContinueWithAuthMethod,
305 #[serde(rename = "params")]
306 pub params: ContinueWithAuthParameters,
307}
308
309#[derive(Debug, Clone, Serialize, Deserialize)]
310pub struct DisownData {
311 #[serde(rename = "method")]
312 pub method: NetworkDisownDataMethod,
313 #[serde(rename = "params")]
314 pub params: DisownDataParameters,
315}
316
317#[derive(Debug, Clone, Serialize, Deserialize)]
318pub struct FailRequest {
319 #[serde(rename = "method")]
320 pub method: NetworkFailRequestMethod,
321 #[serde(rename = "params")]
322 pub params: FailRequestParameters,
323}
324
325#[derive(Debug, Clone, Serialize, Deserialize)]
326pub struct GetData {
327 #[serde(rename = "method")]
328 pub method: NetworkGetDataMethod,
329 #[serde(rename = "params")]
330 pub params: GetDataParameters,
331}
332
333#[derive(Debug, Clone, Serialize, Deserialize)]
334pub struct ProvideResponse {
335 #[serde(rename = "method")]
336 pub method: NetworkProvideResponseMethod,
337 #[serde(rename = "params")]
338 pub params: ProvideResponseParameters,
339}
340
341#[derive(Debug, Clone, Serialize, Deserialize)]
342pub struct RemoveDataCollector {
343 #[serde(rename = "method")]
344 pub method: NetworkRemoveDataCollectorMethod,
345 #[serde(rename = "params")]
346 pub params: RemoveDataCollectorParameters,
347}
348
349#[derive(Debug, Clone, Serialize, Deserialize)]
350pub struct RemoveIntercept {
351 #[serde(rename = "method")]
352 pub method: NetworkRemoveInterceptMethod,
353 #[serde(rename = "params")]
354 pub params: RemoveInterceptParameters,
355}
356
357#[derive(Debug, Clone, Serialize, Deserialize)]
358pub struct SetCacheBehavior {
359 #[serde(rename = "method")]
360 pub method: NetworkSetCacheBehaviorMethod,
361 #[serde(rename = "params")]
362 pub params: SetCacheBehaviorParameters,
363}
364
365#[derive(Debug, Clone, Serialize, Deserialize)]
366pub struct SetExtraHeaders {
367 #[serde(rename = "method")]
368 pub method: NetworkSetExtraHeadersMethod,
369 #[serde(rename = "params")]
370 pub params: SetExtraHeadersParameters,
371}
372
373#[derive(Debug, Clone, Serialize, Deserialize)]
376#[serde(untagged)]
377pub enum NetworkResult {
378 AddDataCollectorResult(AddDataCollectorResult),
379 AddInterceptResult(AddInterceptResult),
380 ContinueRequestResult(ContinueRequestResult),
381 ContinueResponseResult(ContinueResponseResult),
382 ContinueWithAuthResult(ContinueWithAuthResult),
383 DisownDataResult(DisownDataResult),
384 FailRequestResult(FailRequestResult),
385 GetDataResult(GetDataResult),
386 ProvideResponseResult(ProvideResponseResult),
387 RemoveDataCollectorResult(RemoveDataCollectorResult),
388 RemoveInterceptResult(RemoveInterceptResult),
389 SetCacheBehaviorResult(SetCacheBehaviorResult),
390 SetExtraHeadersResult(SetExtraHeadersResult),
391}
392
393
394#[derive(Debug, Clone, Serialize, Deserialize)]
395pub struct AddDataCollectorResult {
396 #[serde(rename = "collector")]
397 pub collector: Collector,
398}
399
400#[derive(Debug, Clone, Serialize, Deserialize)]
401pub struct AddInterceptResult {
402 #[serde(rename = "intercept")]
403 pub intercept: Intercept,
404}
405
406pub type ContinueRequestResult = EmptyResult;
407
408
409pub type ContinueResponseResult = EmptyResult;
410
411
412pub type ContinueWithAuthResult = EmptyResult;
413
414
415pub type DisownDataResult = EmptyResult;
416
417
418pub type FailRequestResult = EmptyResult;
419
420
421#[derive(Debug, Clone, Serialize, Deserialize)]
422pub struct GetDataResult {
423 #[serde(rename = "bytes")]
424 pub bytes: BytesValue,
425}
426
427pub type ProvideResponseResult = EmptyResult;
428
429
430pub type RemoveDataCollectorResult = EmptyResult;
431
432
433pub type RemoveInterceptResult = EmptyResult;
434
435
436pub type SetCacheBehaviorResult = EmptyResult;
437
438
439pub type SetExtraHeadersResult = EmptyResult;
440
441