@onkernel/sdk 0.13.0 → 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/client.d.mts +5 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +5 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js +3 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +3 -0
  9. package/client.mjs.map +1 -1
  10. package/internal/to-file.d.mts +1 -1
  11. package/internal/to-file.d.ts +1 -1
  12. package/internal/to-file.js +1 -1
  13. package/internal/to-file.mjs +1 -1
  14. package/package.json +1 -1
  15. package/resources/browsers/browsers.d.mts +207 -1
  16. package/resources/browsers/browsers.d.mts.map +1 -1
  17. package/resources/browsers/browsers.d.ts +207 -1
  18. package/resources/browsers/browsers.d.ts.map +1 -1
  19. package/resources/browsers/browsers.js +20 -0
  20. package/resources/browsers/browsers.js.map +1 -1
  21. package/resources/browsers/browsers.mjs +20 -0
  22. package/resources/browsers/browsers.mjs.map +1 -1
  23. package/resources/browsers/index.d.mts +1 -1
  24. package/resources/browsers/index.d.mts.map +1 -1
  25. package/resources/browsers/index.d.ts +1 -1
  26. package/resources/browsers/index.d.ts.map +1 -1
  27. package/resources/browsers/index.js.map +1 -1
  28. package/resources/browsers/index.mjs.map +1 -1
  29. package/resources/extensions.d.mts +145 -0
  30. package/resources/extensions.d.mts.map +1 -0
  31. package/resources/extensions.d.ts +145 -0
  32. package/resources/extensions.d.ts.map +1 -0
  33. package/resources/extensions.js +94 -0
  34. package/resources/extensions.js.map +1 -0
  35. package/resources/extensions.mjs +90 -0
  36. package/resources/extensions.mjs.map +1 -0
  37. package/resources/index.d.mts +2 -1
  38. package/resources/index.d.mts.map +1 -1
  39. package/resources/index.d.ts +2 -1
  40. package/resources/index.d.ts.map +1 -1
  41. package/resources/index.js +3 -1
  42. package/resources/index.js.map +1 -1
  43. package/resources/index.mjs +1 -0
  44. package/resources/index.mjs.map +1 -1
  45. package/resources/proxies.d.mts +20 -28
  46. package/resources/proxies.d.mts.map +1 -1
  47. package/resources/proxies.d.ts +20 -28
  48. package/resources/proxies.d.ts.map +1 -1
  49. package/src/client.ts +19 -0
  50. package/src/internal/to-file.ts +1 -1
  51. package/src/resources/browsers/browsers.ts +239 -0
  52. package/src/resources/browsers/index.ts +1 -0
  53. package/src/resources/extensions.ts +200 -0
  54. package/src/resources/index.ts +8 -0
  55. package/src/resources/proxies.ts +20 -28
  56. package/src/version.ts +1 -1
  57. package/version.d.mts +1 -1
  58. package/version.d.ts +1 -1
  59. package/version.js +1 -1
  60. package/version.mjs +1 -1
@@ -48,8 +48,10 @@ import {
48
48
  Fs,
49
49
  } from './fs/fs';
50
50
  import { APIPromise } from '../../core/api-promise';
51
+ import { type Uploadable } from '../../core/uploads';
51
52
  import { buildHeaders } from '../../internal/headers';
52
53
  import { RequestOptions } from '../../internal/request-options';
54
+ import { multipartFormRequestOptions } from '../../internal/uploads';
53
55
  import { path } from '../../internal/utils/path';
54
56
 
55
57
  export class Browsers extends APIResource {
@@ -134,6 +136,32 @@ export class Browsers extends APIResource {
134
136
  headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
135
137
  });
136
138
  }
139
+
140
+ /**
141
+ * Loads one or more unpacked extensions and restarts Chromium on the browser
142
+ * instance.
143
+ *
144
+ * @example
145
+ * ```ts
146
+ * await client.browsers.loadExtensions('id', {
147
+ * extensions: [
148
+ * {
149
+ * name: 'name',
150
+ * zip_file: fs.createReadStream('path/to/file'),
151
+ * },
152
+ * ],
153
+ * });
154
+ * ```
155
+ */
156
+ loadExtensions(id: string, body: BrowserLoadExtensionsParams, options?: RequestOptions): APIPromise<void> {
157
+ return this._client.post(
158
+ path`/browsers/${id}/extensions`,
159
+ multipartFormRequestOptions(
160
+ { body, ...options, headers: buildHeaders([{ Accept: '*/*' }, options?.headers]) },
161
+ this._client,
162
+ ),
163
+ );
164
+ }
137
165
  }
