kernel 0.88.0__tar.gz → 0.89.0__tar.gz

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 (380) hide show
  1. kernel-0.89.0/.release-please-manifest.json +3 -0
  2. {kernel-0.88.0 → kernel-0.89.0}/CHANGELOG.md +9 -0
  3. {kernel-0.88.0 → kernel-0.89.0}/PKG-INFO +3 -3
  4. {kernel-0.88.0 → kernel-0.89.0}/README.md +2 -2
  5. {kernel-0.88.0 → kernel-0.89.0}/api.md +1 -0
  6. {kernel-0.88.0 → kernel-0.89.0}/pyproject.toml +1 -1
  7. {kernel-0.88.0 → kernel-0.89.0}/release-please-config.json +1 -0
  8. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_version.py +1 -1
  9. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browser_pools.py +46 -0
  10. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/browsers.py +29 -0
  11. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/organization/limits.py +2 -10
  12. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/__init__.py +2 -0
  13. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_create_params.py +15 -1
  14. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_create_response.py +11 -0
  15. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_list_params.py +3 -0
  16. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_list_response.py +11 -0
  17. kernel-0.89.0/src/kernel/types/browser_network_config.py +37 -0
  18. kernel-0.89.0/src/kernel/types/browser_network_config_param.py +39 -0
  19. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool.py +11 -0
  20. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_acquire_response.py +11 -0
  21. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_create_params.py +12 -1
  22. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_list_params.py +4 -1
  23. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_update_params.py +10 -0
  24. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_retrieve_response.py +11 -0
  25. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_update_response.py +11 -0
  26. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_list_browsers_response.py +11 -0
  27. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/organization/org_limits.py +21 -0
  28. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_browser_pools.py +8 -0
  29. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_browsers.py +6 -0
  30. {kernel-0.88.0 → kernel-0.89.0}/tests/test_browser_routing.py +1 -0
  31. kernel-0.88.0/.release-please-manifest.json +0 -3
  32. {kernel-0.88.0 → kernel-0.89.0}/.gitignore +0 -0
  33. {kernel-0.88.0 → kernel-0.89.0}/CONTRIBUTING.md +0 -0
  34. {kernel-0.88.0 → kernel-0.89.0}/LICENSE +0 -0
  35. {kernel-0.88.0 → kernel-0.89.0}/SECURITY.md +0 -0
  36. {kernel-0.88.0 → kernel-0.89.0}/bin/check-release-environment +0 -0
  37. {kernel-0.88.0 → kernel-0.89.0}/bin/publish-pypi +0 -0
  38. {kernel-0.88.0 → kernel-0.89.0}/examples/.keep +0 -0
  39. {kernel-0.88.0 → kernel-0.89.0}/examples/browser_routing.py +0 -0
  40. {kernel-0.88.0 → kernel-0.89.0}/examples/browser_telemetry.py +0 -0
  41. {kernel-0.88.0 → kernel-0.89.0}/noxfile.py +0 -0
  42. {kernel-0.88.0 → kernel-0.89.0}/requirements-dev.lock +0 -0
  43. {kernel-0.88.0 → kernel-0.89.0}/requirements.lock +0 -0
  44. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/__init__.py +0 -0
  45. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_base_client.py +0 -0
  46. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_client.py +0 -0
  47. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_compat.py +0 -0
  48. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_constants.py +0 -0
  49. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_exceptions.py +0 -0
  50. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_files.py +0 -0
  51. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_models.py +0 -0
  52. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_qs.py +0 -0
  53. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_resource.py +0 -0
  54. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_response.py +0 -0
  55. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_streaming.py +0 -0
  56. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_types.py +0 -0
  57. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/__init__.py +0 -0
  58. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_compat.py +0 -0
  59. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  60. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_json.py +0 -0
  61. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_logs.py +0 -0
  62. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_path.py +0 -0
  63. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_proxy.py +0 -0
  64. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_reflection.py +0 -0
  65. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  66. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_streams.py +0 -0
  67. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_sync.py +0 -0
  68. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_transform.py +0 -0
  69. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_typing.py +0 -0
  70. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/_utils/_utils.py +0 -0
  71. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/app_framework.py +0 -0
  72. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/.keep +0 -0
  73. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/audit_log_download.py +0 -0
  74. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
  75. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
  76. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/browser_routing/routing.py +0 -0
  77. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/lib/browser_routing/util.py +0 -0
  78. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/pagination.py +0 -0
  79. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/py.typed +0 -0
  80. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/__init__.py +0 -0
  81. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/api_keys.py +0 -0
  82. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/apps.py +0 -0
  83. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/audit_logs/__init__.py +0 -0
  84. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/audit_logs/audit_logs.py +0 -0
  85. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/audit_logs/export_destinations.py +0 -0
  86. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/auth/__init__.py +0 -0
  87. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/auth/auth.py +0 -0
  88. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/auth/connections.py +0 -0
  89. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/auth/context.py +0 -0
  90. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/__init__.py +0 -0
  91. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/computer.py +0 -0
  92. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  93. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  94. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  95. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/logs.py +0 -0
  96. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/playwright.py +0 -0
  97. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/process.py +0 -0
  98. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/replays.py +0 -0
  99. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/browsers/telemetry.py +0 -0
  100. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/credential_providers.py +0 -0
  101. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/credentials.py +0 -0
  102. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/deployments.py +0 -0
  103. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/extensions.py +0 -0
  104. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/invocations.py +0 -0
  105. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/organization/__init__.py +0 -0
  106. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/organization/organization.py +0 -0
  107. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/profiles.py +0 -0
  108. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/projects/__init__.py +0 -0
  109. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/projects/limits.py +0 -0
  110. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/projects/projects.py +0 -0
  111. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/resources/proxies.py +0 -0
  112. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key.py +0 -0
  113. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key_create_params.py +0 -0
  114. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key_list_params.py +0 -0
  115. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key_retrieve_params.py +0 -0
  116. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key_rotate_params.py +0 -0
  117. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/api_key_update_params.py +0 -0
  118. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/app_list_params.py +0 -0
  119. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/app_list_response.py +0 -0
  120. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_log_entry.py +0 -0
  121. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_log_export_chunk_params.py +0 -0
  122. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_log_list_params.py +0 -0
  123. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/__init__.py +0 -0
  124. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/audit_log_export_destination.py +0 -0
  125. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/audit_log_export_destination_test_result.py +0 -0
  126. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/export_destination_create_params.py +0 -0
  127. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/export_destination_list_params.py +0 -0
  128. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/audit_logs/export_destination_update_params.py +0 -0
  129. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/__init__.py +0 -0
  130. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/auth_context.py +0 -0
  131. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_create_params.py +0 -0
  132. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
  133. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  134. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_login_params.py +0 -0
  135. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  136. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_timeline_params.py +0 -0
  137. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/connection_update_params.py +0 -0
  138. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/login_response.py +0 -0
  139. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/managed_auth.py +0 -0
  140. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/managed_auth_browser_config.py +0 -0
  141. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/managed_auth_browser_config_param.py +0 -0
  142. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/managed_auth_timeline_event.py +0 -0
  143. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  144. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_curl_params.py +0 -0
  145. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_curl_response.py +0 -0
  146. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  147. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  148. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  149. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_ref.py +0 -0
  150. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  151. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_proxy.py +0 -0
  152. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_proxy_config.py +0 -0
  153. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_proxy_config_param.py +0 -0
  154. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_proxy_mode.py +0 -0
  155. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  156. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_update_params.py +0 -0
  157. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browser_usage.py +0 -0
  158. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/__init__.py +0 -0
  159. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_api_call_event.py +0 -0
  160. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_call_stack.py +0 -0
  161. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_captcha_solve_result_event.py +0 -0
  162. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_cdp_connect_event.py +0 -0
  163. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_cdp_disconnect_event.py +0 -0
  164. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_console_error_event.py +0 -0
  165. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_console_log_event.py +0 -0
  166. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_event_context.py +0 -0
  167. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_event_source.py +0 -0
  168. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_http_headers.py +0 -0
  169. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_interaction_click_event.py +0 -0
  170. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_interaction_key_event.py +0 -0
  171. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_interaction_scroll_settled_event.py +0 -0
  172. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_live_view_connect_event.py +0 -0
  173. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_live_view_disconnect_event.py +0 -0
  174. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_monitor_disconnected_event.py +0 -0
  175. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_monitor_init_failed_event.py +0 -0
  176. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_monitor_reconnect_failed_event.py +0 -0
  177. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_monitor_reconnected_event.py +0 -0
  178. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_monitor_screenshot_event.py +0 -0
  179. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_network_idle_event.py +0 -0
  180. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_network_loading_failed_event.py +0 -0
  181. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_network_request_event.py +0 -0
  182. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_network_response_event.py +0 -0
  183. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_dom_content_loaded_event.py +0 -0
  184. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_layout_settled_event.py +0 -0
  185. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_layout_shift_event.py +0 -0
  186. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_lcp_event.py +0 -0
  187. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_load_event.py +0 -0
  188. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_navigation_event.py +0 -0
  189. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_navigation_settled_event.py +0 -0
  190. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_page_tab_opened_event.py +0 -0
  191. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_service_crashed_event.py +0 -0
  192. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_system_oom_kill_event.py +0 -0
  193. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_categories_config.py +0 -0
  194. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_categories_config_param.py +0 -0
  195. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_category_config.py +0 -0
  196. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_category_config_param.py +0 -0
  197. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_config.py +0 -0
  198. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_event.py +0 -0
  199. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_export_config.py +0 -0
  200. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/browser_telemetry_otlp_export_config.py +0 -0
  201. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  202. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  203. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  204. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  205. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  206. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  207. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  208. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  209. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  210. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  211. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  212. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  213. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  214. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  215. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  216. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  217. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  218. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  219. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  220. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  221. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  222. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  223. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  224. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  225. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  226. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  227. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  228. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  229. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  230. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  231. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  232. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  233. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  234. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  235. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  236. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  237. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  238. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  239. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  240. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  241. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  242. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  243. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  244. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  245. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  246. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  247. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  248. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
  249. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  250. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/telemetry_events_params.py +0 -0
  251. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/telemetry_events_response.py +0 -0
  252. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/telemetry_stream_params.py +0 -0
  253. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/browsers/telemetry_stream_response.py +0 -0
  254. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/created_api_key.py +0 -0
  255. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential.py +0 -0
  256. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_create_params.py +0 -0
  257. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_list_params.py +0 -0
  258. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider.py +0 -0
  259. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  260. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_item.py +0 -0
  261. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  262. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_list_params.py +0 -0
  263. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  264. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  265. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  266. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/credential_update_params.py +0 -0
  267. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_create_params.py +0 -0
  268. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_create_response.py +0 -0
  269. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_follow_params.py +0 -0
  270. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_follow_response.py +0 -0
  271. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_list_params.py +0 -0
  272. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_list_response.py +0 -0
  273. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  274. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/deployment_state_event.py +0 -0
  275. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  276. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_get_response.py +0 -0
  277. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_list_params.py +0 -0
  278. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_list_response.py +0 -0
  279. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_upload_params.py +0 -0
  280. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/extension_upload_response.py +0 -0
  281. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_create_params.py +0 -0
  282. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_create_response.py +0 -0
  283. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_follow_params.py +0 -0
  284. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_follow_response.py +0 -0
  285. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_list_params.py +0 -0
  286. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_list_response.py +0 -0
  287. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  288. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_state_event.py +0 -0
  289. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_update_params.py +0 -0
  290. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/invocation_update_response.py +0 -0
  291. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/organization/__init__.py +0 -0
  292. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/organization/limit_update_params.py +0 -0
  293. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/profile.py +0 -0
  294. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/profile_create_params.py +0 -0
  295. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/profile_download_params.py +0 -0
  296. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/profile_list_params.py +0 -0
  297. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/profile_update_params.py +0 -0
  298. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/project.py +0 -0
  299. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/project_create_params.py +0 -0
  300. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/project_list_params.py +0 -0
  301. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/project_update_params.py +0 -0
  302. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/projects/__init__.py +0 -0
  303. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/projects/limit_update_params.py +0 -0
  304. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/projects/project_limits.py +0 -0
  305. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_check_params.py +0 -0
  306. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_check_response.py +0 -0
  307. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_create_params.py +0 -0
  308. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_create_response.py +0 -0
  309. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_list_params.py +0 -0
  310. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_list_response.py +0 -0
  311. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  312. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_update_params.py +0 -0
  313. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/proxy_update_response.py +0 -0
  314. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/__init__.py +0 -0
  315. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/app_action.py +0 -0
  316. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/browser_extension.py +0 -0
  317. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/browser_profile.py +0 -0
  318. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  319. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/error_detail.py +0 -0
  320. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/error_event.py +0 -0
  321. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/error_model.py +0 -0
  322. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  323. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared/log_event.py +0 -0
  324. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared_params/__init__.py +0 -0
  325. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  326. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  327. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  328. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/tags.py +0 -0
  329. {kernel-0.88.0 → kernel-0.89.0}/src/kernel/types/tags_param.py +0 -0
  330. {kernel-0.88.0 → kernel-0.89.0}/tests/__init__.py +0 -0
  331. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/__init__.py +0 -0
  332. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/audit_logs/__init__.py +0 -0
  333. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/audit_logs/test_export_destinations.py +0 -0
  334. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/auth/__init__.py +0 -0
  335. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/auth/test_connections.py +0 -0
  336. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/auth/test_context.py +0 -0
  337. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/__init__.py +0 -0
  338. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  339. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  340. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_computer.py +0 -0
  341. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_fs.py +0 -0
  342. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_logs.py +0 -0
  343. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  344. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_process.py +0 -0
  345. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_replays.py +0 -0
  346. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/browsers/test_telemetry.py +0 -0
  347. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/organization/__init__.py +0 -0
  348. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/organization/test_limits.py +0 -0
  349. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/projects/__init__.py +0 -0
  350. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/projects/test_limits.py +0 -0
  351. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_api_keys.py +0 -0
  352. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_apps.py +0 -0
  353. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_audit_logs.py +0 -0
  354. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_credential_providers.py +0 -0
  355. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_credentials.py +0 -0
  356. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_deployments.py +0 -0
  357. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_extensions.py +0 -0
  358. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_invocations.py +0 -0
  359. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_profiles.py +0 -0
  360. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_projects.py +0 -0
  361. {kernel-0.88.0 → kernel-0.89.0}/tests/api_resources/test_proxies.py +0 -0
  362. {kernel-0.88.0 → kernel-0.89.0}/tests/conftest.py +0 -0
  363. {kernel-0.88.0 → kernel-0.89.0}/tests/sample_file.txt +0 -0
  364. {kernel-0.88.0 → kernel-0.89.0}/tests/test_audit_log_download.py +0 -0
  365. {kernel-0.88.0 → kernel-0.89.0}/tests/test_client.py +0 -0
  366. {kernel-0.88.0 → kernel-0.89.0}/tests/test_extract_files.py +0 -0
  367. {kernel-0.88.0 → kernel-0.89.0}/tests/test_files.py +0 -0
  368. {kernel-0.88.0 → kernel-0.89.0}/tests/test_models.py +0 -0
  369. {kernel-0.88.0 → kernel-0.89.0}/tests/test_pagination.py +0 -0
  370. {kernel-0.88.0 → kernel-0.89.0}/tests/test_qs.py +0 -0
  371. {kernel-0.88.0 → kernel-0.89.0}/tests/test_required_args.py +0 -0
  372. {kernel-0.88.0 → kernel-0.89.0}/tests/test_response.py +0 -0
  373. {kernel-0.88.0 → kernel-0.89.0}/tests/test_streaming.py +0 -0
  374. {kernel-0.88.0 → kernel-0.89.0}/tests/test_transform.py +0 -0
  375. {kernel-0.88.0 → kernel-0.89.0}/tests/test_utils/test_datetime_parse.py +0 -0
  376. {kernel-0.88.0 → kernel-0.89.0}/tests/test_utils/test_json.py +0 -0
  377. {kernel-0.88.0 → kernel-0.89.0}/tests/test_utils/test_path.py +0 -0
  378. {kernel-0.88.0 → kernel-0.89.0}/tests/test_utils/test_proxy.py +0 -0
  379. {kernel-0.88.0 → kernel-0.89.0}/tests/test_utils/test_typing.py +0 -0
  380. {kernel-0.88.0 → kernel-0.89.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.89.0"
3
+ }
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.89.0](https://github.com/kernel/kernel-python-sdk/compare/v0.88.0...v0.89.0) (2026-08-12)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add region as a first-class API field with plan and flag gating ([fdb020d](https://github.com/kernel/kernel-python-sdk/commit/fdb020d437b3b410b2d5758691f2818d5e744580))
9
+ * Add typed network config with private_hosts to browsers and pools ([b30c0e3](https://github.com/kernel/kernel-python-sdk/commit/b30c0e31182f09247bbf32823c256e27725fdbfc))
10
+ * Expose plan-derived auth limits on GET /org/limits ([9ff1b44](https://github.com/kernel/kernel-python-sdk/commit/9ff1b445f8f2bb3f9bb24f613e22c8b940fc1d5a))
11
+
3
12
  ## [0.88.0](https://github.com/kernel/kernel-python-sdk/compare/v0.87.0...v0.88.0) (2026-08-10)
4
13
 
5
14
  ### Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.88.0
3
+ Version: 0.89.0
4
4
  Summary: The official Python library for the kernel API
5
5
  Project-URL: Homepage, https://github.com/kernel/kernel-python-sdk
6
6
  Project-URL: Repository, https://github.com/kernel/kernel-python-sdk
@@ -238,9 +238,9 @@ from kernel import Kernel
238
238
  client = Kernel()
239
239
 
240
240
  browser = client.browsers.create(
241
- profile={},
241
+ network={},
242
242
  )
243
- print(browser.profile)
243
+ print(browser.network)
244
244
  ```
245
245
 
246
246
  ## File uploads
@@ -203,9 +203,9 @@ from kernel import Kernel
203
203
  client = Kernel()
204
204
 
205
205
  browser = client.browsers.create(
206
- profile={},
206
+ network={},
207
207
  )
208
- print(browser.profile)
208
+ print(browser.network)
209
209
  ```
210
210
 
211
211
  ## File uploads
@@ -80,6 +80,7 @@ Types:
80
80
 
81
81
  ```python
82
82
  from kernel.types import (
83
+ BrowserNetworkConfig,
83
84
  BrowserPoolRef,
84
85
  BrowserProxy,
85
86
  BrowserProxyConfig,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.88.0"
3
+ version = "0.89.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -10,6 +10,7 @@
10
10
  "bump-minor-pre-major": true,
11
11
  "bump-patch-for-minor-pre-major": false,
12
12
  "pull-request-header": "Automated Release PR",
13
+ "pull-request-footer": "Merge this pull request with a merge commit. Merging creates the GitHub release and publishes the package.",
13
14
  "pull-request-title-pattern": "release: ${version}",
14
15
  "changelog-sections": [
15
16
  {
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "kernel"
4
- __version__ = "0.88.0" # x-release-please-version
4
+ __version__ = "0.89.0" # x-release-please-version
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, Iterable, Optional
6
+ from typing_extensions import Literal
6
7
 
7
8
  import httpx
8
9
 
@@ -28,6 +29,7 @@ from ..pagination import SyncOffsetPagination, AsyncOffsetPagination
28
29
  from .._base_client import AsyncPaginator, make_request_options
29
30
  from ..types.tags_param import TagsParam
30
31
  from ..types.browser_pool import BrowserPool
32
+ from ..types.browser_network_config_param import BrowserNetworkConfigParam
31
33
  from ..types.browser_pool_acquire_response import BrowserPoolAcquireResponse
32
34
  from ..types.shared_params.browser_viewport import BrowserViewport
33
35
  from ..types.shared_params.browser_extension import BrowserExtension
@@ -67,9 +69,11 @@ class BrowserPoolsResource(SyncAPIResource):
67
69
  headless: bool | Omit = omit,
68
70
  kiosk_mode: bool | Omit = omit,
69
71
  name: str | Omit = omit,
72
+ network: BrowserNetworkConfigParam | Omit = omit,
70
73
  profile: browser_pool_create_params.Profile | Omit = omit,
71
74
  proxy_id: str | Omit = omit,
72
75
  refresh_on_profile_update: bool | Omit = omit,
76
+ region: Literal["us-east", "eu-west"] | Omit = omit,
73
77
  start_url: str | Omit = omit,
74
78
  stealth: bool | Omit = omit,
75
79
  telemetry: Optional[browser_pool_create_params.Telemetry] | Omit = omit,
@@ -113,6 +117,8 @@ class BrowserPoolsResource(SyncAPIResource):
113
117
 
114
118
  name: Optional name for the browser pool. Must be unique within the project.
115
119
 
120
+ network: Network configuration applied to browsers in this pool.
121
+
116
122
  profile: Profile configuration for browsers in a pool. Provide either id or name.
117
123
  Profiles must be created beforehand. Unlike single browser sessions, pools load
118
124
  the profile read-only and never persist changes back to it, so save_changes is
@@ -126,6 +132,10 @@ class BrowserPoolsResource(SyncAPIResource):
126
132
  pool browsers pick up the latest profile data. When a profile is provided during
127
133
  creation, this defaults to true. Requires a profile to be set on the pool.
128
134
 
135
+ region: Geographic region for the browser pool. It is fixed once the pool is created.
136
+ Region selection requires a Start-Up or Enterprise plan, defaults to us-east
137
+ when omitted on create.
138
+
129
139
  start_url: Optional URL to navigate to when a new browser is warmed into the pool.
130
140
  Best-effort: failures to navigate do not fail pool fill. Only applied to
131
141
  newly-warmed browsers; browsers reused via release/acquire keep whatever URL the
@@ -177,9 +187,11 @@ class BrowserPoolsResource(SyncAPIResource):
177
187
  "headless": headless,
178
188
  "kiosk_mode": kiosk_mode,
179
189
  "name": name,
190
+ "network": network,
180
191
  "profile": profile,
181
192
  "proxy_id": proxy_id,
182
193
  "refresh_on_profile_update": refresh_on_profile_update,
194
+ "region": region,
183
195
  "start_url": start_url,
184
196
  "stealth": stealth,
185
197
  "telemetry": telemetry,
@@ -238,6 +250,7 @@ class BrowserPoolsResource(SyncAPIResource):
238
250
  headless: bool | Omit = omit,
239
251
  kiosk_mode: bool | Omit = omit,
240
252
  name: str | Omit = omit,
253
+ network: BrowserNetworkConfigParam | Omit = omit,
241
254
  profile: browser_pool_update_params.Profile | Omit = omit,
242
255
  proxy_id: str | Omit = omit,
243
256
  refresh_on_profile_update: bool | Omit = omit,
@@ -291,6 +304,12 @@ class BrowserPoolsResource(SyncAPIResource):
291
304
  name: If provided, replaces the pool name. Empty string is a no-op; the pool name
292
305
  cannot be cleared or reset to empty once assigned.
293
306
 
307
+ network: If provided, replaces the pool's network configuration. Omit to leave the
308
+ existing configuration unchanged; an empty object ({}) removes it, while
309
+ network: {private_hosts: []} sets an explicit empty list. Only applied to
310
+ browsers created in the pool after the update; browsers already in the pool keep
311
+ their configuration until discarded (see discard_all_idle).
312
+
294
313
  profile: Profile configuration for browsers in a pool. Provide either id or name.
295
314
  Profiles must be created beforehand. Unlike single browser sessions, pools load
296
315
  the profile read-only and never persist changes back to it, so save_changes is
@@ -361,6 +380,7 @@ class BrowserPoolsResource(SyncAPIResource):
361
380
  "headless": headless,
362
381
  "kiosk_mode": kiosk_mode,
363
382
  "name": name,
383
+ "network": network,
364
384
  "profile": profile,
365
385
  "proxy_id": proxy_id,
366
386
  "refresh_on_profile_update": refresh_on_profile_update,
@@ -386,6 +406,7 @@ class BrowserPoolsResource(SyncAPIResource):
386
406
  name: str | Omit = omit,
387
407
  offset: int | Omit = omit,
388
408
  query: str | Omit = omit,
409
+ region: Literal["us-east", "eu-west"] | Omit = omit,
389
410
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
390
411
  # The extra values given here take precedence over values defined on the client or passed to this method.
391
412
  extra_headers: Headers | None = None,
@@ -409,6 +430,8 @@ class BrowserPoolsResource(SyncAPIResource):
409
430
  query: Case-insensitive substring match against browser pool name. IDs match by exact
410
431
  value.
411
432
 
433
+ region: Filter pools by geographic region. Omit to list pools in all regions.
434
+
412
435
  extra_headers: Send extra headers
413
436
 
414
437
  extra_query: Add additional query parameters to the request
@@ -431,6 +454,7 @@ class BrowserPoolsResource(SyncAPIResource):
431
454
  "name": name,
432
455
  "offset": offset,
433
456
  "query": query,
457
+ "region": region,
434
458
  },
435
459
  browser_pool_list_params.BrowserPoolListParams,
436
460
  ),
@@ -675,9 +699,11 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
675
699
  headless: bool | Omit = omit,
676
700
  kiosk_mode: bool | Omit = omit,
677
701
  name: str | Omit = omit,
702
+ network: BrowserNetworkConfigParam | Omit = omit,
678
703
  profile: browser_pool_create_params.Profile | Omit = omit,
679
704
  proxy_id: str | Omit = omit,
680
705
  refresh_on_profile_update: bool | Omit = omit,
706
+ region: Literal["us-east", "eu-west"] | Omit = omit,
681
707
  start_url: str | Omit = omit,
682
708
  stealth: bool | Omit = omit,
683
709
  telemetry: Optional[browser_pool_create_params.Telemetry] | Omit = omit,
@@ -721,6 +747,8 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
721
747
 
722
748
  name: Optional name for the browser pool. Must be unique within the project.
723
749
 
750
+ network: Network configuration applied to browsers in this pool.
751
+
724
752
  profile: Profile configuration for browsers in a pool. Provide either id or name.
725
753
  Profiles must be created beforehand. Unlike single browser sessions, pools load
726
754
  the profile read-only and never persist changes back to it, so save_changes is
@@ -734,6 +762,10 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
734
762
  pool browsers pick up the latest profile data. When a profile is provided during
735
763
  creation, this defaults to true. Requires a profile to be set on the pool.
736
764
 
765
+ region: Geographic region for the browser pool. It is fixed once the pool is created.
766
+ Region selection requires a Start-Up or Enterprise plan, defaults to us-east
767
+ when omitted on create.
768
+
737
769
  start_url: Optional URL to navigate to when a new browser is warmed into the pool.
738
770
  Best-effort: failures to navigate do not fail pool fill. Only applied to
739
771
  newly-warmed browsers; browsers reused via release/acquire keep whatever URL the
@@ -785,9 +817,11 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
785
817
  "headless": headless,
786
818
  "kiosk_mode": kiosk_mode,
787
819
  "name": name,
820
+ "network": network,
788
821
  "profile": profile,
789
822
  "proxy_id": proxy_id,
790
823
  "refresh_on_profile_update": refresh_on_profile_update,
824
+ "region": region,
791
825
  "start_url": start_url,
792
826
  "stealth": stealth,
793
827
  "telemetry": telemetry,
@@ -846,6 +880,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
846
880
  headless: bool | Omit = omit,
847
881
  kiosk_mode: bool | Omit = omit,
848
882
  name: str | Omit = omit,
883
+ network: BrowserNetworkConfigParam | Omit = omit,
849
884
  profile: browser_pool_update_params.Profile | Omit = omit,
850
885
  proxy_id: str | Omit = omit,
851
886
  refresh_on_profile_update: bool | Omit = omit,
@@ -899,6 +934,12 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
899
934
  name: If provided, replaces the pool name. Empty string is a no-op; the pool name
900
935
  cannot be cleared or reset to empty once assigned.
901
936
 
937
+ network: If provided, replaces the pool's network configuration. Omit to leave the
938
+ existing configuration unchanged; an empty object ({}) removes it, while
939
+ network: {private_hosts: []} sets an explicit empty list. Only applied to
940
+ browsers created in the pool after the update; browsers already in the pool keep
941
+ their configuration until discarded (see discard_all_idle).
942
+
902
943
  profile: Profile configuration for browsers in a pool. Provide either id or name.
903
944
  Profiles must be created beforehand. Unlike single browser sessions, pools load
904
945
  the profile read-only and never persist changes back to it, so save_changes is
@@ -969,6 +1010,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
969
1010
  "headless": headless,
970
1011
  "kiosk_mode": kiosk_mode,
971
1012
  "name": name,
1013
+ "network": network,
972
1014
  "profile": profile,
973
1015
  "proxy_id": proxy_id,
974
1016
  "refresh_on_profile_update": refresh_on_profile_update,
@@ -994,6 +1036,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
994
1036
  name: str | Omit = omit,
995
1037
  offset: int | Omit = omit,
996
1038
  query: str | Omit = omit,
1039
+ region: Literal["us-east", "eu-west"] | Omit = omit,
997
1040
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
998
1041
  # The extra values given here take precedence over values defined on the client or passed to this method.
999
1042
  extra_headers: Headers | None = None,
@@ -1017,6 +1060,8 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
1017
1060
  query: Case-insensitive substring match against browser pool name. IDs match by exact
1018
1061
  value.
1019
1062
 
1063
+ region: Filter pools by geographic region. Omit to list pools in all regions.
1064
+
1020
1065
  extra_headers: Send extra headers
1021
1066
 
1022
1067
  extra_query: Add additional query parameters to the request
@@ -1039,6 +1084,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
1039
1084
  "name": name,
1040
1085
  "offset": offset,
1041
1086
  "query": query,
1087
+ "region": region,
1042
1088
  },
1043
1089
  browser_pool_list_params.BrowserPoolListParams,
1044
1090
  ),
@@ -98,6 +98,7 @@ from ...types.browser_create_response import BrowserCreateResponse
98
98
  from ...types.browser_update_response import BrowserUpdateResponse
99
99
  from ...types.browser_retrieve_response import BrowserRetrieveResponse
100
100
  from ...types.browser_proxy_config_param import BrowserProxyConfigParam
101
+ from ...types.browser_network_config_param import BrowserNetworkConfigParam
101
102
  from ...types.shared_params.browser_profile import BrowserProfile
102
103
  from ...types.shared_params.browser_viewport import BrowserViewport
103
104
  from ...types.shared_params.browser_extension import BrowserExtension
@@ -172,9 +173,11 @@ class BrowsersResource(SyncAPIResource):
172
173
  invocation_id: str | Omit = omit,
173
174
  kiosk_mode: bool | Omit = omit,
174
175
  name: str | Omit = omit,
176
+ network: BrowserNetworkConfigParam | Omit = omit,
175
177
  profile: BrowserProfile | Omit = omit,
176
178
  proxy: BrowserProxyConfigParam | Omit = omit,
177
179
  proxy_id: str | Omit = omit,
180
+ region: Literal["us-east", "eu-west"] | Omit = omit,
178
181
  start_url: str | Omit = omit,
179
182
  stealth: bool | Omit = omit,
180
183
  tags: TagsParam | Omit = omit,
@@ -214,6 +217,8 @@ class BrowsersResource(SyncAPIResource):
214
217
  the dashboard. Must be unique among active sessions within the project. Can be
215
218
  changed later via PATCH /browsers/{id_or_name}.
216
219
 
220
+ network: Network configuration for the browser session. Cannot be changed after creation.
221
+
217
222
  profile: Profile selection for the browser session. Provide either id or name. If
218
223
  specified, the matching profile will be loaded into the browser session.
219
224
  Profiles must be created beforehand.
@@ -229,6 +234,10 @@ class BrowsersResource(SyncAPIResource):
229
234
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy in
230
235
  the same project as the browser session. Deprecated in favor of proxy.
231
236
 
237
+ region: Geographic region for the browser session. It is fixed once the session is
238
+ created. Region selection requires a Start-Up or Enterprise plan, defaults to
239
+ us-east when omitted on create.
240
+
232
241
  start_url: Optional URL to open when the browser session is created. Navigation is
233
242
  best-effort, so navigation failures do not prevent the session from being
234
243
  created.
@@ -287,9 +296,11 @@ class BrowsersResource(SyncAPIResource):
287
296
  "invocation_id": invocation_id,
288
297
  "kiosk_mode": kiosk_mode,
289
298
  "name": name,
299
+ "network": network,
290
300
  "profile": profile,
291
301
  "proxy": proxy,
292
302
  "proxy_id": proxy_id,
303
+ "region": region,
293
304
  "start_url": start_url,
294
305
  "stealth": stealth,
295
306
  "tags": tags,
@@ -440,6 +451,7 @@ class BrowsersResource(SyncAPIResource):
440
451
  limit: int | Omit = omit,
441
452
  offset: int | Omit = omit,
442
453
  query: str | Omit = omit,
454
+ region: Literal["us-east", "eu-west"] | Omit = omit,
443
455
  status: Literal["active", "deleted", "all"] | Omit = omit,
444
456
  tags: Dict[str, str] | Omit = omit,
445
457
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -464,6 +476,8 @@ class BrowsersResource(SyncAPIResource):
464
476
 
465
477
  query: Search browsers by name, session ID, profile name or ID, proxy ID, or pool name.
466
478
 
479
+ region: Filter sessions by geographic region. Omit to list sessions in all regions.
480
+
467
481
  status: Filter sessions by status. "active" returns only active sessions (default),
468
482
  "deleted" returns only soft-deleted sessions, "all" returns both.
469
483
 
@@ -493,6 +507,7 @@ class BrowsersResource(SyncAPIResource):
493
507
  "limit": limit,
494
508
  "offset": offset,
495
509
  "query": query,
510
+ "region": region,
496
511
  "status": status,
497
512
  "tags": tags,
498
513
  },
@@ -772,9 +787,11 @@ class AsyncBrowsersResource(AsyncAPIResource):
772
787
  invocation_id: str | Omit = omit,
773
788
  kiosk_mode: bool | Omit = omit,
774
789
  name: str | Omit = omit,
790
+ network: BrowserNetworkConfigParam | Omit = omit,
775
791
  profile: BrowserProfile | Omit = omit,
776
792
  proxy: BrowserProxyConfigParam | Omit = omit,
777
793
  proxy_id: str | Omit = omit,
794
+ region: Literal["us-east", "eu-west"] | Omit = omit,
778
795
  start_url: str | Omit = omit,
779
796
  stealth: bool | Omit = omit,
780
797
  tags: TagsParam | Omit = omit,
@@ -814,6 +831,8 @@ class AsyncBrowsersResource(AsyncAPIResource):
814
831
  the dashboard. Must be unique among active sessions within the project. Can be
815
832
  changed later via PATCH /browsers/{id_or_name}.
816
833
 
834
+ network: Network configuration for the browser session. Cannot be changed after creation.
835
+
817
836
  profile: Profile selection for the browser session. Provide either id or name. If
818
837
  specified, the matching profile will be loaded into the browser session.
819
838
  Profiles must be created beforehand.
@@ -829,6 +848,10 @@ class AsyncBrowsersResource(AsyncAPIResource):
829
848
  proxy_id: Optional proxy to associate to the browser session. Must reference a proxy in
830
849
  the same project as the browser session. Deprecated in favor of proxy.
831
850
 
851
+ region: Geographic region for the browser session. It is fixed once the session is
852
+ created. Region selection requires a Start-Up or Enterprise plan, defaults to
853
+ us-east when omitted on create.
854
+
832
855
  start_url: Optional URL to open when the browser session is created. Navigation is
833
856
  best-effort, so navigation failures do not prevent the session from being
834
857
  created.
@@ -887,9 +910,11 @@ class AsyncBrowsersResource(AsyncAPIResource):
887
910
  "invocation_id": invocation_id,
888
911
  "kiosk_mode": kiosk_mode,
889
912
  "name": name,
913
+ "network": network,
890
914
  "profile": profile,
891
915
  "proxy": proxy,
892
916
  "proxy_id": proxy_id,
917
+ "region": region,
893
918
  "start_url": start_url,
894
919
  "stealth": stealth,
895
920
  "tags": tags,
@@ -1040,6 +1065,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
1040
1065
  limit: int | Omit = omit,
1041
1066
  offset: int | Omit = omit,
1042
1067
  query: str | Omit = omit,
1068
+ region: Literal["us-east", "eu-west"] | Omit = omit,
1043
1069
  status: Literal["active", "deleted", "all"] | Omit = omit,
1044
1070
  tags: Dict[str, str] | Omit = omit,
1045
1071
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
@@ -1064,6 +1090,8 @@ class AsyncBrowsersResource(AsyncAPIResource):
1064
1090
 
1065
1091
  query: Search browsers by name, session ID, profile name or ID, proxy ID, or pool name.
1066
1092
 
1093
+ region: Filter sessions by geographic region. Omit to list sessions in all regions.
1094
+
1067
1095
  status: Filter sessions by status. "active" returns only active sessions (default),
1068
1096
  "deleted" returns only soft-deleted sessions, "all" returns both.
1069
1097
 
@@ -1093,6 +1121,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
1093
1121
  "limit": limit,
1094
1122
  "offset": offset,
1095
1123
  "query": query,
1124
+ "region": region,
1096
1125
  "status": status,
1097
1126
  "tags": tags,
1098
1127
  },
@@ -55,11 +55,7 @@ class LimitsResource(SyncAPIResource):
55
55
  extra_body: Body | None = None,
56
56
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
57
57
  ) -> OrgLimits:
58
- """
59
- Get the organization's concurrency limit — the maximum browsers running at once
60
- across on-demand sessions and browser pool reservations — and the default
61
- per-project concurrency cap applied to projects without an explicit override.
62
- """
58
+ """Get the organization's effective limits and managed auth usage."""
63
59
  return self._get(
64
60
  "/org/limits",
65
61
  options=make_request_options(
@@ -142,11 +138,7 @@ class AsyncLimitsResource(AsyncAPIResource):
142
138
  extra_body: Body | None = None,
143
139
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
144
140
  ) -> OrgLimits:
145
- """
146
- Get the organization's concurrency limit — the maximum browsers running at once
147
- across on-demand sessions and browser pool reservations — and the default
148
- per-project concurrency cap applied to projects without an explicit override.
149
- """
141
+ """Get the organization's effective limits and managed auth usage."""
150
142
  return await self._get(
151
143
  "/org/limits",
152
144
  options=make_request_options(
@@ -58,6 +58,7 @@ from .project_create_params import ProjectCreateParams as ProjectCreateParams
58
58
  from .project_update_params import ProjectUpdateParams as ProjectUpdateParams
59
59
  from .proxy_create_response import ProxyCreateResponse as ProxyCreateResponse
60
60
  from .proxy_update_response import ProxyUpdateResponse as ProxyUpdateResponse
61
+ from .browser_network_config import BrowserNetworkConfig as BrowserNetworkConfig
61
62
  from .credential_list_params import CredentialListParams as CredentialListParams
62
63
  from .deployment_list_params import DeploymentListParams as DeploymentListParams
63
64
  from .deployment_state_event import DeploymentStateEvent as DeploymentStateEvent
@@ -96,6 +97,7 @@ from .invocation_follow_response import InvocationFollowResponse as InvocationFo
96
97
  from .invocation_update_response import InvocationUpdateResponse as InvocationUpdateResponse
97
98
  from .browser_pool_acquire_params import BrowserPoolAcquireParams as BrowserPoolAcquireParams
98
99
  from .browser_pool_release_params import BrowserPoolReleaseParams as BrowserPoolReleaseParams
100
+ from .browser_network_config_param import BrowserNetworkConfigParam as BrowserNetworkConfigParam
99
101
  from .deployment_retrieve_response import DeploymentRetrieveResponse as DeploymentRetrieveResponse
100
102
  from .invocation_retrieve_response import InvocationRetrieveResponse as InvocationRetrieveResponse
101
103
  from .audit_log_export_chunk_params import AuditLogExportChunkParams as AuditLogExportChunkParams
@@ -3,10 +3,11 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, Iterable, Optional
6
- from typing_extensions import TypedDict
6
+ from typing_extensions import Literal, TypedDict
7
7
 
8
8
  from .tags_param import TagsParam
9
9
  from .browser_proxy_config_param import BrowserProxyConfigParam
10
+ from .browser_network_config_param import BrowserNetworkConfigParam
10
11
  from .shared_params.browser_profile import BrowserProfile
11
12
  from .shared_params.browser_viewport import BrowserViewport
12
13
  from .shared_params.browser_extension import BrowserExtension
@@ -64,6 +65,12 @@ class BrowserCreateParams(TypedDict, total=False):
64
65
  changed later via PATCH /browsers/{id_or_name}.
65
66
  """
66
67
 
68
+ network: BrowserNetworkConfigParam
69
+ """Network configuration for the browser session.
70
+
71
+ Cannot be changed after creation.
72
+ """
73
+
67
74
  profile: BrowserProfile
68
75
  """Profile selection for the browser session.
69
76
 
@@ -90,6 +97,13 @@ class BrowserCreateParams(TypedDict, total=False):
90
97
  favor of proxy.
91
98
  """
92
99
 
100
+ region: Literal["us-east", "eu-west"]
101
+ """Geographic region for the browser session.
102
+
103
+ It is fixed once the session is created. Region selection requires a Start-Up or
104
+ Enterprise plan, defaults to us-east when omitted on create.
105
+ """
106
+
93
107
  start_url: str
94
108
  """Optional URL to open when the browser session is created.
95
109
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  from typing import Dict, Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from .tags import Tags
7
8
  from .profile import Profile
@@ -9,6 +10,7 @@ from .._models import BaseModel
9
10
  from .browser_proxy import BrowserProxy
10
11
  from .browser_usage import BrowserUsage
11
12
  from .browser_pool_ref import BrowserPoolRef
13
+ from .browser_network_config import BrowserNetworkConfig
12
14
  from .shared.browser_viewport import BrowserViewport
13
15
  from .browsers.browser_telemetry_config import BrowserTelemetryConfig
14
16
 
@@ -25,6 +27,9 @@ class BrowserCreateResponse(BaseModel):
25
27
  headless: bool
26
28
  """Whether the browser session is running in headless mode."""
27
29
 
30
+ region: Literal["us-east", "eu-west"]
31
+ """Geographic region of the browser session. Fixed once the session is created."""
32
+
28
33
  session_id: str
29
34
  """Unique identifier for the browser session"""
30
35
 
@@ -68,6 +73,12 @@ class BrowserCreateResponse(BaseModel):
68
73
  name: Optional[str] = None
69
74
  """Human-readable name of the browser session, if one was set at creation."""
70
75
 
76
+ network: Optional[BrowserNetworkConfig] = None
77
+ """Network configuration the session was created with, if any.
78
+
79
+ Omitted when the session has no network configuration.
80
+ """
81
+
71
82
  pool: Optional[BrowserPoolRef] = None
72
83
  """Browser pool this session was acquired from, if any."""
73
84
 
@@ -27,6 +27,9 @@ class BrowserListParams(TypedDict, total=False):
27
27
  Search browsers by name, session ID, profile name or ID, proxy ID, or pool name.
28
28
  """
29
29
 
30
+ region: Literal["us-east", "eu-west"]
31
+ """Filter sessions by geographic region. Omit to list sessions in all regions."""
32
+
30
33
  status: Literal["active", "deleted", "all"]
31
34
  """Filter sessions by status.
32
35
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  from typing import Dict, Optional
4
4
  from datetime import datetime
5
+ from typing_extensions import Literal
5
6
 
6
7
  from .tags import Tags
7
8
  from .profile import Profile
@@ -9,6 +10,7 @@ from .._models import BaseModel
9
10
  from .browser_proxy import BrowserProxy
10
11
  from .browser_usage import BrowserUsage
11
12
  from .browser_pool_ref import BrowserPoolRef
13
+ from .browser_network_config import BrowserNetworkConfig
12
14
  from .shared.browser_viewport import BrowserViewport
13
15
  from .browsers.browser_telemetry_config import BrowserTelemetryConfig
14
16
 
@@ -25,6 +27,9 @@ class BrowserListResponse(BaseModel):
25
27
  headless: bool
26
28
  """Whether the browser session is running in headless mode."""
27
29
 
30
+ region: Literal["us-east", "eu-west"]
31
+ """Geographic region of the browser session. Fixed once the session is created."""
32
+
28
33
  session_id: str
29
34
  """Unique identifier for the browser session"""
30
35
 
@@ -68,6 +73,12 @@ class BrowserListResponse(BaseModel):
68
73
  name: Optional[str] = None
69
74
  """Human-readable name of the browser session, if one was set at creation."""
70
75
 
76
+ network: Optional[BrowserNetworkConfig] = None
77
+ """Network configuration the session was created with, if any.
78
+
79
+ Omitted when the session has no network configuration.
80
+ """
81
+
71
82
  pool: Optional[BrowserPoolRef] = None
72
83
  """Browser pool this session was acquired from, if any."""
73
84
 
@@ -0,0 +1,37 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from .._models import BaseModel
6
+
7
+ __all__ = ["BrowserNetworkConfig"]
8
+
9
+
10
+ class BrowserNetworkConfig(BaseModel):
11
+ """Network configuration for a browser session or browser pool."""
12
+
13
+ private_hosts: Optional[List[str]] = None
14
+ """
15
+ Destinations the browser reaches directly through the session's own network
16
+ instead of through Kernel-managed egress — for private hosts reachable over a
17
+ VPN or tunnel the session has joined (e.g. a Tailscale tailnet). By default,
18
+ private IP ranges already route directly: RFC1918 (10.0.0.0/8, 172.16.0.0/12,
19
+ 192.168.0.0/16), CGNAT/Tailscale (100.64.0.0/10), and IPv6 ULA (fc00::/7). An
20
+ explicitly supplied list replaces those defaults with exactly the entries given,
21
+ and an empty list ([]) disables them so all traffic uses Kernel-managed egress;
22
+ omit private_hosts to keep the defaults. Entries are hostname patterns
23
+ ("_.example.ts.net", "preview.internal") or IP/CIDR literals ("100.64.0.0/10",
24
+ "10.1.30.63"). IP and CIDR entries only match URLs written with a literal IP
25
+ address; they never match hostnames that resolve into the range, so private DNS
26
+ names need a hostname entry even when they resolve inside the default ranges.
27
+ CIDRs must be in canonical masked form (host bits zero), and only the private
28
+ ranges listed above are accepted; public, loopback, link-local, and unspecified
29
+ ranges are rejected. Exact IPv6 addresses must be bracketed ("[fd00::1]"); IPv6
30
+ CIDR ranges are unbracketed ("fd00::/8"). Wildcards are limited to one leading
31
+ "_." over a suffix with at least two labels that is not a public suffix (so
32
+ "_.co.uk" or "_.ts.net" are rejected, while "\\**.example.ts.net" is accepted).
33
+ Hostname and IP entries may carry a port; CIDR ranges may not. Hostname entries
34
+ are not resolved during validation, so callers must ensure they identify private
35
+ destinations. Not related to a proxy's bypass_hosts, which selects between
36
+ upstream-proxy and Kernel-managed direct egress and cannot reach into a VPN.
37
+ """