kernel 0.47.0__tar.gz → 0.49.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 (270) hide show
  1. kernel-0.49.0/.release-please-manifest.json +3 -0
  2. {kernel-0.47.0 → kernel-0.49.0}/CHANGELOG.md +27 -0
  3. {kernel-0.47.0 → kernel-0.49.0}/PKG-INFO +1 -1
  4. {kernel-0.47.0 → kernel-0.49.0}/api.md +29 -0
  5. {kernel-0.47.0 → kernel-0.49.0}/pyproject.toml +1 -1
  6. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_base_client.py +4 -0
  7. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_client.py +44 -0
  8. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_version.py +1 -1
  9. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/__init__.py +14 -0
  10. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/browsers.py +2 -2
  11. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/replays.py +4 -2
  12. kernel-0.49.0/src/kernel/resources/projects/__init__.py +33 -0
  13. kernel-0.49.0/src/kernel/resources/projects/limits.py +309 -0
  14. kernel-0.49.0/src/kernel/resources/projects/projects.py +586 -0
  15. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/__init__.py +4 -0
  16. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_create_response.py +3 -0
  17. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_list_params.py +1 -1
  18. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_list_response.py +3 -0
  19. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_acquire_response.py +3 -0
  20. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_retrieve_response.py +3 -0
  21. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_update_response.py +3 -0
  22. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/replay_start_params.py +4 -1
  23. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_list_browsers_response.py +3 -0
  24. kernel-0.49.0/src/kernel/types/project.py +25 -0
  25. kernel-0.49.0/src/kernel/types/project_create_params.py +12 -0
  26. kernel-0.49.0/src/kernel/types/project_list_params.py +15 -0
  27. kernel-0.49.0/src/kernel/types/project_update_params.py +15 -0
  28. kernel-0.49.0/src/kernel/types/projects/__init__.py +6 -0
  29. kernel-0.49.0/src/kernel/types/projects/limit_update_params.py +34 -0
  30. kernel-0.49.0/src/kernel/types/projects/project_limits.py +33 -0
  31. kernel-0.49.0/tests/api_resources/projects/__init__.py +1 -0
  32. kernel-0.49.0/tests/api_resources/projects/test_limits.py +216 -0
  33. kernel-0.49.0/tests/api_resources/test_projects.py +439 -0
  34. {kernel-0.47.0 → kernel-0.49.0}/tests/test_client.py +48 -0
  35. kernel-0.47.0/.release-please-manifest.json +0 -3
  36. {kernel-0.47.0 → kernel-0.49.0}/.gitignore +0 -0
  37. {kernel-0.47.0 → kernel-0.49.0}/CONTRIBUTING.md +0 -0
  38. {kernel-0.47.0 → kernel-0.49.0}/LICENSE +0 -0
  39. {kernel-0.47.0 → kernel-0.49.0}/README.md +0 -0
  40. {kernel-0.47.0 → kernel-0.49.0}/SECURITY.md +0 -0
  41. {kernel-0.47.0 → kernel-0.49.0}/bin/check-release-environment +0 -0
  42. {kernel-0.47.0 → kernel-0.49.0}/bin/publish-pypi +0 -0
  43. {kernel-0.47.0 → kernel-0.49.0}/examples/.keep +0 -0
  44. {kernel-0.47.0 → kernel-0.49.0}/noxfile.py +0 -0
  45. {kernel-0.47.0 → kernel-0.49.0}/release-please-config.json +0 -0
  46. {kernel-0.47.0 → kernel-0.49.0}/requirements-dev.lock +0 -0
  47. {kernel-0.47.0 → kernel-0.49.0}/requirements.lock +0 -0
  48. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/__init__.py +0 -0
  49. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_compat.py +0 -0
  50. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_constants.py +0 -0
  51. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_exceptions.py +0 -0
  52. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_files.py +0 -0
  53. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_models.py +0 -0
  54. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_qs.py +0 -0
  55. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_resource.py +0 -0
  56. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_response.py +0 -0
  57. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_streaming.py +0 -0
  58. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_types.py +0 -0
  59. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/__init__.py +0 -0
  60. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_compat.py +0 -0
  61. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  62. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_json.py +0 -0
  63. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_logs.py +0 -0
  64. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_path.py +0 -0
  65. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_proxy.py +0 -0
  66. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_reflection.py +0 -0
  67. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  68. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_streams.py +0 -0
  69. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_sync.py +0 -0
  70. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_transform.py +0 -0
  71. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_typing.py +0 -0
  72. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/_utils/_utils.py +0 -0
  73. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/app_framework.py +0 -0
  74. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/lib/.keep +0 -0
  75. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/pagination.py +0 -0
  76. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/py.typed +0 -0
  77. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/apps.py +0 -0
  78. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/auth/__init__.py +0 -0
  79. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/auth/auth.py +0 -0
  80. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/auth/connections.py +0 -0
  81. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browser_pools.py +0 -0
  82. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/__init__.py +0 -0
  83. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/computer.py +0 -0
  84. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  85. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  86. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  87. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/logs.py +0 -0
  88. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/playwright.py +0 -0
  89. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/browsers/process.py +0 -0
  90. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/credential_providers.py +0 -0
  91. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/credentials.py +0 -0
  92. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/deployments.py +0 -0
  93. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/extensions.py +0 -0
  94. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/invocations.py +0 -0
  95. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/profiles.py +0 -0
  96. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/resources/proxies.py +0 -0
  97. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/app_list_params.py +0 -0
  98. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/app_list_response.py +0 -0
  99. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/__init__.py +0 -0
  100. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_create_params.py +0 -0
  101. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
  102. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  103. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_login_params.py +0 -0
  104. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  105. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/connection_update_params.py +0 -0
  106. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/login_response.py +0 -0
  107. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/managed_auth.py +0 -0
  108. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  109. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_create_params.py +0 -0
  110. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_delete_params.py +0 -0
  111. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  112. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_persistence.py +0 -0
  113. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_persistence_param.py +0 -0
  114. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool.py +0 -0
  115. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  116. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_create_params.py +0 -0
  117. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  118. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_list_response.py +0 -0
  119. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_ref.py +0 -0
  120. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  121. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_pool_update_params.py +0 -0
  122. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  123. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_update_params.py +0 -0
  124. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browser_usage.py +0 -0
  125. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/__init__.py +0 -0
  126. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  127. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  128. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  129. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  130. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  131. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  132. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  133. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  134. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  135. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  136. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  137. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  138. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  139. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  140. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  141. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  142. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  143. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  144. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  145. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  146. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  147. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  148. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  149. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  150. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  151. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  152. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  153. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  154. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  155. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  156. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  157. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  158. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  159. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  160. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  161. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  162. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  163. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  164. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  165. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  166. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  167. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  168. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  169. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  170. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  171. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  172. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  173. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  174. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential.py +0 -0
  175. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_create_params.py +0 -0
  176. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_list_params.py +0 -0
  177. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider.py +0 -0
  178. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  179. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_item.py +0 -0
  180. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  181. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_list_response.py +0 -0
  182. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  183. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  184. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  185. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/credential_update_params.py +0 -0
  186. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_create_params.py +0 -0
  187. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_create_response.py +0 -0
  188. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_follow_params.py +0 -0
  189. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_follow_response.py +0 -0
  190. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_list_params.py +0 -0
  191. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_list_response.py +0 -0
  192. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  193. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/deployment_state_event.py +0 -0
  194. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  195. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/extension_list_response.py +0 -0
  196. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/extension_upload_params.py +0 -0
  197. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/extension_upload_response.py +0 -0
  198. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_create_params.py +0 -0
  199. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_create_response.py +0 -0
  200. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_follow_params.py +0 -0
  201. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_follow_response.py +0 -0
  202. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_list_params.py +0 -0
  203. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_list_response.py +0 -0
  204. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  205. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_state_event.py +0 -0
  206. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_update_params.py +0 -0
  207. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/invocation_update_response.py +0 -0
  208. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/profile.py +0 -0
  209. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/profile_create_params.py +0 -0
  210. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/profile_list_params.py +0 -0
  211. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_check_params.py +0 -0
  212. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_check_response.py +0 -0
  213. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_create_params.py +0 -0
  214. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_create_response.py +0 -0
  215. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_list_response.py +0 -0
  216. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  217. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/__init__.py +0 -0
  218. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/app_action.py +0 -0
  219. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/browser_extension.py +0 -0
  220. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/browser_profile.py +0 -0
  221. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  222. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/error_detail.py +0 -0
  223. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/error_event.py +0 -0
  224. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/error_model.py +0 -0
  225. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  226. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared/log_event.py +0 -0
  227. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared_params/__init__.py +0 -0
  228. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  229. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  230. {kernel-0.47.0 → kernel-0.49.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  231. {kernel-0.47.0 → kernel-0.49.0}/tests/__init__.py +0 -0
  232. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/__init__.py +0 -0
  233. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/auth/__init__.py +0 -0
  234. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/auth/test_connections.py +0 -0
  235. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/__init__.py +0 -0
  236. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  237. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  238. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_computer.py +0 -0
  239. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_fs.py +0 -0
  240. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_logs.py +0 -0
  241. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  242. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_process.py +0 -0
  243. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/browsers/test_replays.py +0 -0
  244. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_apps.py +0 -0
  245. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_browser_pools.py +0 -0
  246. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_browsers.py +0 -0
  247. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_credential_providers.py +0 -0
  248. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_credentials.py +0 -0
  249. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_deployments.py +0 -0
  250. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_extensions.py +0 -0
  251. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_invocations.py +0 -0
  252. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_profiles.py +0 -0
  253. {kernel-0.47.0 → kernel-0.49.0}/tests/api_resources/test_proxies.py +0 -0
  254. {kernel-0.47.0 → kernel-0.49.0}/tests/conftest.py +0 -0
  255. {kernel-0.47.0 → kernel-0.49.0}/tests/sample_file.txt +0 -0
  256. {kernel-0.47.0 → kernel-0.49.0}/tests/test_deepcopy.py +0 -0
  257. {kernel-0.47.0 → kernel-0.49.0}/tests/test_extract_files.py +0 -0
  258. {kernel-0.47.0 → kernel-0.49.0}/tests/test_files.py +0 -0
  259. {kernel-0.47.0 → kernel-0.49.0}/tests/test_models.py +0 -0
  260. {kernel-0.47.0 → kernel-0.49.0}/tests/test_qs.py +0 -0
  261. {kernel-0.47.0 → kernel-0.49.0}/tests/test_required_args.py +0 -0
  262. {kernel-0.47.0 → kernel-0.49.0}/tests/test_response.py +0 -0
  263. {kernel-0.47.0 → kernel-0.49.0}/tests/test_streaming.py +0 -0
  264. {kernel-0.47.0 → kernel-0.49.0}/tests/test_transform.py +0 -0
  265. {kernel-0.47.0 → kernel-0.49.0}/tests/test_utils/test_datetime_parse.py +0 -0
  266. {kernel-0.47.0 → kernel-0.49.0}/tests/test_utils/test_json.py +0 -0
  267. {kernel-0.47.0 → kernel-0.49.0}/tests/test_utils/test_path.py +0 -0
  268. {kernel-0.47.0 → kernel-0.49.0}/tests/test_utils/test_proxy.py +0 -0
  269. {kernel-0.47.0 → kernel-0.49.0}/tests/test_utils/test_typing.py +0 -0
  270. {kernel-0.47.0 → kernel-0.49.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.49.0"
3
+ }
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.49.0 (2026-04-10)
4
+
5
+ Full Changelog: [v0.48.0...v0.49.0](https://github.com/kernel/kernel-python-sdk/compare/v0.48.0...v0.49.0)
6
+
7
+ ### Features
8
+
9
+ * Neil/kernel 1180 fuzzy matching for browser pools ([4089baf](https://github.com/kernel/kernel-python-sdk/commit/4089bafcec6fe6029b0b3730767e7428e2ab6e07))
10
+ * Raise replay framerate limit from 20 to 60 fps ([707b339](https://github.com/kernel/kernel-python-sdk/commit/707b3398f435ebaf1a801e6310e2c827b1766e82))
11
+
12
+ ## 0.48.0 (2026-04-10)
13
+
14
+ Full Changelog: [v0.47.0...v0.48.0](https://github.com/kernel/kernel-python-sdk/compare/v0.47.0...v0.48.0)
15
+
16
+ ### Features
17
+
18
+ * [kernel-1116] add base_url field to browser session response ([335d9e0](https://github.com/kernel/kernel-python-sdk/commit/335d9e04998dd9e581f47d8869dd7f07a8f2db74))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **client:** preserve hardcoded query params when merging with user params ([6dfd882](https://github.com/kernel/kernel-python-sdk/commit/6dfd8826b84ed191d72ac114df986c398fa83c5c))
24
+
25
+
26
+ ### Chores
27
+
28
+ * retrigger Stainless codegen for projects resource ([ca22fd9](https://github.com/kernel/kernel-python-sdk/commit/ca22fd9dc4b5f4cd70e15ecb1ddd3607d8a99df8))
29
+
3
30
  ## 0.47.0 (2026-04-07)
4
31
 
5
32
  Full Changelog: [v0.46.0...v0.47.0](https://github.com/kernel/kernel-python-sdk/compare/v0.46.0...v0.47.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.47.0
3
+ Version: 0.49.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
@@ -341,6 +341,35 @@ Methods:
341
341
  - <code title="delete /credentials/{id_or_name}">client.credentials.<a href="./src/kernel/resources/credentials.py">delete</a>(id_or_name) -> None</code>
342
342
  - <code title="get /credentials/{id_or_name}/totp-code">client.credentials.<a href="./src/kernel/resources/credentials.py">totp_code</a>(id_or_name) -> <a href="./src/kernel/types/credential_totp_code_response.py">CredentialTotpCodeResponse</a></code>
343
343
 
344
+ # Projects
345
+
346
+ Types:
347
+
348
+ ```python
349
+ from kernel.types import CreateProjectRequest, Project, UpdateProjectRequest
350
+ ```
351
+
352
+ Methods:
353
+
354
+ - <code title="post /projects">client.projects.<a href="./src/kernel/resources/projects/projects.py">create</a>(\*\*<a href="src/kernel/types/project_create_params.py">params</a>) -> <a href="./src/kernel/types/project.py">Project</a></code>
355
+ - <code title="get /projects/{id}">client.projects.<a href="./src/kernel/resources/projects/projects.py">retrieve</a>(id) -> <a href="./src/kernel/types/project.py">Project</a></code>
356
+ - <code title="patch /projects/{id}">client.projects.<a href="./src/kernel/resources/projects/projects.py">update</a>(id, \*\*<a href="src/kernel/types/project_update_params.py">params</a>) -> <a href="./src/kernel/types/project.py">Project</a></code>
357
+ - <code title="get /projects">client.projects.<a href="./src/kernel/resources/projects/projects.py">list</a>(\*\*<a href="src/kernel/types/project_list_params.py">params</a>) -> <a href="./src/kernel/types/project.py">SyncOffsetPagination[Project]</a></code>
358
+ - <code title="delete /projects/{id}">client.projects.<a href="./src/kernel/resources/projects/projects.py">delete</a>(id) -> None</code>
359
+
360
+ ## Limits
361
+
362
+ Types:
363
+
364
+ ```python
365
+ from kernel.types.projects import ProjectLimits, UpdateProjectLimitsRequest
366
+ ```
367
+
368
+ Methods:
369
+
370
+ - <code title="get /projects/{id}/limits">client.projects.limits.<a href="./src/kernel/resources/projects/limits.py">retrieve</a>(id) -> <a href="./src/kernel/types/projects/project_limits.py">ProjectLimits</a></code>
371
+ - <code title="patch /projects/{id}/limits">client.projects.limits.<a href="./src/kernel/resources/projects/limits.py">update</a>(id, \*\*<a href="src/kernel/types/projects/limit_update_params.py">params</a>) -> <a href="./src/kernel/types/projects/project_limits.py">ProjectLimits</a></code>
372
+
344
373
  # CredentialProviders
345
374
 
346
375
  Types:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.47.0"
3
+ version = "0.49.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -540,6 +540,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
540
540
  files = cast(HttpxRequestFiles, ForceMultipartDict())
541
541
 
542
542
  prepared_url = self._prepare_url(options.url)
543
+ # preserve hard-coded query params from the url
544
+ if params and prepared_url.query:
545
+ params = {**dict(prepared_url.params.items()), **params}
546
+ prepared_url = prepared_url.copy_with(raw_path=prepared_url.raw_path.split(b"?", 1)[0])
543
547
  if "_" in prepared_url.host:
544
548
  # work around https://github.com/encode/httpx/discussions/2880
545
549
  kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
@@ -37,6 +37,7 @@ if TYPE_CHECKING:
37
37
  proxies,
38
38
  browsers,
39
39
  profiles,
40
+ projects,
40
41
  extensions,
41
42
  credentials,
42
43
  deployments,
@@ -54,6 +55,7 @@ if TYPE_CHECKING:
54
55
  from .resources.invocations import InvocationsResource, AsyncInvocationsResource
55
56
  from .resources.browser_pools import BrowserPoolsResource, AsyncBrowserPoolsResource
56
57
  from .resources.browsers.browsers import BrowsersResource, AsyncBrowsersResource
58
+ from .resources.projects.projects import ProjectsResource, AsyncProjectsResource
57
59
  from .resources.credential_providers import CredentialProvidersResource, AsyncCredentialProvidersResource
58
60
 
59
61
  __all__ = [
@@ -222,6 +224,13 @@ class Kernel(SyncAPIClient):
222
224
 
223
225
  return CredentialsResource(self)
224
226
 
227
+ @cached_property
228
+ def projects(self) -> ProjectsResource:
229
+ """Create and manage projects for resource isolation within an organization."""
230
+ from .resources.projects import ProjectsResource
231
+
232
+ return ProjectsResource(self)
233
+
225
234
  @cached_property
226
235
  def credential_providers(self) -> CredentialProvidersResource:
227
236
  """Configure external credential providers like 1Password."""
@@ -492,6 +501,13 @@ class AsyncKernel(AsyncAPIClient):
492
501
 
493
502
  return AsyncCredentialsResource(self)
494
503
 
504
+ @cached_property
505
+ def projects(self) -> AsyncProjectsResource:
506
+ """Create and manage projects for resource isolation within an organization."""
507
+ from .resources.projects import AsyncProjectsResource
508
+
509
+ return AsyncProjectsResource(self)
510
+
495
511
  @cached_property
496
512
  def credential_providers(self) -> AsyncCredentialProvidersResource:
497
513
  """Configure external credential providers like 1Password."""
@@ -689,6 +705,13 @@ class KernelWithRawResponse:
689
705
 
690
706
  return CredentialsResourceWithRawResponse(self._client.credentials)
691
707
 
708
+ @cached_property
709
+ def projects(self) -> projects.ProjectsResourceWithRawResponse:
710
+ """Create and manage projects for resource isolation within an organization."""
711
+ from .resources.projects import ProjectsResourceWithRawResponse
712
+
713
+ return ProjectsResourceWithRawResponse(self._client.projects)
714
+
692
715
  @cached_property
693
716
  def credential_providers(self) -> credential_providers.CredentialProvidersResourceWithRawResponse:
694
717
  """Configure external credential providers like 1Password."""
@@ -772,6 +795,13 @@ class AsyncKernelWithRawResponse:
772
795
 
773
796
  return AsyncCredentialsResourceWithRawResponse(self._client.credentials)
774
797
 
798
+ @cached_property
799
+ def projects(self) -> projects.AsyncProjectsResourceWithRawResponse:
800
+ """Create and manage projects for resource isolation within an organization."""
801
+ from .resources.projects import AsyncProjectsResourceWithRawResponse
802
+
803
+ return AsyncProjectsResourceWithRawResponse(self._client.projects)
804
+
775
805
  @cached_property
776
806
  def credential_providers(self) -> credential_providers.AsyncCredentialProvidersResourceWithRawResponse:
777
807
  """Configure external credential providers like 1Password."""
@@ -855,6 +885,13 @@ class KernelWithStreamedResponse:
855
885
 
856
886
  return CredentialsResourceWithStreamingResponse(self._client.credentials)
857
887
 
888
+ @cached_property
889
+ def projects(self) -> projects.ProjectsResourceWithStreamingResponse:
890
+ """Create and manage projects for resource isolation within an organization."""
891
+ from .resources.projects import ProjectsResourceWithStreamingResponse
892
+
893
+ return ProjectsResourceWithStreamingResponse(self._client.projects)
894
+
858
895
  @cached_property
859
896
  def credential_providers(self) -> credential_providers.CredentialProvidersResourceWithStreamingResponse:
860
897
  """Configure external credential providers like 1Password."""
@@ -938,6 +975,13 @@ class AsyncKernelWithStreamedResponse:
938
975
 
939
976
  return AsyncCredentialsResourceWithStreamingResponse(self._client.credentials)
940
977
 
978
+ @cached_property
979
+ def projects(self) -> projects.AsyncProjectsResourceWithStreamingResponse:
980
+ """Create and manage projects for resource isolation within an organization."""
981
+ from .resources.projects import AsyncProjectsResourceWithStreamingResponse
982
+
983
+ return AsyncProjectsResourceWithStreamingResponse(self._client.projects)
984
+
941
985
  @cached_property
942
986
  def credential_providers(self) -> credential_providers.AsyncCredentialProvidersResourceWithStreamingResponse:
943
987
  """Configure external credential providers like 1Password."""
@@ -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.47.0" # x-release-please-version
4
+ __version__ = "0.49.0" # x-release-please-version
@@ -40,6 +40,14 @@ from .profiles import (
40
40
  ProfilesResourceWithStreamingResponse,
41
41
  AsyncProfilesResourceWithStreamingResponse,
42
42
  )
43
+ from .projects import (
44
+ ProjectsResource,
45
+ AsyncProjectsResource,
46
+ ProjectsResourceWithRawResponse,
47
+ AsyncProjectsResourceWithRawResponse,
48
+ ProjectsResourceWithStreamingResponse,
49
+ AsyncProjectsResourceWithStreamingResponse,
50
+ )
43
51
  from .extensions import (
44
52
  ExtensionsResource,
45
53
  AsyncExtensionsResource,
@@ -150,6 +158,12 @@ __all__ = [
150
158
  "AsyncCredentialsResourceWithRawResponse",
151
159
  "CredentialsResourceWithStreamingResponse",
152
160
  "AsyncCredentialsResourceWithStreamingResponse",
161
+ "ProjectsResource",
162
+ "AsyncProjectsResource",
163
+ "ProjectsResourceWithRawResponse",
164
+ "AsyncProjectsResourceWithRawResponse",
165
+ "ProjectsResourceWithStreamingResponse",
166
+ "AsyncProjectsResourceWithStreamingResponse",
153
167
  "CredentialProvidersResource",
154
168
  "AsyncCredentialProvidersResource",
155
169
  "CredentialProvidersResourceWithRawResponse",
@@ -367,7 +367,7 @@ class BrowsersResource(SyncAPIResource):
367
367
 
368
368
  offset: Number of results to skip. Defaults to 0.
369
369
 
370
- query: Search browsers by session ID, profile ID, or proxy ID.
370
+ query: Search browsers by session ID, profile ID, proxy ID, or pool name.
371
371
 
372
372
  status: Filter sessions by status. "active" returns only active sessions (default),
373
373
  "deleted" returns only soft-deleted sessions, "all" returns both.
@@ -803,7 +803,7 @@ class AsyncBrowsersResource(AsyncAPIResource):
803
803
 
804
804
  offset: Number of results to skip. Defaults to 0.
805
805
 
806
- query: Search browsers by session ID, profile ID, or proxy ID.
806
+ query: Search browsers by session ID, profile ID, proxy ID, or pool name.
807
807
 
808
808
  status: Filter sessions by status. "active" returns only active sessions (default),
809
809
  "deleted" returns only soft-deleted sessions, "all" returns both.
@@ -139,7 +139,8 @@ class ReplaysResource(SyncAPIResource):
139
139
  Start recording the browser session and return a replay ID.
140
140
 
141
141
  Args:
142
- framerate: Recording framerate in fps.
142
+ framerate: Recording framerate in fps. Values above 20 require GPU to be enabled on the
143
+ browser session.
143
144
 
144
145
  max_duration_in_seconds: Maximum recording duration in seconds.
145
146
 
@@ -315,7 +316,8 @@ class AsyncReplaysResource(AsyncAPIResource):
315
316
  Start recording the browser session and return a replay ID.
316
317
 
317
318
  Args:
318
- framerate: Recording framerate in fps.
319
+ framerate: Recording framerate in fps. Values above 20 require GPU to be enabled on the
320
+ browser session.
319
321
 
320
322
  max_duration_in_seconds: Maximum recording duration in seconds.
321
323
 
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .limits import (
4
+ LimitsResource,
5
+ AsyncLimitsResource,
6
+ LimitsResourceWithRawResponse,
7
+ AsyncLimitsResourceWithRawResponse,
8
+ LimitsResourceWithStreamingResponse,
9
+ AsyncLimitsResourceWithStreamingResponse,
10
+ )
11
+ from .projects import (
12
+ ProjectsResource,
13
+ AsyncProjectsResource,
14
+ ProjectsResourceWithRawResponse,
15
+ AsyncProjectsResourceWithRawResponse,
16
+ ProjectsResourceWithStreamingResponse,
17
+ AsyncProjectsResourceWithStreamingResponse,
18
+ )
19
+
20
+ __all__ = [
21
+ "LimitsResource",
22
+ "AsyncLimitsResource",
23
+ "LimitsResourceWithRawResponse",
24
+ "AsyncLimitsResourceWithRawResponse",
25
+ "LimitsResourceWithStreamingResponse",
26
+ "AsyncLimitsResourceWithStreamingResponse",
27
+ "ProjectsResource",
28
+ "AsyncProjectsResource",
29
+ "ProjectsResourceWithRawResponse",
30
+ "AsyncProjectsResourceWithRawResponse",
31
+ "ProjectsResourceWithStreamingResponse",
32
+ "AsyncProjectsResourceWithStreamingResponse",
33
+ ]
@@ -0,0 +1,309 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+
7
+ import httpx
8
+
9
+ from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
10
+ from ..._utils import path_template, maybe_transform, async_maybe_transform
11
+ from ..._compat import cached_property
12
+ from ..._resource import SyncAPIResource, AsyncAPIResource
13
+ from ..._response import (
14
+ to_raw_response_wrapper,
15
+ to_streamed_response_wrapper,
16
+ async_to_raw_response_wrapper,
17
+ async_to_streamed_response_wrapper,
18
+ )
19
+ from ..._base_client import make_request_options
20
+ from ...types.projects import limit_update_params
21
+ from ...types.projects.project_limits import ProjectLimits
22
+
23
+ __all__ = ["LimitsResource", "AsyncLimitsResource"]
24
+
25
+
26
+ class LimitsResource(SyncAPIResource):
27
+ """Create and manage projects for resource isolation within an organization."""
28
+
29
+ @cached_property
30
+ def with_raw_response(self) -> LimitsResourceWithRawResponse:
31
+ """
32
+ This property can be used as a prefix for any HTTP method call to return
33
+ the raw response object instead of the parsed content.
34
+
35
+ For more information, see https://www.github.com/kernel/kernel-python-sdk#accessing-raw-response-data-eg-headers
36
+ """
37
+ return LimitsResourceWithRawResponse(self)
38
+
39
+ @cached_property
40
+ def with_streaming_response(self) -> LimitsResourceWithStreamingResponse:
41
+ """
42
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
43
+
44
+ For more information, see https://www.github.com/kernel/kernel-python-sdk#with_streaming_response
45
+ """
46
+ return LimitsResourceWithStreamingResponse(self)
47
+
48
+ def retrieve(
49
+ self,
50
+ id: str,
51
+ *,
52
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
53
+ # The extra values given here take precedence over values defined on the client or passed to this method.
54
+ extra_headers: Headers | None = None,
55
+ extra_query: Query | None = None,
56
+ extra_body: Body | None = None,
57
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
58
+ ) -> ProjectLimits:
59
+ """Get the resource limit overrides for a project.
60
+
61
+ Null values mean no
62
+ project-level cap (org limit applies).
63
+
64
+ Args:
65
+ extra_headers: Send extra headers
66
+
67
+ extra_query: Add additional query parameters to the request
68
+
69
+ extra_body: Add additional JSON properties to the request
70
+
71
+ timeout: Override the client-level default timeout for this request, in seconds
72
+ """
73
+ if not id:
74
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
75
+ return self._get(
76
+ path_template("/projects/{id}/limits", id=id),
77
+ options=make_request_options(
78
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
79
+ ),
80
+ cast_to=ProjectLimits,
81
+ )
82
+
83
+ def update(
84
+ self,
85
+ id: str,
86
+ *,
87
+ max_concurrent_invocations: Optional[int] | Omit = omit,
88
+ max_concurrent_sessions: Optional[int] | Omit = omit,
89
+ max_persistent_sessions: Optional[int] | Omit = omit,
90
+ max_pooled_sessions: Optional[int] | Omit = omit,
91
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
92
+ # The extra values given here take precedence over values defined on the client or passed to this method.
93
+ extra_headers: Headers | None = None,
94
+ extra_query: Query | None = None,
95
+ extra_body: Body | None = None,
96
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
97
+ ) -> ProjectLimits:
98
+ """Update resource limit overrides for a project.
99
+
100
+ Only fields present in the
101
+ request are modified. Set a field to 0 to remove that limit cap; omit a field to
102
+ leave it unchanged.
103
+
104
+ Args:
105
+ max_concurrent_invocations: Maximum concurrent app invocations for this project. Set to 0 to remove the cap;
106
+ omit to leave unchanged.
107
+
108
+ max_concurrent_sessions: Maximum concurrent browser sessions for this project. Set to 0 to remove the
109
+ cap; omit to leave unchanged.
110
+
111
+ max_persistent_sessions: Maximum persistent browser sessions for this project. Set to 0 to remove the
112
+ cap; omit to leave unchanged.
113
+
114
+ max_pooled_sessions: Maximum pooled sessions capacity for this project. Set to 0 to remove the cap;
115
+ omit to leave unchanged.
116
+
117
+ extra_headers: Send extra headers
118
+
119
+ extra_query: Add additional query parameters to the request
120
+
121
+ extra_body: Add additional JSON properties to the request
122
+
123
+ timeout: Override the client-level default timeout for this request, in seconds
124
+ """
125
+ if not id:
126
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
127
+ return self._patch(
128
+ path_template("/projects/{id}/limits", id=id),
129
+ body=maybe_transform(
130
+ {
131
+ "max_concurrent_invocations": max_concurrent_invocations,
132
+ "max_concurrent_sessions": max_concurrent_sessions,
133
+ "max_persistent_sessions": max_persistent_sessions,
134
+ "max_pooled_sessions": max_pooled_sessions,
135
+ },
136
+ limit_update_params.LimitUpdateParams,
137
+ ),
138
+ options=make_request_options(
139
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
140
+ ),
141
+ cast_to=ProjectLimits,
142
+ )
143
+
144
+
145
+ class AsyncLimitsResource(AsyncAPIResource):
146
+ """Create and manage projects for resource isolation within an organization."""
147
+
148
+ @cached_property
149
+ def with_raw_response(self) -> AsyncLimitsResourceWithRawResponse:
150
+ """
151
+ This property can be used as a prefix for any HTTP method call to return
152
+ the raw response object instead of the parsed content.
153
+
154
+ For more information, see https://www.github.com/kernel/kernel-python-sdk#accessing-raw-response-data-eg-headers
155
+ """
156
+ return AsyncLimitsResourceWithRawResponse(self)
157
+
158
+ @cached_property
159
+ def with_streaming_response(self) -> AsyncLimitsResourceWithStreamingResponse:
160
+ """
161
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
162
+
163
+ For more information, see https://www.github.com/kernel/kernel-python-sdk#with_streaming_response
164
+ """
165
+ return AsyncLimitsResourceWithStreamingResponse(self)
166
+
167
+ async def retrieve(
168
+ self,
169
+ id: str,
170
+ *,
171
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
172
+ # The extra values given here take precedence over values defined on the client or passed to this method.
173
+ extra_headers: Headers | None = None,
174
+ extra_query: Query | None = None,
175
+ extra_body: Body | None = None,
176
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
177
+ ) -> ProjectLimits:
178
+ """Get the resource limit overrides for a project.
179
+
180
+ Null values mean no
181
+ project-level cap (org limit applies).
182
+
183
+ Args:
184
+ extra_headers: Send extra headers
185
+
186
+ extra_query: Add additional query parameters to the request
187
+
188
+ extra_body: Add additional JSON properties to the request
189
+
190
+ timeout: Override the client-level default timeout for this request, in seconds
191
+ """
192
+ if not id:
193
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
194
+ return await self._get(
195
+ path_template("/projects/{id}/limits", id=id),
196
+ options=make_request_options(
197
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
198
+ ),
199
+ cast_to=ProjectLimits,
200
+ )
201
+
202
+ async def update(
203
+ self,
204
+ id: str,
205
+ *,
206
+ max_concurrent_invocations: Optional[int] | Omit = omit,
207
+ max_concurrent_sessions: Optional[int] | Omit = omit,
208
+ max_persistent_sessions: Optional[int] | Omit = omit,
209
+ max_pooled_sessions: Optional[int] | Omit = omit,
210
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
211
+ # The extra values given here take precedence over values defined on the client or passed to this method.
212
+ extra_headers: Headers | None = None,
213
+ extra_query: Query | None = None,
214
+ extra_body: Body | None = None,
215
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
216
+ ) -> ProjectLimits:
217
+ """Update resource limit overrides for a project.
218
+
219
+ Only fields present in the
220
+ request are modified. Set a field to 0 to remove that limit cap; omit a field to
221
+ leave it unchanged.
222
+
223
+ Args:
224
+ max_concurrent_invocations: Maximum concurrent app invocations for this project. Set to 0 to remove the cap;
225
+ omit to leave unchanged.
226
+
227
+ max_concurrent_sessions: Maximum concurrent browser sessions for this project. Set to 0 to remove the
228
+ cap; omit to leave unchanged.
229
+
230
+ max_persistent_sessions: Maximum persistent browser sessions for this project. Set to 0 to remove the
231
+ cap; omit to leave unchanged.
232
+
233
+ max_pooled_sessions: Maximum pooled sessions capacity for this project. Set to 0 to remove the cap;
234
+ omit to leave unchanged.
235
+
236
+ extra_headers: Send extra headers
237
+
238
+ extra_query: Add additional query parameters to the request
239
+
240
+ extra_body: Add additional JSON properties to the request
241
+
242
+ timeout: Override the client-level default timeout for this request, in seconds
243
+ """
244
+ if not id:
245
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
246
+ return await self._patch(
247
+ path_template("/projects/{id}/limits", id=id),
248
+ body=await async_maybe_transform(
249
+ {
250
+ "max_concurrent_invocations": max_concurrent_invocations,
251
+ "max_concurrent_sessions": max_concurrent_sessions,
252
+ "max_persistent_sessions": max_persistent_sessions,
253
+ "max_pooled_sessions": max_pooled_sessions,
254
+ },
255
+ limit_update_params.LimitUpdateParams,
256
+ ),
257
+ options=make_request_options(
258
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
259
+ ),
260
+ cast_to=ProjectLimits,
261
+ )
262
+
263
+
264
+ class LimitsResourceWithRawResponse:
265
+ def __init__(self, limits: LimitsResource) -> None:
266
+ self._limits = limits
267
+
268
+ self.retrieve = to_raw_response_wrapper(
269
+ limits.retrieve,
270
+ )
271
+ self.update = to_raw_response_wrapper(
272
+ limits.update,
273
+ )
274
+
275
+
276
+ class AsyncLimitsResourceWithRawResponse:
277
+ def __init__(self, limits: AsyncLimitsResource) -> None:
278
+ self._limits = limits
279
+
280
+ self.retrieve = async_to_raw_response_wrapper(
281
+ limits.retrieve,
282
+ )
283
+ self.update = async_to_raw_response_wrapper(
284
+ limits.update,
285
+ )
286
+
287
+
288
+ class LimitsResourceWithStreamingResponse:
289
+ def __init__(self, limits: LimitsResource) -> None:
290
+ self._limits = limits
291
+
292
+ self.retrieve = to_streamed_response_wrapper(
293
+ limits.retrieve,
294
+ )
295
+ self.update = to_streamed_response_wrapper(
296
+ limits.update,
297
+ )
298
+
299
+
300
+ class AsyncLimitsResourceWithStreamingResponse:
301
+ def __init__(self, limits: AsyncLimitsResource) -> None:
302
+ self._limits = limits
303
+
304
+ self.retrieve = async_to_streamed_response_wrapper(
305
+ limits.retrieve,
306
+ )
307
+ self.update = async_to_streamed_response_wrapper(
308
+ limits.update,
309
+ )