138
166
 
139
167
  /**
@@ -227,6 +255,48 @@ export interface BrowserCreateResponse {
227
255
  * ID of the proxy associated with this browser session, if any.
228
256
  */
229
257
  proxy_id?: string;
258
+
259
+ /**
260
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
261
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
262
+ * configurations are supported. The server will reject unsupported combinations.
263
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
264
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
265
+ * automatically determined from the width and height if they match a supported
266
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
267
+ * live view browser
268
+ */
269
+ viewport?: BrowserCreateResponse.Viewport;
270
+ }
271
+
272
+ export namespace BrowserCreateResponse {
273
+ /**
274
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
275
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
276
+ * configurations are supported. The server will reject unsupported combinations.
277
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
278
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
279
+ * automatically determined from the width and height if they match a supported
280
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
281
+ * live view browser
282
+ */
283
+ export interface Viewport {
284
+ /**
285
+ * Browser window height in pixels.
286
+ */
287
+ height: number;
288
+
289
+ /**
290
+ * Browser window width in pixels.
291
+ */
292
+ width: number;
293
+
294
+ /**
295
+ * Display refresh rate in Hz. If omitted, automatically determined from width and
296
+ * height.
297
+ */
298
+ refresh_rate?: number;
299
+ }
230
300
  }
231
301
 
232
302
  export interface BrowserRetrieveResponse {
@@ -280,6 +350,48 @@ export interface BrowserRetrieveResponse {
280
350
  * ID of the proxy associated with this browser session, if any.
281
351
  */
282
352
  proxy_id?: string;
353
+
354
+ /**
355
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
356
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
357
+ * configurations are supported. The server will reject unsupported combinations.
358
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
359
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
360
+ * automatically determined from the width and height if they match a supported
361
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
362
+ * live view browser
363
+ */
364
+ viewport?: BrowserRetrieveResponse.Viewport;
365
+ }
366
+
367
+ export namespace BrowserRetrieveResponse {
368
+ /**
369
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
370
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
371
+ * configurations are supported. The server will reject unsupported combinations.
372
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
373
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
374
+ * automatically determined from the width and height if they match a supported
375
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
376
+ * live view browser
377
+ */
378
+ export interface Viewport {
379
+ /**
380
+ * Browser window height in pixels.
381
+ */
382
+ height: number;
383
+
384
+ /**
385
+ * Browser window width in pixels.
386
+ */
387
+ width: number;
388
+
389
+ /**
390
+ * Display refresh rate in Hz. If omitted, automatically determined from width and
391
+ * height.
392
+ */
393
+ refresh_rate?: number;
394
+ }
283
395
  }
284
396
 
285
397
  export type BrowserListResponse = Array<BrowserListResponse.BrowserListResponseItem>;
@@ -336,10 +448,57 @@ export namespace BrowserListResponse {
336
448
  * ID of the proxy associated with this browser session, if any.
337
449
  */
338
450
  proxy_id?: string;
451
+
452
+ /**
453
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
454
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
455
+ * configurations are supported. The server will reject unsupported combinations.
456
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
457
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
458
+ * automatically determined from the width and height if they match a supported
459
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
460
+ * live view browser
461
+ */
462
+ viewport?: BrowserListResponseItem.Viewport;
463
+ }
464
+
465
+ export namespace BrowserListResponseItem {
466
+ /**
467
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
468
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
469
+ * configurations are supported. The server will reject unsupported combinations.
470
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
471
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
472
+ * automatically determined from the width and height if they match a supported
473
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
474
+ * live view browser
475
+ */
476
+ export interface Viewport {
477
+ /**
478
+ * Browser window height in pixels.
479
+ */
480
+ height: number;
481
+
482
+ /**
483
+ * Browser window width in pixels.
484
+ */
485
+ width: number;
486
+
487
+ /**
488
+ * Display refresh rate in Hz. If omitted, automatically determined from width and
489
+ * height.
490
+ */
491
+ refresh_rate?: number;
492
+ }
339
493
  }
340
494
  }
