kernel 0.72.0__tar.gz → 0.73.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 (352) hide show
  1. kernel-0.73.0/.release-please-manifest.json +3 -0
  2. {kernel-0.72.0 → kernel-0.73.0}/CHANGELOG.md +8 -0
  3. {kernel-0.72.0 → kernel-0.73.0}/PKG-INFO +1 -1
  4. {kernel-0.72.0 → kernel-0.73.0}/api.md +1 -0
  5. {kernel-0.72.0 → kernel-0.73.0}/pyproject.toml +1 -1
  6. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_version.py +1 -1
  7. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/audit_logs.py +197 -2
  8. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/__init__.py +1 -0
  9. kernel-0.73.0/src/kernel/types/audit_log_export_chunk_params.py +47 -0
  10. kernel-0.73.0/tests/api_resources/test_audit_logs.py +276 -0
  11. kernel-0.72.0/.release-please-manifest.json +0 -3
  12. kernel-0.72.0/tests/api_resources/test_audit_logs.py +0 -134
  13. {kernel-0.72.0 → kernel-0.73.0}/.gitignore +0 -0
  14. {kernel-0.72.0 → kernel-0.73.0}/CONTRIBUTING.md +0 -0
  15. {kernel-0.72.0 → kernel-0.73.0}/LICENSE +0 -0
  16. {kernel-0.72.0 → kernel-0.73.0}/README.md +0 -0
  17. {kernel-0.72.0 → kernel-0.73.0}/SECURITY.md +0 -0
  18. {kernel-0.72.0 → kernel-0.73.0}/bin/check-release-environment +0 -0
  19. {kernel-0.72.0 → kernel-0.73.0}/bin/publish-pypi +0 -0
  20. {kernel-0.72.0 → kernel-0.73.0}/examples/.keep +0 -0
  21. {kernel-0.72.0 → kernel-0.73.0}/examples/browser_routing.py +0 -0
  22. {kernel-0.72.0 → kernel-0.73.0}/examples/browser_telemetry.py +0 -0
  23. {kernel-0.72.0 → kernel-0.73.0}/noxfile.py +0 -0
  24. {kernel-0.72.0 → kernel-0.73.0}/release-please-config.json +0 -0
  25. {kernel-0.72.0 → kernel-0.73.0}/requirements-dev.lock +0 -0
  26. {kernel-0.72.0 → kernel-0.73.0}/requirements.lock +0 -0
  27. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/__init__.py +0 -0
  28. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_base_client.py +0 -0
  29. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_client.py +0 -0
  30. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_compat.py +0 -0
  31. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_constants.py +0 -0
  32. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_exceptions.py +0 -0
  33. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_files.py +0 -0
  34. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_models.py +0 -0
  35. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_qs.py +0 -0
  36. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_resource.py +0 -0
  37. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_response.py +0 -0
  38. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_streaming.py +0 -0
  39. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_types.py +0 -0
  40. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/__init__.py +0 -0
  41. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_compat.py +0 -0
  42. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_datetime_parse.py +0 -0
  43. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_json.py +0 -0
  44. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_logs.py +0 -0
  45. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_path.py +0 -0
  46. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_proxy.py +0 -0
  47. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_reflection.py +0 -0
  48. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_resources_proxy.py +0 -0
  49. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_streams.py +0 -0
  50. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_sync.py +0 -0
  51. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_transform.py +0 -0
  52. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_typing.py +0 -0
  53. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_utils.py +0 -0
  54. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/app_framework.py +0 -0
  55. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/.keep +0 -0
  56. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
  57. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
  58. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/routing.py +0 -0
  59. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/util.py +0 -0
  60. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/pagination.py +0 -0
  61. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/py.typed +0 -0
  62. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/__init__.py +0 -0
  63. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/api_keys.py +0 -0
  64. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/apps.py +0 -0
  65. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/__init__.py +0 -0
  66. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/auth.py +0 -0
  67. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/connections.py +0 -0
  68. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browser_pools.py +0 -0
  69. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/__init__.py +0 -0
  70. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/browsers.py +0 -0
  71. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/computer.py +0 -0
  72. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
  73. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
  74. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
  75. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/logs.py +0 -0
  76. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/playwright.py +0 -0
  77. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/process.py +0 -0
  78. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/replays.py +0 -0
  79. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/telemetry.py +0 -0
  80. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/credential_providers.py +0 -0
  81. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/credentials.py +0 -0
  82. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/deployments.py +0 -0
  83. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/extensions.py +0 -0
  84. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/invocations.py +0 -0
  85. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/__init__.py +0 -0
  86. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/limits.py +0 -0
  87. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/organization.py +0 -0
  88. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/profiles.py +0 -0
  89. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/__init__.py +0 -0
  90. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/limits.py +0 -0
  91. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/projects.py +0 -0
  92. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/proxies.py +0 -0
  93. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key.py +0 -0
  94. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_create_params.py +0 -0
  95. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_list_params.py +0 -0
  96. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_retrieve_params.py +0 -0
  97. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_rotate_params.py +0 -0
  98. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_update_params.py +0 -0
  99. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/app_list_params.py +0 -0
  100. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/app_list_response.py +0 -0
  101. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/audit_log_entry.py +0 -0
  102. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/audit_log_list_params.py +0 -0
  103. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/__init__.py +0 -0
  104. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_create_params.py +0 -0
  105. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
  106. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_list_params.py +0 -0
  107. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_login_params.py +0 -0
  108. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
  109. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_timeline_params.py +0 -0
  110. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_update_params.py +0 -0
  111. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/login_response.py +0 -0
  112. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/managed_auth.py +0 -0
  113. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/managed_auth_timeline_event.py +0 -0
  114. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
  115. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_create_params.py +0 -0
  116. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_create_response.py +0 -0
  117. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_curl_params.py +0 -0
  118. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_curl_response.py +0 -0
  119. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_list_params.py +0 -0
  120. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_list_response.py +0 -0
  121. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
  122. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool.py +0 -0
  123. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
  124. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_acquire_response.py +0 -0
  125. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_create_params.py +0 -0
  126. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
  127. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_list_params.py +0 -0
  128. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_ref.py +0 -0
  129. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_release_params.py +0 -0
  130. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_update_params.py +0 -0
  131. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_retrieve_params.py +0 -0
  132. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_retrieve_response.py +0 -0
  133. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_update_params.py +0 -0
  134. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_update_response.py +0 -0
  135. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_usage.py +0 -0
  136. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/__init__.py +0 -0
  137. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_api_call_event.py +0 -0
  138. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_call_stack.py +0 -0
  139. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_captcha_solve_result_event.py +0 -0
  140. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_cdp_connect_event.py +0 -0
  141. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_cdp_disconnect_event.py +0 -0
  142. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_console_error_event.py +0 -0
  143. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_console_log_event.py +0 -0
  144. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_event_context.py +0 -0
  145. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_event_source.py +0 -0
  146. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_http_headers.py +0 -0
  147. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_click_event.py +0 -0
  148. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_key_event.py +0 -0
  149. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_scroll_settled_event.py +0 -0
  150. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_live_view_connect_event.py +0 -0
  151. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_live_view_disconnect_event.py +0 -0
  152. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_disconnected_event.py +0 -0
  153. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_init_failed_event.py +0 -0
  154. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_reconnect_failed_event.py +0 -0
  155. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_reconnected_event.py +0 -0
  156. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_screenshot_event.py +0 -0
  157. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_idle_event.py +0 -0
  158. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_loading_failed_event.py +0 -0
  159. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_request_event.py +0 -0
  160. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_response_event.py +0 -0
  161. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_dom_content_loaded_event.py +0 -0
  162. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_layout_settled_event.py +0 -0
  163. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_layout_shift_event.py +0 -0
  164. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_lcp_event.py +0 -0
  165. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_load_event.py +0 -0
  166. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_navigation_event.py +0 -0
  167. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_navigation_settled_event.py +0 -0
  168. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_tab_opened_event.py +0 -0
  169. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_service_crashed_event.py +0 -0
  170. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_system_oom_kill_event.py +0 -0
  171. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_categories_config.py +0 -0
  172. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_categories_config_param.py +0 -0
  173. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_category_config.py +0 -0
  174. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_category_config_param.py +0 -0
  175. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_config.py +0 -0
  176. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_event.py +0 -0
  177. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
  178. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
  179. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
  180. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
  181. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
  182. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
  183. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
  184. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
  185. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
  186. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
  187. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
  188. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
  189. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
  190. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
  191. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
  192. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
  193. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
  194. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
  195. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
  196. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
  197. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
  198. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_move_params.py +0 -0
  199. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
  200. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
  201. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
  202. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
  203. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
  204. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
  205. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
  206. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
  207. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
  208. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
  209. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
  210. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
  211. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
  212. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
  213. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
  214. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
  215. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
  216. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
  217. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
  218. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
  219. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_status_response.py +0 -0
  220. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
  221. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
  222. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
  223. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
  224. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
  225. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
  226. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_events_params.py +0 -0
  227. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_events_response.py +0 -0
  228. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_stream_params.py +0 -0
  229. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_stream_response.py +0 -0
  230. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/created_api_key.py +0 -0
  231. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential.py +0 -0
  232. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_create_params.py +0 -0
  233. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_list_params.py +0 -0
  234. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider.py +0 -0
  235. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_create_params.py +0 -0
  236. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_item.py +0 -0
  237. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
  238. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_list_params.py +0 -0
  239. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_test_result.py +0 -0
  240. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_update_params.py +0 -0
  241. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_totp_code_response.py +0 -0
  242. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_update_params.py +0 -0
  243. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_create_params.py +0 -0
  244. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_create_response.py +0 -0
  245. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_follow_params.py +0 -0
  246. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_follow_response.py +0 -0
  247. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_list_params.py +0 -0
  248. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_list_response.py +0 -0
  249. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
  250. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_state_event.py +0 -0
  251. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
  252. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_get_response.py +0 -0
  253. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_list_params.py +0 -0
  254. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_list_response.py +0 -0
  255. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_upload_params.py +0 -0
  256. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_upload_response.py +0 -0
  257. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_create_params.py +0 -0
  258. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_create_response.py +0 -0
  259. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_follow_params.py +0 -0
  260. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_follow_response.py +0 -0
  261. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_browsers_response.py +0 -0
  262. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_params.py +0 -0
  263. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_response.py +0 -0
  264. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
  265. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_state_event.py +0 -0
  266. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_update_params.py +0 -0
  267. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_update_response.py +0 -0
  268. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/__init__.py +0 -0
  269. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/limit_update_params.py +0 -0
  270. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/org_limits.py +0 -0
  271. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile.py +0 -0
  272. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile_create_params.py +0 -0
  273. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile_list_params.py +0 -0
  274. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project.py +0 -0
  275. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_create_params.py +0 -0
  276. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_list_params.py +0 -0
  277. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_update_params.py +0 -0
  278. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/__init__.py +0 -0
  279. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/limit_update_params.py +0 -0
  280. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/project_limits.py +0 -0
  281. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_check_params.py +0 -0
  282. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_check_response.py +0 -0
  283. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_create_params.py +0 -0
  284. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_create_response.py +0 -0
  285. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_list_params.py +0 -0
  286. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_list_response.py +0 -0
  287. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
  288. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/__init__.py +0 -0
  289. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/app_action.py +0 -0
  290. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_extension.py +0 -0
  291. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_profile.py +0 -0
  292. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_viewport.py +0 -0
  293. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_detail.py +0 -0
  294. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_event.py +0 -0
  295. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_model.py +0 -0
  296. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
  297. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/log_event.py +0 -0
  298. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/__init__.py +0 -0
  299. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
  300. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
  301. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
  302. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/tags.py +0 -0
  303. {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/tags_param.py +0 -0
  304. {kernel-0.72.0 → kernel-0.73.0}/tests/__init__.py +0 -0
  305. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/__init__.py +0 -0
  306. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/auth/__init__.py +0 -0
  307. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/auth/test_connections.py +0 -0
  308. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/__init__.py +0 -0
  309. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
  310. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
  311. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_computer.py +0 -0
  312. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_fs.py +0 -0
  313. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_logs.py +0 -0
  314. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_playwright.py +0 -0
  315. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_process.py +0 -0
  316. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_replays.py +0 -0
  317. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_telemetry.py +0 -0
  318. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/organization/__init__.py +0 -0
  319. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/organization/test_limits.py +0 -0
  320. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/projects/__init__.py +0 -0
  321. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/projects/test_limits.py +0 -0
  322. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_api_keys.py +0 -0
  323. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_apps.py +0 -0
  324. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_browser_pools.py +0 -0
  325. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_browsers.py +0 -0
  326. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_credential_providers.py +0 -0
  327. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_credentials.py +0 -0
  328. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_deployments.py +0 -0
  329. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_extensions.py +0 -0
  330. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_invocations.py +0 -0
  331. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_profiles.py +0 -0
  332. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_projects.py +0 -0
  333. {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_proxies.py +0 -0
  334. {kernel-0.72.0 → kernel-0.73.0}/tests/conftest.py +0 -0
  335. {kernel-0.72.0 → kernel-0.73.0}/tests/sample_file.txt +0 -0
  336. {kernel-0.72.0 → kernel-0.73.0}/tests/test_browser_routing.py +0 -0
  337. {kernel-0.72.0 → kernel-0.73.0}/tests/test_client.py +0 -0
  338. {kernel-0.72.0 → kernel-0.73.0}/tests/test_extract_files.py +0 -0
  339. {kernel-0.72.0 → kernel-0.73.0}/tests/test_files.py +0 -0
  340. {kernel-0.72.0 → kernel-0.73.0}/tests/test_models.py +0 -0
  341. {kernel-0.72.0 → kernel-0.73.0}/tests/test_pagination.py +0 -0
  342. {kernel-0.72.0 → kernel-0.73.0}/tests/test_qs.py +0 -0
  343. {kernel-0.72.0 → kernel-0.73.0}/tests/test_required_args.py +0 -0
  344. {kernel-0.72.0 → kernel-0.73.0}/tests/test_response.py +0 -0
  345. {kernel-0.72.0 → kernel-0.73.0}/tests/test_streaming.py +0 -0
  346. {kernel-0.72.0 → kernel-0.73.0}/tests/test_transform.py +0 -0
  347. {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_datetime_parse.py +0 -0
  348. {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_json.py +0 -0
  349. {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_path.py +0 -0
  350. {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_proxy.py +0 -0
  351. {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_typing.py +0 -0
  352. {kernel-0.72.0 → kernel-0.73.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.73.0"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.73.0 (2026-07-01)
4
+
5
+ Full Changelog: [v0.72.0...v0.73.0](https://github.com/kernel/kernel-python-sdk/compare/v0.72.0...v0.73.0)
6
+
7
+ ### Features
8
+
9
+ * Add hidden audit-logs export endpoint ([619c672](https://github.com/kernel/kernel-python-sdk/commit/619c6720f986b835393793896bb5ad4b64f8673f))
10
+
3
11
  ## 0.72.0 (2026-06-26)
4
12
 
5
13
  Full Changelog: [v0.71.0...v0.72.0](https://github.com/kernel/kernel-python-sdk/compare/v0.71.0...v0.72.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kernel
3
- Version: 0.72.0
3
+ Version: 0.73.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
@@ -454,6 +454,7 @@ from kernel.types import AuditLogEntry
454
454
  Methods:
455
455
 
456
456
  - <code title="get /audit-logs">client.audit_logs.<a href="./src/kernel/resources/audit_logs.py">list</a>(\*\*<a href="src/kernel/types/audit_log_list_params.py">params</a>) -> <a href="./src/kernel/types/audit_log_entry.py">SyncPageTokenPagination[AuditLogEntry]</a></code>
457
+ - <code title="get /audit-logs/export/chunk">client.audit_logs.<a href="./src/kernel/resources/audit_logs.py">export_chunk</a>(\*\*<a href="src/kernel/types/audit_log_export_chunk_params.py">params</a>) -> BinaryAPIResponse</code>
457
458
 
458
459
  # APIKeys
459
460
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kernel"
3
- version = "0.72.0"
3
+ version = "0.73.0"
4
4
  description = "The official Python library for the kernel API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -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.72.0" # x-release-please-version
4
+ __version__ = "0.73.0" # x-release-please-version
@@ -4,19 +4,28 @@ from __future__ import annotations
4
4
 
5
5
  from typing import Union
6
6
  from datetime import datetime
7
+ from typing_extensions import Literal
7
8
 
8
9
  import httpx
9
10
 
10
- from ..types import audit_log_list_params
11
+ from ..types import audit_log_list_params, audit_log_export_chunk_params
11
12
  from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
12
- from .._utils import maybe_transform
13
+ from .._utils import maybe_transform, async_maybe_transform
13
14
  from .._compat import cached_property
14
15
  from .._resource import SyncAPIResource, AsyncAPIResource
15
16
  from .._response import (
17
+ BinaryAPIResponse,
18
+ AsyncBinaryAPIResponse,
19
+ StreamedBinaryAPIResponse,
20
+ AsyncStreamedBinaryAPIResponse,
16
21
  to_raw_response_wrapper,
17
22
  to_streamed_response_wrapper,
18
23
  async_to_raw_response_wrapper,
24
+ to_custom_raw_response_wrapper,
19
25
  async_to_streamed_response_wrapper,
26
+ to_custom_streamed_response_wrapper,
27
+ async_to_custom_raw_response_wrapper,
28
+ async_to_custom_streamed_response_wrapper,
20
29
  )
21
30
  from ..pagination import SyncPageTokenPagination, AsyncPageTokenPagination
22
31
  from .._base_client import AsyncPaginator, make_request_options
@@ -128,6 +137,91 @@ class AuditLogsResource(SyncAPIResource):
128
137
  model=AuditLogEntry,
129
138
  )
130
139
 
140
+ def export_chunk(
141
+ self,
142
+ *,
143
+ end: Union[str, datetime],
144
+ start: Union[str, datetime],
145
+ auth_strategy: str | Omit = omit,
146
+ cursor: str | Omit = omit,
147
+ exclude_method: str | Omit = omit,
148
+ format: Literal["jsonl", "jsonl.gz"] | Omit = omit,
149
+ limit: int | Omit = omit,
150
+ method: str | Omit = omit,
151
+ search: str | Omit = omit,
152
+ search_user_id: SequenceNotStr[str] | Omit = omit,
153
+ service: str | Omit = omit,
154
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
155
+ # The extra values given here take precedence over values defined on the client or passed to this method.
156
+ extra_headers: Headers | None = None,
157
+ extra_query: Query | None = None,
158
+ extra_body: Body | None = None,
159
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
160
+ ) -> BinaryAPIResponse:
161
+ """
162
+ Download an organization's audit log records for a time range as a file, for
163
+ archival, compliance, or offline analysis. For interactive browsing, use GET
164
+ /audit-logs.
165
+
166
+ Args:
167
+ end: Upper bound (exclusive) for the audit record timestamp.
168
+
169
+ start: Lower bound (inclusive) for the audit record timestamp.
170
+
171
+ auth_strategy: Filter by authentication strategy.
172
+
173
+ cursor: Opaque cursor from X-Next-Cursor for the next chunk of older records.
174
+
175
+ exclude_method: Filter out results by HTTP method.
176
+
177
+ format: Encoding for the returned chunk.
178
+
179
+ limit: Maximum number of records to return in this chunk.
180
+
181
+ method: Filter by HTTP method.
182
+
183
+ search: Free-text search over path, user ID, email, client IP, and status.
184
+
185
+ search_user_id: Additional user IDs to OR into free-text search.
186
+
187
+ service: Filter by service name.
188
+
189
+ extra_headers: Send extra headers
190
+
191
+ extra_query: Add additional query parameters to the request
192
+
193
+ extra_body: Add additional JSON properties to the request
194
+
195
+ timeout: Override the client-level default timeout for this request, in seconds
196
+ """
197
+ extra_headers = {"Accept": "application/octet-stream", **(extra_headers or {})}
198
+ return self._get(
199
+ "/audit-logs/export/chunk",
200
+ options=make_request_options(
201
+ extra_headers=extra_headers,
202
+ extra_query=extra_query,
203
+ extra_body=extra_body,
204
+ timeout=timeout,
205
+ query=maybe_transform(
206
+ {
207
+ "end": end,
208
+ "start": start,
209
+ "auth_strategy": auth_strategy,
210
+ "cursor": cursor,
211
+ "exclude_method": exclude_method,
212
+ "format": format,
213
+ "limit": limit,
214
+ "method": method,
215
+ "search": search,
216
+ "search_user_id": search_user_id,
217
+ "service": service,
218
+ },
219
+ audit_log_export_chunk_params.AuditLogExportChunkParams,
220
+ ),
221
+ ),
222
+ cast_to=BinaryAPIResponse,
223
+ )
224
+
131
225
 
132
226
  class AsyncAuditLogsResource(AsyncAPIResource):
133
227
  """Read audit log records for the authenticated organization."""
@@ -232,6 +326,91 @@ class AsyncAuditLogsResource(AsyncAPIResource):
232
326
  model=AuditLogEntry,
233
327
  )
234
328
 
329
+ async def export_chunk(
330
+ self,
331
+ *,
332
+ end: Union[str, datetime],
333
+ start: Union[str, datetime],
334
+ auth_strategy: str | Omit = omit,
335
+ cursor: str | Omit = omit,
336
+ exclude_method: str | Omit = omit,
337
+ format: Literal["jsonl", "jsonl.gz"] | Omit = omit,
338
+ limit: int | Omit = omit,
339
+ method: str | Omit = omit,
340
+ search: str | Omit = omit,
341
+ search_user_id: SequenceNotStr[str] | Omit = omit,
342
+ service: str | Omit = omit,
343
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
344
+ # The extra values given here take precedence over values defined on the client or passed to this method.
345
+ extra_headers: Headers | None = None,
346
+ extra_query: Query | None = None,
347
+ extra_body: Body | None = None,
348
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
349
+ ) -> AsyncBinaryAPIResponse:
350
+ """
351
+ Download an organization's audit log records for a time range as a file, for
352
+ archival, compliance, or offline analysis. For interactive browsing, use GET
353
+ /audit-logs.
354
+
355
+ Args:
356
+ end: Upper bound (exclusive) for the audit record timestamp.
357
+
358
+ start: Lower bound (inclusive) for the audit record timestamp.
359
+
360
+ auth_strategy: Filter by authentication strategy.
361
+
362
+ cursor: Opaque cursor from X-Next-Cursor for the next chunk of older records.
363
+
364
+ exclude_method: Filter out results by HTTP method.
365
+
366
+ format: Encoding for the returned chunk.
367
+
368
+ limit: Maximum number of records to return in this chunk.
369
+
370
+ method: Filter by HTTP method.
371
+
372
+ search: Free-text search over path, user ID, email, client IP, and status.
373
+
374
+ search_user_id: Additional user IDs to OR into free-text search.
375
+
376
+ service: Filter by service name.
377
+
378
+ extra_headers: Send extra headers
379
+
380
+ extra_query: Add additional query parameters to the request
381
+
382
+ extra_body: Add additional JSON properties to the request
383
+
384
+ timeout: Override the client-level default timeout for this request, in seconds
385
+ """
386
+ extra_headers = {"Accept": "application/octet-stream", **(extra_headers or {})}
387
+ return await self._get(
388
+ "/audit-logs/export/chunk",
389
+ options=make_request_options(
390
+ extra_headers=extra_headers,
391
+ extra_query=extra_query,
392
+ extra_body=extra_body,
393
+ timeout=timeout,
394
+ query=await async_maybe_transform(
395
+ {
396
+ "end": end,
397
+ "start": start,
398
+ "auth_strategy": auth_strategy,
399
+ "cursor": cursor,
400
+ "exclude_method": exclude_method,
401
+ "format": format,
402
+ "limit": limit,
403
+ "method": method,
404
+ "search": search,
405
+ "search_user_id": search_user_id,
406
+ "service": service,
407
+ },
408
+ audit_log_export_chunk_params.AuditLogExportChunkParams,
409
+ ),
410
+ ),
411
+ cast_to=AsyncBinaryAPIResponse,
412
+ )
413
+
235
414
 
236
415
  class AuditLogsResourceWithRawResponse:
237
416
  def __init__(self, audit_logs: AuditLogsResource) -> None:
@@ -240,6 +419,10 @@ class AuditLogsResourceWithRawResponse:
240
419
  self.list = to_raw_response_wrapper(
241
420
  audit_logs.list,
242
421
  )
422
+ self.export_chunk = to_custom_raw_response_wrapper(
423
+ audit_logs.export_chunk,
424
+ BinaryAPIResponse,
425
+ )
243
426
 
244
427
 
245
428
  class AsyncAuditLogsResourceWithRawResponse:
@@ -249,6 +432,10 @@ class AsyncAuditLogsResourceWithRawResponse:
249
432
  self.list = async_to_raw_response_wrapper(
250
433
  audit_logs.list,
251
434
  )
435
+ self.export_chunk = async_to_custom_raw_response_wrapper(
436
+ audit_logs.export_chunk,
437
+ AsyncBinaryAPIResponse,
438
+ )
252
439
 
253
440
 
254
441
  class AuditLogsResourceWithStreamingResponse:
@@ -258,6 +445,10 @@ class AuditLogsResourceWithStreamingResponse:
258
445
  self.list = to_streamed_response_wrapper(
259
446
  audit_logs.list,
260
447
  )
448
+ self.export_chunk = to_custom_streamed_response_wrapper(
449
+ audit_logs.export_chunk,
450
+ StreamedBinaryAPIResponse,
451
+ )
261
452
 
262
453
 
263
454
  class AsyncAuditLogsResourceWithStreamingResponse:
@@ -267,3 +458,7 @@ class AsyncAuditLogsResourceWithStreamingResponse:
267
458
  self.list = async_to_streamed_response_wrapper(
268
459
  audit_logs.list,
269
460
  )
461
+ self.export_chunk = async_to_custom_streamed_response_wrapper(
462
+ audit_logs.export_chunk,
463
+ AsyncStreamedBinaryAPIResponse,
464
+ )
@@ -90,6 +90,7 @@ from .browser_pool_acquire_params import BrowserPoolAcquireParams as BrowserPool
90
90
  from .browser_pool_release_params import BrowserPoolReleaseParams as BrowserPoolReleaseParams
91
91
  from .deployment_retrieve_response import DeploymentRetrieveResponse as DeploymentRetrieveResponse
92
92
  from .invocation_retrieve_response import InvocationRetrieveResponse as InvocationRetrieveResponse
93
+ from .audit_log_export_chunk_params import AuditLogExportChunkParams as AuditLogExportChunkParams
93
94
  from .browser_pool_acquire_response import BrowserPoolAcquireResponse as BrowserPoolAcquireResponse
94
95
  from .credential_totp_code_response import CredentialTotpCodeResponse as CredentialTotpCodeResponse
95
96
  from .browser_load_extensions_params import BrowserLoadExtensionsParams as BrowserLoadExtensionsParams
@@ -0,0 +1,47 @@
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 Union
6
+ from datetime import datetime
7
+ from typing_extensions import Literal, Required, Annotated, TypedDict
8
+
9
+ from .._types import SequenceNotStr
10
+ from .._utils import PropertyInfo
11
+
12
+ __all__ = ["AuditLogExportChunkParams"]
13
+
14
+
15
+ class AuditLogExportChunkParams(TypedDict, total=False):
16
+ end: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
17
+ """Upper bound (exclusive) for the audit record timestamp."""
18
+
19
+ start: Required[Annotated[Union[str, datetime], PropertyInfo(format="iso8601")]]
20
+ """Lower bound (inclusive) for the audit record timestamp."""
21
+
22
+ auth_strategy: str
23
+ """Filter by authentication strategy."""
24
+
25
+ cursor: str
26
+ """Opaque cursor from X-Next-Cursor for the next chunk of older records."""
27
+
28
+ exclude_method: str
29
+ """Filter out results by HTTP method."""
30
+
31
+ format: Literal["jsonl", "jsonl.gz"]
32
+ """Encoding for the returned chunk."""
33
+
34
+ limit: int
35
+ """Maximum number of records to return in this chunk."""
36
+
37
+ method: str
38
+ """Filter by HTTP method."""
39
+
40
+ search: str
41
+ """Free-text search over path, user ID, email, client IP, and status."""
42
+
43
+ search_user_id: SequenceNotStr[str]
44
+ """Additional user IDs to OR into free-text search."""
45
+
46
+ service: str
47
+ """Filter by service name."""
@@ -0,0 +1,276 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ import os
6
+ from typing import Any, cast
7
+
8
+ import httpx
9
+ import pytest
10
+ from respx import MockRouter
11
+
12
+ from kernel import Kernel, AsyncKernel
13
+ from tests.utils import assert_matches_type
14
+ from kernel.types import AuditLogEntry
15
+ from kernel._utils import parse_datetime
16
+ from kernel._response import (
17
+ BinaryAPIResponse,
18
+ AsyncBinaryAPIResponse,
19
+ StreamedBinaryAPIResponse,
20
+ AsyncStreamedBinaryAPIResponse,
21
+ )
22
+ from kernel.pagination import SyncPageTokenPagination, AsyncPageTokenPagination
23
+
24
+ base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
25
+
26
+
27
+ class TestAuditLogs:
28
+ parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
29
+
30
+ @pytest.mark.skip(reason="Mock server tests are disabled")
31
+ @parametrize
32
+ def test_method_list(self, client: Kernel) -> None:
33
+ audit_log = client.audit_logs.list(
34
+ end=parse_datetime("2026-01-02T00:00:00Z"),
35
+ start=parse_datetime("2026-01-01T00:00:00Z"),
36
+ )
37
+ assert_matches_type(SyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
38
+
39
+ @pytest.mark.skip(reason="Mock server tests are disabled")
40
+ @parametrize
41
+ def test_method_list_with_all_params(self, client: Kernel) -> None:
42
+ audit_log = client.audit_logs.list(
43
+ end=parse_datetime("2026-01-02T00:00:00Z"),
44
+ start=parse_datetime("2026-01-01T00:00:00Z"),
45
+ auth_strategy="auth_strategy",
46
+ exclude_method="exclude_method",
47
+ limit=1,
48
+ method="method",
49
+ page_token="page_token",
50
+ search="search",
51
+ search_user_id=["string"],
52
+ service="service",
53
+ )
54
+ assert_matches_type(SyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
55
+
56
+ @pytest.mark.skip(reason="Mock server tests are disabled")
57
+ @parametrize
58
+ def test_raw_response_list(self, client: Kernel) -> None:
59
+ response = client.audit_logs.with_raw_response.list(
60
+ end=parse_datetime("2026-01-02T00:00:00Z"),
61
+ start=parse_datetime("2026-01-01T00:00:00Z"),
62
+ )
63
+
64
+ assert response.is_closed is True
65
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
66
+ audit_log = response.parse()
67
+ assert_matches_type(SyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
68
+
69
+ @pytest.mark.skip(reason="Mock server tests are disabled")
70
+ @parametrize
71
+ def test_streaming_response_list(self, client: Kernel) -> None:
72
+ with client.audit_logs.with_streaming_response.list(
73
+ end=parse_datetime("2026-01-02T00:00:00Z"),
74
+ start=parse_datetime("2026-01-01T00:00:00Z"),
75
+ ) as response:
76
+ assert not response.is_closed
77
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
78
+
79
+ audit_log = response.parse()
80
+ assert_matches_type(SyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
81
+
82
+ assert cast(Any, response.is_closed) is True
83
+
84
+ @parametrize
85
+ @pytest.mark.respx(base_url=base_url)
86
+ def test_method_export_chunk(self, client: Kernel, respx_mock: MockRouter) -> None:
87
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
88
+ audit_log = client.audit_logs.export_chunk(
89
+ end=parse_datetime("2026-01-02T00:00:00Z"),
90
+ start=parse_datetime("2026-01-01T00:00:00Z"),
91
+ )
92
+ assert audit_log.is_closed
93
+ assert audit_log.json() == {"foo": "bar"}
94
+ assert cast(Any, audit_log.is_closed) is True
95
+ assert isinstance(audit_log, BinaryAPIResponse)
96
+
97
+ @parametrize
98
+ @pytest.mark.respx(base_url=base_url)
99
+ def test_method_export_chunk_with_all_params(self, client: Kernel, respx_mock: MockRouter) -> None:
100
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
101
+ audit_log = client.audit_logs.export_chunk(
102
+ end=parse_datetime("2026-01-02T00:00:00Z"),
103
+ start=parse_datetime("2026-01-01T00:00:00Z"),
104
+ auth_strategy="auth_strategy",
105
+ cursor="cursor",
106
+ exclude_method="exclude_method",
107
+ format="jsonl",
108
+ limit=1,
109
+ method="method",
110
+ search="search",
111
+ search_user_id=["string"],
112
+ service="service",
113
+ )
114
+ assert audit_log.is_closed
115
+ assert audit_log.json() == {"foo": "bar"}
116
+ assert cast(Any, audit_log.is_closed) is True
117
+ assert isinstance(audit_log, BinaryAPIResponse)
118
+
119
+ @parametrize
120
+ @pytest.mark.respx(base_url=base_url)
121
+ def test_raw_response_export_chunk(self, client: Kernel, respx_mock: MockRouter) -> None:
122
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
123
+
124
+ audit_log = client.audit_logs.with_raw_response.export_chunk(
125
+ end=parse_datetime("2026-01-02T00:00:00Z"),
126
+ start=parse_datetime("2026-01-01T00:00:00Z"),
127
+ )
128
+
129
+ assert audit_log.is_closed is True
130
+ assert audit_log.http_request.headers.get("X-Stainless-Lang") == "python"
131
+ assert audit_log.json() == {"foo": "bar"}
132
+ assert isinstance(audit_log, BinaryAPIResponse)
133
+
134
+ @parametrize
135
+ @pytest.mark.respx(base_url=base_url)
136
+ def test_streaming_response_export_chunk(self, client: Kernel, respx_mock: MockRouter) -> None:
137
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
138
+ with client.audit_logs.with_streaming_response.export_chunk(
139
+ end=parse_datetime("2026-01-02T00:00:00Z"),
140
+ start=parse_datetime("2026-01-01T00:00:00Z"),
141
+ ) as audit_log:
142
+ assert not audit_log.is_closed
143
+ assert audit_log.http_request.headers.get("X-Stainless-Lang") == "python"
144
+
145
+ assert audit_log.json() == {"foo": "bar"}
146
+ assert cast(Any, audit_log.is_closed) is True
147
+ assert isinstance(audit_log, StreamedBinaryAPIResponse)
148
+
149
+ assert cast(Any, audit_log.is_closed) is True
150
+
151
+
152
+ class TestAsyncAuditLogs:
153
+ parametrize = pytest.mark.parametrize(
154
+ "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
155
+ )
156
+
157
+ @pytest.mark.skip(reason="Mock server tests are disabled")
158
+ @parametrize
159
+ async def test_method_list(self, async_client: AsyncKernel) -> None:
160
+ audit_log = await async_client.audit_logs.list(
161
+ end=parse_datetime("2026-01-02T00:00:00Z"),
162
+ start=parse_datetime("2026-01-01T00:00:00Z"),
163
+ )
164
+ assert_matches_type(AsyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
165
+
166
+ @pytest.mark.skip(reason="Mock server tests are disabled")
167
+ @parametrize
168
+ async def test_method_list_with_all_params(self, async_client: AsyncKernel) -> None:
169
+ audit_log = await async_client.audit_logs.list(
170
+ end=parse_datetime("2026-01-02T00:00:00Z"),
171
+ start=parse_datetime("2026-01-01T00:00:00Z"),
172
+ auth_strategy="auth_strategy",
173
+ exclude_method="exclude_method",
174
+ limit=1,
175
+ method="method",
176
+ page_token="page_token",
177
+ search="search",
178
+ search_user_id=["string"],
179
+ service="service",
180
+ )
181
+ assert_matches_type(AsyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
182
+
183
+ @pytest.mark.skip(reason="Mock server tests are disabled")
184
+ @parametrize
185
+ async def test_raw_response_list(self, async_client: AsyncKernel) -> None:
186
+ response = await async_client.audit_logs.with_raw_response.list(
187
+ end=parse_datetime("2026-01-02T00:00:00Z"),
188
+ start=parse_datetime("2026-01-01T00:00:00Z"),
189
+ )
190
+
191
+ assert response.is_closed is True
192
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
193
+ audit_log = await response.parse()
194
+ assert_matches_type(AsyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
195
+
196
+ @pytest.mark.skip(reason="Mock server tests are disabled")
197
+ @parametrize
198
+ async def test_streaming_response_list(self, async_client: AsyncKernel) -> None:
199
+ async with async_client.audit_logs.with_streaming_response.list(
200
+ end=parse_datetime("2026-01-02T00:00:00Z"),
201
+ start=parse_datetime("2026-01-01T00:00:00Z"),
202
+ ) as response:
203
+ assert not response.is_closed
204
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
205
+
206
+ audit_log = await response.parse()
207
+ assert_matches_type(AsyncPageTokenPagination[AuditLogEntry], audit_log, path=["response"])
208
+
209
+ assert cast(Any, response.is_closed) is True
210
+
211
+ @parametrize
212
+ @pytest.mark.respx(base_url=base_url)
213
+ async def test_method_export_chunk(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
214
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
215
+ audit_log = await async_client.audit_logs.export_chunk(
216
+ end=parse_datetime("2026-01-02T00:00:00Z"),
217
+ start=parse_datetime("2026-01-01T00:00:00Z"),
218
+ )
219
+ assert audit_log.is_closed
220
+ assert await audit_log.json() == {"foo": "bar"}
221
+ assert cast(Any, audit_log.is_closed) is True
222
+ assert isinstance(audit_log, AsyncBinaryAPIResponse)
223
+
224
+ @parametrize
225
+ @pytest.mark.respx(base_url=base_url)
226
+ async def test_method_export_chunk_with_all_params(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
227
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
228
+ audit_log = await async_client.audit_logs.export_chunk(
229
+ end=parse_datetime("2026-01-02T00:00:00Z"),
230
+ start=parse_datetime("2026-01-01T00:00:00Z"),
231
+ auth_strategy="auth_strategy",
232
+ cursor="cursor",
233
+ exclude_method="exclude_method",
234
+ format="jsonl",
235
+ limit=1,
236
+ method="method",
237
+ search="search",
238
+ search_user_id=["string"],
239
+ service="service",
240
+ )
241
+ assert audit_log.is_closed
242
+ assert await audit_log.json() == {"foo": "bar"}
243
+ assert cast(Any, audit_log.is_closed) is True
244
+ assert isinstance(audit_log, AsyncBinaryAPIResponse)
245
+
246
+ @parametrize
247
+ @pytest.mark.respx(base_url=base_url)
248
+ async def test_raw_response_export_chunk(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
249
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
250
+
251
+ audit_log = await async_client.audit_logs.with_raw_response.export_chunk(
252
+ end=parse_datetime("2026-01-02T00:00:00Z"),
253
+ start=parse_datetime("2026-01-01T00:00:00Z"),
254
+ )
255
+
256
+ assert audit_log.is_closed is True
257
+ assert audit_log.http_request.headers.get("X-Stainless-Lang") == "python"
258
+ assert await audit_log.json() == {"foo": "bar"}
259
+ assert isinstance(audit_log, AsyncBinaryAPIResponse)
260
+
261
+ @parametrize
262
+ @pytest.mark.respx(base_url=base_url)
263
+ async def test_streaming_response_export_chunk(self, async_client: AsyncKernel, respx_mock: MockRouter) -> None:
264
+ respx_mock.get("/audit-logs/export/chunk").mock(return_value=httpx.Response(200, json={"foo": "bar"}))
265
+ async with async_client.audit_logs.with_streaming_response.export_chunk(
266
+ end=parse_datetime("2026-01-02T00:00:00Z"),
267
+ start=parse_datetime("2026-01-01T00:00:00Z"),
268
+ ) as audit_log:
269
+ assert not audit_log.is_closed
270
+ assert audit_log.http_request.headers.get("X-Stainless-Lang") == "python"
271
+
272
+ assert await audit_log.json() == {"foo": "bar"}
273
+ assert cast(Any, audit_log.is_closed) is True
274
+ assert isinstance(audit_log, AsyncStreamedBinaryAPIResponse)
275
+
276
+ assert cast(Any, audit_log.is_closed) is True
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.72.0"
3
- }