341
495
 
342
496
  export interface BrowserCreateParams {
497
+ /**
498
+ * List of browser extensions to load into the session. Provide each by id or name.
499
+ */
500
+ extensions?: Array<BrowserCreateParams.Extension>;
501
+
343
502
  /**
344
503
  * If true, launches the browser using a headless image (no VNC/GUI). Defaults to
345
504
  * false.
@@ -384,9 +543,38 @@ export interface BrowserCreateParams {
384
543
  * specified value.
385
544
  */
386
545
  timeout_seconds?: number;
546
+
547
+ /**
548
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
549
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
550
+ * configurations are supported. The server will reject unsupported combinations.
551
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
552
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
553
+ * automatically determined from the width and height if they match a supported
554
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
555
+ * live view browser
556
+ */
557
+ viewport?: BrowserCreateParams.Viewport;
387
558
  }
388
559
 
389
560
  export namespace BrowserCreateParams {
561
+ /**
562
+ * Extension selection for the browser session. Provide either id or name of an
563
+ * extension uploaded to Kernel.
564
+ */
565
+ export interface Extension {
566
+ /**
567
+ * Extension ID to load for this browser session
568
+ */
569
+ id?: string;
570
+
571
+ /**
572
+ * Extension name to load for this browser session (instead of id). Must be 1-255
573
+ * characters, using letters, numbers, dots, underscores, or hyphens.
574
+ */
575
+ name?: string;
576
+ }
577
+
390
578
  /**
391
579
  * Profile selection for the browser session. Provide either id or name. If
392
580
  * specified, the matching profile will be loaded into the browser session.
@@ -410,6 +598,34 @@ export namespace BrowserCreateParams {
410
598
  */
411
599
  save_changes?: boolean;
412
600
  }
601
+
602
+ /**
603
+ * Initial browser window size in pixels with optional refresh rate. If omitted,
604
+ * image defaults apply (commonly 1024x768@60). Only specific viewport
605
+ * configurations are supported. The server will reject unsupported combinations.
606
+ * Supported resolutions are: 2560x1440@10, 1920x1080@25, 1920x1200@25,
607
+ * 1440x900@25, 1024x768@60 If refresh_rate is not provided, it will be
608
+ * automatically determined from the width and height if they match a supported
609
+ * configuration exactly. Note: Higher resolutions may affect the responsiveness of
610
+ * live view browser
611
+ */
612
+ export interface Viewport {
613
+ /**
614
+ * Browser window height in pixels.
615
+ */
616
+ height: number;
617
+
618
+ /**
619
+ * Browser window width in pixels.
620
+ */
621
+ width: number;
622
+
623
+ /**
624
+ * Display refresh rate in Hz. If omitted, automatically determined from width and
625
+ * height.
626
+ */
627
+ refresh_rate?: number;
628
+ }
413
629
  }
414
630
 
415
631
  export interface BrowserDeleteParams {
@@ -419,6 +635,28 @@ export interface BrowserDeleteParams {
419
635
  persistent_id: string;
420
636
  }
421
637
 
638
+ export interface BrowserLoadExtensionsParams {
639
+ /**
640
+ * List of extensions to upload and activate
641
+ */
642
+ extensions: Array<BrowserLoadExtensionsParams.Extension>;
643
+ }
644
+
645
+ export namespace BrowserLoadExtensionsParams {
646
+ export interface Extension {
647
+ /**
648
+ * Folder name to place the extension under /home/kernel/extensions/<name>
649
+ */
650
+ name: string;
651
+
652
+ /**
653
+ * Zip archive containing an unpacked Chromium extension (must include
654
+ * manifest.json)
655
+ */
656
+ zip_file: Uploadable;
657
+ }
658
+ }
659
+
422
660
  Browsers.Replays = Replays;
423
661
  Browsers.Fs = Fs;
424
662
  Browsers.Process = Process;
@@ -433,6 +671,7 @@ export declare namespace Browsers {
433
671
  type BrowserListResponse as BrowserListResponse,
434
672
  type BrowserCreateParams as BrowserCreateParams,
435
673
  type BrowserDeleteParams as BrowserDeleteParams,
674
+ type BrowserLoadExtensionsParams as BrowserLoadExtensionsParams,
436
675
  };
437
676
 
438
677
  export {
@@ -9,6 +9,7 @@ export {
9
9
  type BrowserListResponse,
10
10
  type BrowserCreateParams,
11
11
  type BrowserDeleteParams,
12
+ type BrowserLoadExtensionsParams,
12
13
  } from './browsers';
13
14
  export {
14
15
  Fs,
@@ -0,0 +1,200 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { type Uploadable } from '../core/uploads';
6
+ import { buildHeaders } from '../internal/headers';
7
+ import { RequestOptions } from '../internal/request-options';
8
+ import { multipartFormRequestOptions } from '../internal/uploads';
9
+ import { path } from '../internal/utils/path';
10
+
11
+ export class Extensions extends APIResource {
12
+ /**
13
+ * List extensions owned by the caller's organization.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const extensions = await client.extensions.list();
18
+ * ```
19
+ */
20
+ list(options?: RequestOptions): APIPromise<ExtensionListResponse> {
21
+ return this._client.get('/extensions', options);
22
+ }
23
+
24
+ /**
25
+ * Delete an extension by its ID or by its name.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * await client.extensions.delete('id_or_name');
30
+ * ```
31
+ */
32
+ delete(idOrName: string, options?: RequestOptions): APIPromise<void> {
33
+ return this._client.delete(path`/extensions/${idOrName}`, {
34
+ ...options,
35
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
36
+ });
37
+ }
38
+
39
+ /**
40
+ * Download the extension as a ZIP archive by ID or name.
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const response = await client.extensions.download(
45
+ * 'id_or_name',
46
+ * );
47
+ *
48
+ * const content = await response.blob();
49
+ * console.log(content);
50
+ * ```
51
+ */
52
+ download(idOrName: string, options?: RequestOptions): APIPromise<Response> {
53
+ return this._client.get(path`/extensions/${idOrName}`, {
54
+ ...options,
55
+ headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),
56
+ __binaryResponse: true,
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Returns a ZIP archive containing the unpacked extension fetched from the Chrome
62
+ * Web Store.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const response =
67
+ * await client.extensions.downloadFromChromeStore({
68
+ * url: 'url',
69
+ * });
70
+ *
71
+ * const content = await response.blob();
72
+ * console.log(content);
73
+ * ```
74
+ */
75
+ downloadFromChromeStore(
76
+ query: ExtensionDownloadFromChromeStoreParams,
77
+ options?: RequestOptions,
78
+ ): APIPromise<Response> {
79
+ return this._client.get('/extensions/from_chrome_store', {
80
+ query,
81
+ ...options,
82
+ headers: buildHeaders([{ Accept: 'application/octet-stream' }, options?.headers]),
83
+ __binaryResponse: true,
84
+ });
85
+ }
86
+
87
+ /**
88
+ * Upload a zip file containing an unpacked browser extension. Optionally provide a
89
+ * unique name for later reference.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const response = await client.extensions.upload({
94
+ * file: fs.createReadStream('path/to/file'),
95
+ * });
96
+ * ```
97
+ */
98
+ upload(body: ExtensionUploadParams, options?: RequestOptions): APIPromise<ExtensionUploadResponse> {
99
+ return this._client.post('/extensions', multipartFormRequestOptions({ body, ...options }, this._client));
100
+ }
101
+ }
102
+
103
+ export type ExtensionListResponse = Array<ExtensionListResponse.ExtensionListResponseItem>;
104
+
105
+ export namespace ExtensionListResponse {
106
+ /**
107
+ * A browser extension uploaded to Kernel.
108
+ */
109
+ export interface ExtensionListResponseItem {
110
+ /**
111
+ * Unique identifier for the extension
112
+ */
113
+ id: string;
114
+
115
+ /**
116
+ * Timestamp when the extension was created
117
+ */
118
+ created_at: string;
119
+
120
+ /**
121
+ * Size of the extension archive in bytes
122
+ */
123
+ size_bytes: number;
124
+
125
+ /**
126
+ * Timestamp when the extension was last used
127
+ */
128
+ last_used_at?: string | null;
129
+
130
+ /**
131
+ * Optional, easier-to-reference name for the extension. Must be unique within the
132
+ * organization.
133
+ */
134
+ name?: string | null;
135
+ }
136
+ }
137
+
138
+ /**
139
+ * A browser extension uploaded to Kernel.
140
+ */
141
+ export interface ExtensionUploadResponse {
142
+ /**
143
+ * Unique identifier for the extension
144
+ */
145
+ id: string;
146
+
147
+ /**
148
+ * Timestamp when the extension was created
149
+ */
150
+ created_at: string;
151
+
152
+ /**
153
+ * Size of the extension archive in bytes
154
+ */
155
+ size_bytes: number;
156
+
157
+ /**
158
+ * Timestamp when the extension was last used
159
+ */
160
+ last_used_at?: string | null;
161
+
162
+ /**
163
+ * Optional, easier-to-reference name for the extension. Must be unique within the
164
+ * organization.
165
+ */
166
+ name?: string | null;
167
+ }
168
+
169
+ export interface ExtensionDownloadFromChromeStoreParams {
170
+ /**
171
+ * Chrome Web Store URL for the extension.
172
+ */
173
+ url: string;
174
+
175
+ /**
176
+ * Target operating system for the extension package. Defaults to linux.
177
+ */
178
+ os?: 'win' | 'mac' | 'linux';
179
+ }
180
+
181
+ export interface ExtensionUploadParams {
182
+ /**
183
+ * ZIP file containing the browser extension.
184
+ */
185
+ file: Uploadable;
186
+
187
+ /**
188
+ * Optional unique name within the organization to reference this extension.
189
+ */
190
+ name?: string;
191
+ }
192
+
193
+ export declare namespace Extensions {
194
+ export {
195
+ type ExtensionListResponse as ExtensionListResponse,
196
+ type ExtensionUploadResponse as ExtensionUploadResponse,
197
+ type ExtensionDownloadFromChromeStoreParams as ExtensionDownloadFromChromeStoreParams,
198
+ type ExtensionUploadParams as ExtensionUploadParams,
199
+ };
200
+ }
@@ -11,6 +11,7 @@ export {
11
11
  type BrowserListResponse,
12
12
  type BrowserCreateParams,
13
13
  type BrowserDeleteParams,
14
+ type BrowserLoadExtensionsParams,
14
15
  } from './browsers/browsers';
15
16
  export {
16
17
  Deployments,
@@ -24,6 +25,13 @@ export {
24
25
  type DeploymentFollowParams,
25
26
  type DeploymentListResponsesOffsetPagination,
26
27
  } from './deployments';
28
+ export {
29
+ Extensions,
30
+ type ExtensionListResponse,
31
+ type ExtensionUploadResponse,
32
+ type ExtensionDownloadFromChromeStoreParams,
33
+ type ExtensionUploadParams,
34
+ } from './extensions';
27
35
  export {
28
36
  Invocations,
29
37
  type InvocationStateEvent,
@@ -88,7 +88,7 @@ export namespace ProxyCreateResponse {
88
88
  */
89
89
  export interface DatacenterProxyConfig {
90
90
  /**
91
- * ISO 3166 country code or EU for the proxy exit node.
91
+ * ISO 3166 country code.
92
92
  */
93
93
  country: string;
94
94
  }
@@ -98,7 +98,7 @@ export namespace ProxyCreateResponse {
98
98
  */
99
99
  export interface IspProxyConfig {
100
100
  /**
101
- * ISO 3166 country code or EU for the proxy exit node.
101
+ * ISO 3166 country code.
102
102
  */
103
103
  country: string;
104
104
  }
@@ -119,13 +119,12 @@ export namespace ProxyCreateResponse {
119
119
  city?: string;
120
120
 
121
121
  /**
122
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
123
- * provided.
122
+ * ISO 3166 country code.
124
123
  */
125
124
  country?: string;
126
125
 
127
126
  /**
128
- * Operating system of the residential device.
127
+ * @deprecated Operating system of the residential device.
129
128
  */
130
129
  os?: 'windows' | 'macos' | 'android';
131
130
 
@@ -219,8 +218,7 @@ export namespace ProxyCreateResponse {
219
218
  city?: string;
220
219
 
221
220
  /**
222
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
223
- * provided.
221
+ * ISO 3166 country code
224
222
  */
225
223
  country?: string;
226
224
 
@@ -310,7 +308,7 @@ export namespace ProxyRetrieveResponse {
310
308
  */
311
309
  export interface DatacenterProxyConfig {
312
310
  /**
313
- * ISO 3166 country code or EU for the proxy exit node.
311
+ * ISO 3166 country code.
314
312
  */
315
313
  country: string;
316
314
  }
@@ -320,7 +318,7 @@ export namespace ProxyRetrieveResponse {
320
318
  */
321
319
  export interface IspProxyConfig {
322
320
  /**
323
- * ISO 3166 country code or EU for the proxy exit node.
321
+ * ISO 3166 country code.
324
322
  */
325
323
  country: string;
326
324
  }
@@ -341,13 +339,12 @@ export namespace ProxyRetrieveResponse {
341
339
  city?: string;
342
340
 
343
341
  /**
344
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
345
- * provided.
342
+ * ISO 3166 country code.
346
343
  */
347
344
  country?: string;
348
345
 
349
346
  /**
350
- * Operating system of the residential device.
347
+ * @deprecated Operating system of the residential device.
351
348
  */
352
349
  os?: 'windows' | 'macos' | 'android';
353
350
 
@@ -441,8 +438,7 @@ export namespace ProxyRetrieveResponse {
441
438
  city?: string;
442
439
 
443
440
  /**
444
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
445
- * provided.
441
+ * ISO 3166 country code
446
442
  */
447
443
  country?: string;
448
444
 
@@ -535,7 +531,7 @@ export namespace ProxyListResponse {
535
531
  */
536
532
  export interface DatacenterProxyConfig {
537
533
  /**
538
- * ISO 3166 country code or EU for the proxy exit node.
534
+ * ISO 3166 country code.
539
535
  */
540
536
  country: string;
541
537
  }
@@ -545,7 +541,7 @@ export namespace ProxyListResponse {
545
541
  */
546
542
  export interface IspProxyConfig {
547
543
  /**
548
- * ISO 3166 country code or EU for the proxy exit node.
544
+ * ISO 3166 country code.
549
545
  */
550
546
  country: string;
551
547
  }
@@ -566,13 +562,12 @@ export namespace ProxyListResponse {
566
562
  city?: string;
567
563
 
568
564
  /**
569
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
570
- * provided.
565
+ * ISO 3166 country code.
571
566
  */
572
567
  country?: string;
573
568
 
574
569
  /**
575
- * Operating system of the residential device.
570
+ * @deprecated Operating system of the residential device.
576
571
  */
577
572
  os?: 'windows' | 'macos' | 'android';
578
573
 
@@ -666,8 +661,7 @@ export namespace ProxyListResponse {
666
661
  city?: string;
667
662
 
668
663
  /**
669
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
670
- * provided.
664
+ * ISO 3166 country code
671
665
  */
672
666
  country?: string;
673
667
 
@@ -743,7 +737,7 @@ export namespace ProxyCreateParams {
743
737
  */
744
738
  export interface DatacenterProxyConfig {
745
739
  /**
746
- * ISO 3166 country code or EU for the proxy exit node.
740
+ * ISO 3166 country code.
747
741
  */
748
742
  country: string;
749
743
  }
@@ -753,7 +747,7 @@ export namespace ProxyCreateParams {
753
747
  */
754
748
  export interface IspProxyConfig {
755
749
  /**
756
- * ISO 3166 country code or EU for the proxy exit node.
750
+ * ISO 3166 country code.
757
751
  */
758
752
  country: string;
759
753
  }
@@ -774,13 +768,12 @@ export namespace ProxyCreateParams {
774
768
  city?: string;
775
769
 
776
770
  /**
777
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
778
- * provided.
771
+ * ISO 3166 country code.
779
772
  */
780
773
  country?: string;
781
774
 
782
775
  /**
783
- * Operating system of the residential device.
776
+ * @deprecated Operating system of the residential device.
784
777
  */
785
778
  os?: 'windows' | 'macos' | 'android';
786
779
 
@@ -874,8 +867,7 @@ export namespace ProxyCreateParams {
874
867
  city?: string;
875
868
 
876
869
  /**
877
- * ISO 3166 country code or EU for the proxy exit node. Required if `city` is
878
- * provided.
870
+ * ISO 3166 country code
879
871
  */
880
872
  country?: string;
881
873