kernel 0.69.0__tar.gz → 0.71.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.
- kernel-0.71.0/.release-please-manifest.json +3 -0
- {kernel-0.69.0 → kernel-0.71.0}/CHANGELOG.md +27 -0
- {kernel-0.69.0 → kernel-0.71.0}/PKG-INFO +1 -1
- {kernel-0.69.0 → kernel-0.71.0}/api.md +19 -2
- {kernel-0.69.0 → kernel-0.71.0}/pyproject.toml +1 -1
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_client.py +44 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_version.py +1 -1
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/lib/browser_routing/routing.py +20 -2
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/pagination.py +81 -1
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/__init__.py +14 -0
- kernel-0.71.0/src/kernel/resources/audit_logs.py +269 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/auth/connections.py +127 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browser_pools.py +28 -8
- kernel-0.71.0/src/kernel/resources/browsers/telemetry.py +403 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/extensions.py +81 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/projects/projects.py +6 -4
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/__init__.py +5 -0
- kernel-0.71.0/src/kernel/types/audit_log_entry.py +45 -0
- kernel-0.71.0/src/kernel/types/audit_log_list_params.py +44 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/__init__.py +2 -0
- kernel-0.71.0/src/kernel/types/auth/connection_timeline_params.py +18 -0
- kernel-0.71.0/src/kernel/types/auth/managed_auth_timeline_event.py +77 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool.py +6 -2
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_acquire_params.py +7 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_create_params.py +6 -2
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_update_params.py +6 -2
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/__init__.py +3 -0
- kernel-0.71.0/src/kernel/types/browsers/telemetry_events_params.py +52 -0
- kernel-0.71.0/src/kernel/types/browsers/telemetry_events_response.py +36 -0
- kernel-0.71.0/src/kernel/types/browsers/telemetry_stream_params.py +20 -0
- kernel-0.71.0/src/kernel/types/extension_get_response.py +30 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/browser_viewport.py +4 -3
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared_params/browser_viewport.py +4 -3
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/auth/test_connections.py +107 -0
- kernel-0.71.0/tests/api_resources/browsers/test_telemetry.py +237 -0
- kernel-0.71.0/tests/api_resources/test_audit_logs.py +134 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_browser_pools.py +6 -4
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_extensions.py +85 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_browser_routing.py +47 -2
- kernel-0.69.0/.release-please-manifest.json +0 -3
- kernel-0.69.0/src/kernel/resources/browsers/telemetry.py +0 -195
- kernel-0.69.0/tests/api_resources/browsers/test_telemetry.py +0 -122
- {kernel-0.69.0 → kernel-0.71.0}/.gitignore +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/CONTRIBUTING.md +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/LICENSE +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/README.md +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/SECURITY.md +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/bin/check-release-environment +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/bin/publish-pypi +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/examples/.keep +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/examples/browser_routing.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/examples/browser_telemetry.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/noxfile.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/release-please-config.json +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/requirements-dev.lock +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/requirements.lock +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_base_client.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_compat.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_constants.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_exceptions.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_files.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_models.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_qs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_resource.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_streaming.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_types.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_compat.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_datetime_parse.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_json.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_logs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_path.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_proxy.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_reflection.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_resources_proxy.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_streams.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_sync.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_transform.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_typing.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/_utils/_utils.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/app_framework.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/lib/.keep +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/lib/browser_routing/util.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/py.typed +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/api_keys.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/apps.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/auth/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/auth/auth.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/browsers.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/computer.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/logs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/playwright.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/process.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/browsers/replays.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/credential_providers.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/credentials.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/deployments.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/invocations.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/organization/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/organization/limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/organization/organization.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/profiles.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/projects/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/projects/limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/resources/proxies.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key_retrieve_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key_rotate_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/api_key_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/app_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/app_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_login_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/connection_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/login_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/managed_auth.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_create_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_curl_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_curl_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_acquire_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_ref.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_pool_release_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_retrieve_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_retrieve_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_update_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browser_usage.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_api_call_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_call_stack.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_captcha_solve_result_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_cdp_connect_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_cdp_disconnect_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_console_error_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_console_log_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_event_context.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_event_source.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_http_headers.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_interaction_click_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_interaction_key_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_interaction_scroll_settled_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_live_view_connect_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_live_view_disconnect_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_monitor_disconnected_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_monitor_init_failed_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_monitor_reconnect_failed_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_monitor_reconnected_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_monitor_screenshot_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_network_idle_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_network_loading_failed_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_network_request_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_network_response_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_dom_content_loaded_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_layout_settled_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_layout_shift_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_lcp_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_load_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_navigation_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_navigation_settled_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_page_tab_opened_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_service_crashed_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_system_oom_kill_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_categories_config.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_categories_config_param.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_category_config.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_category_config_param.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_config.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/browser_telemetry_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_move_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_status_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/browsers/telemetry_stream_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/created_api_key.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_item.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_test_result.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_provider_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_totp_code_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/credential_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_create_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_follow_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_follow_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/deployment_state_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/extension_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/extension_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/extension_upload_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/extension_upload_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_create_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_follow_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_follow_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_list_browsers_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_state_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/invocation_update_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/organization/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/organization/limit_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/organization/org_limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/profile.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/profile_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/profile_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/project.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/project_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/project_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/project_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/projects/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/projects/limit_update_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/projects/project_limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_check_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_check_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_create_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_create_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_list_params.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_list_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/app_action.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/browser_extension.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/browser_profile.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/error_detail.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/error_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/error_model.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared/log_event.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared_params/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/tags.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/src/kernel/types/tags_param.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/auth/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_computer.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_fs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_logs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_playwright.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_process.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/browsers/test_replays.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/organization/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/organization/test_limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/projects/__init__.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/projects/test_limits.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_api_keys.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_apps.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_browsers.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_credential_providers.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_credentials.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_deployments.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_invocations.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_profiles.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_projects.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/api_resources/test_proxies.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/conftest.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/sample_file.txt +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_client.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_extract_files.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_files.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_models.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_pagination.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_qs.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_required_args.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_response.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_streaming.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_transform.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_utils/test_json.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_utils/test_path.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_utils/test_proxy.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/test_utils/test_typing.py +0 -0
- {kernel-0.69.0 → kernel-0.71.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.71.0 (2026-06-26)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.70.0...v0.71.0](https://github.com/kernel/kernel-python-sdk/compare/v0.70.0...v0.71.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* Add auth connection event timeline endpoint ([871432f](https://github.com/kernel/kernel-python-sdk/commit/871432f827c95b11d132f60b3547c9986e266f6b))
|
|
10
|
+
* Expose audit logs in public SDK ([9c8e9ac](https://github.com/kernel/kernel-python-sdk/commit/9c8e9ace1cdddc6ce727b38fec62beaba6c6fa20))
|
|
11
|
+
|
|
12
|
+
## 0.70.0 (2026-06-24)
|
|
13
|
+
|
|
14
|
+
Full Changelog: [v0.69.0...v0.70.0](https://github.com/kernel/kernel-python-sdk/compare/v0.69.0...v0.70.0)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* Add GET /browsers/{id}/telemetry/events (read from S2) ([57eb393](https://github.com/kernel/kernel-python-sdk/commit/57eb393ea1eb5fb0d2e5211845f338610198a0fd))
|
|
19
|
+
* Align browser-pool timeout/viewport/fill-rate contract with implementation; reject save_changes on update ([4fddd6b](https://github.com/kernel/kernel-python-sdk/commit/4fddd6bb3f2ccb86ec3cc492311d5fe9c061ba49))
|
|
20
|
+
* api: support per-acquire start_url override on browser pool acquire ([3e11311](https://github.com/kernel/kernel-python-sdk/commit/3e11311f835d558c4fa6ab0c0fb8a9c7e3536a13))
|
|
21
|
+
* **api:** add GET /extensions/{id_or_name}/metadata ([681a8fc](https://github.com/kernel/kernel-python-sdk/commit/681a8fcd7d8ec5c3373a66c81fb405a6844308eb))
|
|
22
|
+
* **api:** resolve GET /org/projects/{id} by ID or name ([52eb598](https://github.com/kernel/kernel-python-sdk/commit/52eb598c7bfd6e696f0d510585439ba5658dc161))
|
|
23
|
+
* Forward replay param through telemetry stream passthrough ([a8001d2](https://github.com/kernel/kernel-python-sdk/commit/a8001d239ae583fa177164e1ce900e767797c853))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* don't misroute telemetry/events to the browser VM ([9bcc418](https://github.com/kernel/kernel-python-sdk/commit/9bcc418b4294295c0d8377adfc921c3748d42019))
|
|
29
|
+
|
|
3
30
|
## 0.69.0 (2026-06-18)
|
|
4
31
|
|
|
5
32
|
Full Changelog: [v0.68.0...v0.69.0](https://github.com/kernel/kernel-python-sdk/compare/v0.68.0...v0.69.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: kernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.71.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
|
|
@@ -146,13 +146,15 @@ from kernel.types.browsers import (
|
|
|
146
146
|
BrowserTelemetryCategoryConfig,
|
|
147
147
|
BrowserTelemetryConfig,
|
|
148
148
|
BrowserTelemetryEvent,
|
|
149
|
+
TelemetryEventsResponse,
|
|
149
150
|
TelemetryStreamResponse,
|
|
150
151
|
)
|
|
151
152
|
```
|
|
152
153
|
|
|
153
154
|
Methods:
|
|
154
155
|
|
|
155
|
-
- <code title="get /browsers/{id}/telemetry/
|
|
156
|
+
- <code title="get /browsers/{id}/telemetry/events">client.browsers.telemetry.<a href="./src/kernel/resources/browsers/telemetry.py">events</a>(id, \*\*<a href="src/kernel/types/browsers/telemetry_events_params.py">params</a>) -> <a href="./src/kernel/types/browsers/telemetry_events_response.py">SyncOffsetPagination[TelemetryEventsResponse]</a></code>
|
|
157
|
+
- <code title="get /browsers/{id}/telemetry/stream">client.browsers.telemetry.<a href="./src/kernel/resources/browsers/telemetry.py">stream</a>(id, \*\*<a href="src/kernel/types/browsers/telemetry_stream_params.py">params</a>) -> <a href="./src/kernel/types/browsers/telemetry_stream_response.py">TelemetryStreamResponse</a></code>
|
|
156
158
|
|
|
157
159
|
## Replays
|
|
158
160
|
|
|
@@ -298,6 +300,7 @@ from kernel.types.auth import (
|
|
|
298
300
|
LoginResponse,
|
|
299
301
|
ManagedAuth,
|
|
300
302
|
ManagedAuthCreateRequest,
|
|
303
|
+
ManagedAuthTimelineEvent,
|
|
301
304
|
ManagedAuthUpdateRequest,
|
|
302
305
|
SubmitFieldsRequest,
|
|
303
306
|
SubmitFieldsResponse,
|
|
@@ -315,6 +318,7 @@ Methods:
|
|
|
315
318
|
- <code title="get /auth/connections/{id}/events">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">follow</a>(id) -> <a href="./src/kernel/types/auth/connection_follow_response.py">ConnectionFollowResponse</a></code>
|
|
316
319
|
- <code title="post /auth/connections/{id}/login">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">login</a>(id, \*\*<a href="src/kernel/types/auth/connection_login_params.py">params</a>) -> <a href="./src/kernel/types/auth/login_response.py">LoginResponse</a></code>
|
|
317
320
|
- <code title="post /auth/connections/{id}/submit">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">submit</a>(id, \*\*<a href="src/kernel/types/auth/connection_submit_params.py">params</a>) -> <a href="./src/kernel/types/auth/submit_fields_response.py">SubmitFieldsResponse</a></code>
|
|
321
|
+
- <code title="get /auth/connections/{id}/timeline">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">timeline</a>(id, \*\*<a href="src/kernel/types/auth/connection_timeline_params.py">params</a>) -> <a href="./src/kernel/types/auth/managed_auth_timeline_event.py">SyncOffsetPagination[ManagedAuthTimelineEvent]</a></code>
|
|
318
322
|
|
|
319
323
|
# Proxies
|
|
320
324
|
|
|
@@ -342,7 +346,7 @@ Methods:
|
|
|
342
346
|
Types:
|
|
343
347
|
|
|
344
348
|
```python
|
|
345
|
-
from kernel.types import ExtensionListResponse, ExtensionUploadResponse
|
|
349
|
+
from kernel.types import ExtensionListResponse, ExtensionGetResponse, ExtensionUploadResponse
|
|
346
350
|
```
|
|
347
351
|
|
|
348
352
|
Methods:
|
|
@@ -351,6 +355,7 @@ Methods:
|
|
|
351
355
|
- <code title="delete /extensions/{id_or_name}">client.extensions.<a href="./src/kernel/resources/extensions.py">delete</a>(id_or_name) -> None</code>
|
|
352
356
|
- <code title="get /extensions/{id_or_name}">client.extensions.<a href="./src/kernel/resources/extensions.py">download</a>(id_or_name) -> BinaryAPIResponse</code>
|
|
353
357
|
- <code title="get /extensions/from_chrome_store">client.extensions.<a href="./src/kernel/resources/extensions.py">download_from_chrome_store</a>(\*\*<a href="src/kernel/types/extension_download_from_chrome_store_params.py">params</a>) -> BinaryAPIResponse</code>
|
|
358
|
+
- <code title="get /extensions/{id_or_name}/metadata">client.extensions.<a href="./src/kernel/resources/extensions.py">get</a>(id_or_name) -> <a href="./src/kernel/types/extension_get_response.py">ExtensionGetResponse</a></code>
|
|
354
359
|
- <code title="post /extensions">client.extensions.<a href="./src/kernel/resources/extensions.py">upload</a>(\*\*<a href="src/kernel/types/extension_upload_params.py">params</a>) -> <a href="./src/kernel/types/extension_upload_response.py">ExtensionUploadResponse</a></code>
|
|
355
360
|
|
|
356
361
|
# BrowserPools
|
|
@@ -438,6 +443,18 @@ Methods:
|
|
|
438
443
|
- <code title="get /org/limits">client.organization.limits.<a href="./src/kernel/resources/organization/limits.py">retrieve</a>() -> <a href="./src/kernel/types/organization/org_limits.py">OrgLimits</a></code>
|
|
439
444
|
- <code title="patch /org/limits">client.organization.limits.<a href="./src/kernel/resources/organization/limits.py">update</a>(\*\*<a href="src/kernel/types/organization/limit_update_params.py">params</a>) -> <a href="./src/kernel/types/organization/org_limits.py">OrgLimits</a></code>
|
|
440
445
|
|
|
446
|
+
# AuditLogs
|
|
447
|
+
|
|
448
|
+
Types:
|
|
449
|
+
|
|
450
|
+
```python
|
|
451
|
+
from kernel.types import AuditLogEntry
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Methods:
|
|
455
|
+
|
|
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
|
+
|
|
441
458
|
# APIKeys
|
|
442
459
|
|
|
443
460
|
Types:
|
|
@@ -54,6 +54,7 @@ if TYPE_CHECKING:
|
|
|
54
54
|
browsers,
|
|
55
55
|
profiles,
|
|
56
56
|
projects,
|
|
57
|
+
audit_logs,
|
|
57
58
|
extensions,
|
|
58
59
|
credentials,
|
|
59
60
|
deployments,
|
|
@@ -67,6 +68,7 @@ if TYPE_CHECKING:
|
|
|
67
68
|
from .resources.api_keys import APIKeysResource, AsyncAPIKeysResource
|
|
68
69
|
from .resources.profiles import ProfilesResource, AsyncProfilesResource
|
|
69
70
|
from .resources.auth.auth import AuthResource, AsyncAuthResource
|
|
71
|
+
from .resources.audit_logs import AuditLogsResource, AsyncAuditLogsResource
|
|
70
72
|
from .resources.extensions import ExtensionsResource, AsyncExtensionsResource
|
|
71
73
|
from .resources.credentials import CredentialsResource, AsyncCredentialsResource
|
|
72
74
|
from .resources.deployments import DeploymentsResource, AsyncDeploymentsResource
|
|
@@ -275,6 +277,13 @@ class Kernel(SyncAPIClient):
|
|
|
275
277
|
|
|
276
278
|
return OrganizationResource(self)
|
|
277
279
|
|
|
280
|
+
@cached_property
|
|
281
|
+
def audit_logs(self) -> AuditLogsResource:
|
|
282
|
+
"""Read audit log records for the authenticated organization."""
|
|
283
|
+
from .resources.audit_logs import AuditLogsResource
|
|
284
|
+
|
|
285
|
+
return AuditLogsResource(self)
|
|
286
|
+
|
|
278
287
|
@cached_property
|
|
279
288
|
def api_keys(self) -> APIKeysResource:
|
|
280
289
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -620,6 +629,13 @@ class AsyncKernel(AsyncAPIClient):
|
|
|
620
629
|
|
|
621
630
|
return AsyncOrganizationResource(self)
|
|
622
631
|
|
|
632
|
+
@cached_property
|
|
633
|
+
def audit_logs(self) -> AsyncAuditLogsResource:
|
|
634
|
+
"""Read audit log records for the authenticated organization."""
|
|
635
|
+
from .resources.audit_logs import AsyncAuditLogsResource
|
|
636
|
+
|
|
637
|
+
return AsyncAuditLogsResource(self)
|
|
638
|
+
|
|
623
639
|
@cached_property
|
|
624
640
|
def api_keys(self) -> AsyncAPIKeysResource:
|
|
625
641
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -873,6 +889,13 @@ class KernelWithRawResponse:
|
|
|
873
889
|
|
|
874
890
|
return OrganizationResourceWithRawResponse(self._client.organization)
|
|
875
891
|
|
|
892
|
+
@cached_property
|
|
893
|
+
def audit_logs(self) -> audit_logs.AuditLogsResourceWithRawResponse:
|
|
894
|
+
"""Read audit log records for the authenticated organization."""
|
|
895
|
+
from .resources.audit_logs import AuditLogsResourceWithRawResponse
|
|
896
|
+
|
|
897
|
+
return AuditLogsResourceWithRawResponse(self._client.audit_logs)
|
|
898
|
+
|
|
876
899
|
@cached_property
|
|
877
900
|
def api_keys(self) -> api_keys.APIKeysResourceWithRawResponse:
|
|
878
901
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -976,6 +999,13 @@ class AsyncKernelWithRawResponse:
|
|
|
976
999
|
|
|
977
1000
|
return AsyncOrganizationResourceWithRawResponse(self._client.organization)
|
|
978
1001
|
|
|
1002
|
+
@cached_property
|
|
1003
|
+
def audit_logs(self) -> audit_logs.AsyncAuditLogsResourceWithRawResponse:
|
|
1004
|
+
"""Read audit log records for the authenticated organization."""
|
|
1005
|
+
from .resources.audit_logs import AsyncAuditLogsResourceWithRawResponse
|
|
1006
|
+
|
|
1007
|
+
return AsyncAuditLogsResourceWithRawResponse(self._client.audit_logs)
|
|
1008
|
+
|
|
979
1009
|
@cached_property
|
|
980
1010
|
def api_keys(self) -> api_keys.AsyncAPIKeysResourceWithRawResponse:
|
|
981
1011
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -1079,6 +1109,13 @@ class KernelWithStreamedResponse:
|
|
|
1079
1109
|
|
|
1080
1110
|
return OrganizationResourceWithStreamingResponse(self._client.organization)
|
|
1081
1111
|
|
|
1112
|
+
@cached_property
|
|
1113
|
+
def audit_logs(self) -> audit_logs.AuditLogsResourceWithStreamingResponse:
|
|
1114
|
+
"""Read audit log records for the authenticated organization."""
|
|
1115
|
+
from .resources.audit_logs import AuditLogsResourceWithStreamingResponse
|
|
1116
|
+
|
|
1117
|
+
return AuditLogsResourceWithStreamingResponse(self._client.audit_logs)
|
|
1118
|
+
|
|
1082
1119
|
@cached_property
|
|
1083
1120
|
def api_keys(self) -> api_keys.APIKeysResourceWithStreamingResponse:
|
|
1084
1121
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -1182,6 +1219,13 @@ class AsyncKernelWithStreamedResponse:
|
|
|
1182
1219
|
|
|
1183
1220
|
return AsyncOrganizationResourceWithStreamingResponse(self._client.organization)
|
|
1184
1221
|
|
|
1222
|
+
@cached_property
|
|
1223
|
+
def audit_logs(self) -> audit_logs.AsyncAuditLogsResourceWithStreamingResponse:
|
|
1224
|
+
"""Read audit log records for the authenticated organization."""
|
|
1225
|
+
from .resources.audit_logs import AsyncAuditLogsResourceWithStreamingResponse
|
|
1226
|
+
|
|
1227
|
+
return AsyncAuditLogsResourceWithStreamingResponse(self._client.audit_logs)
|
|
1228
|
+
|
|
1185
1229
|
@cached_property
|
|
1186
1230
|
def api_keys(self) -> api_keys.AsyncAPIKeysResourceWithStreamingResponse:
|
|
1187
1231
|
"""Create and manage API keys for organization and project-scoped access."""
|
|
@@ -41,7 +41,10 @@ _BROWSER_POOL_RELEASE_PATH = re.compile(r"^/(?:v\d+/)?browser_pools/[^/]+/releas
|
|
|
41
41
|
def browser_routing_config_from_env() -> BrowserRoutingConfig:
|
|
42
42
|
raw = os.environ.get("KERNEL_BROWSER_ROUTING_SUBRESOURCES")
|
|
43
43
|
if raw is None:
|
|
44
|
-
|
|
44
|
+
# Path prefixes eligible for direct-to-VM routing. "telemetry/stream" is
|
|
45
|
+
# the live SSE endpoint (VM); "telemetry/events" is a historical read
|
|
46
|
+
# served by the control plane (S2) and must NOT be here.
|
|
47
|
+
return BrowserRoutingConfig(subresources=("curl", "telemetry/stream"))
|
|
45
48
|
if raw.strip() == "":
|
|
46
49
|
return BrowserRoutingConfig()
|
|
47
50
|
|
|
@@ -188,6 +191,21 @@ def _session_id_from_browser_pool_release_request(request: httpx.Request, path:
|
|
|
188
191
|
return normalized or None
|
|
189
192
|
|
|
190
193
|
|
|
194
|
+
def _matches_direct_vm_prefix(tail: str, prefixes: tuple[str, ...]) -> bool:
|
|
195
|
+
"""Whether tail (the path after browsers/{id}/) is covered by an allow prefix,
|
|
196
|
+
matching on segment boundaries: "telemetry/stream" matches "telemetry/stream"
|
|
197
|
+
and "telemetry/stream/...", but not "telemetry/events" or "telemetry/streamfoo".
|
|
198
|
+
Keeps historical control-plane reads (e.g. telemetry/events, served from S2)
|
|
199
|
+
off the VM.
|
|
200
|
+
"""
|
|
201
|
+
tail = tail.strip("/")
|
|
202
|
+
for prefix in prefixes:
|
|
203
|
+
prefix = prefix.strip("/")
|
|
204
|
+
if prefix and (tail == prefix or tail.startswith(prefix + "/")):
|
|
205
|
+
return True
|
|
206
|
+
return False
|
|
207
|
+
|
|
208
|
+
|
|
191
209
|
def rewrite_direct_vm_options(
|
|
192
210
|
options: FinalRequestOptions,
|
|
193
211
|
*,
|
|
@@ -199,7 +217,7 @@ def rewrite_direct_vm_options(
|
|
|
199
217
|
return options
|
|
200
218
|
|
|
201
219
|
session_id, subresource, suffix = match
|
|
202
|
-
if
|
|
220
|
+
if not _matches_direct_vm_prefix(f"{subresource}{suffix}", config.subresources):
|
|
203
221
|
return options
|
|
204
222
|
|
|
205
223
|
route = cache.get(session_id)
|
|
@@ -9,13 +9,93 @@ from ._utils import is_mapping, maybe_coerce_boolean, maybe_coerce_integer
|
|
|
9
9
|
from ._models import BaseModel
|
|
10
10
|
from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
|
|
11
11
|
|
|
12
|
-
__all__ = ["SyncOffsetPagination", "AsyncOffsetPagination"]
|
|
12
|
+
__all__ = ["SyncPageTokenPagination", "AsyncPageTokenPagination", "SyncOffsetPagination", "AsyncOffsetPagination"]
|
|
13
13
|
|
|
14
14
|
_BaseModelT = TypeVar("_BaseModelT", bound=BaseModel)
|
|
15
15
|
|
|
16
16
|
_T = TypeVar("_T")
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
class SyncPageTokenPagination(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
20
|
+
items: List[_T]
|
|
21
|
+
next_page_token: Optional[str] = None
|
|
22
|
+
has_more: Optional[bool] = None
|
|
23
|
+
|
|
24
|
+
@override
|
|
25
|
+
def _get_page_items(self) -> List[_T]:
|
|
26
|
+
items = self.items
|
|
27
|
+
if not items:
|
|
28
|
+
return []
|
|
29
|
+
return items
|
|
30
|
+
|
|
31
|
+
@override
|
|
32
|
+
def has_next_page(self) -> bool:
|
|
33
|
+
has_more = self.has_more
|
|
34
|
+
if has_more is not None and has_more is False:
|
|
35
|
+
return False
|
|
36
|
+
|
|
37
|
+
return super().has_next_page()
|
|
38
|
+
|
|
39
|
+
@override
|
|
40
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
41
|
+
next_page_token = self.next_page_token
|
|
42
|
+
if not next_page_token:
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
return PageInfo(params={"page_token": next_page_token})
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
|
|
49
|
+
return cls.construct(
|
|
50
|
+
None,
|
|
51
|
+
**{
|
|
52
|
+
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
53
|
+
"next_page_token": response.headers.get("X-Next-Page-Token"),
|
|
54
|
+
"has_more": maybe_coerce_boolean(response.headers.get("X-Has-More")),
|
|
55
|
+
},
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class AsyncPageTokenPagination(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
60
|
+
items: List[_T]
|
|
61
|
+
next_page_token: Optional[str] = None
|
|
62
|
+
has_more: Optional[bool] = None
|
|
63
|
+
|
|
64
|
+
@override
|
|
65
|
+
def _get_page_items(self) -> List[_T]:
|
|
66
|
+
items = self.items
|
|
67
|
+
if not items:
|
|
68
|
+
return []
|
|
69
|
+
return items
|
|
70
|
+
|
|
71
|
+
@override
|
|
72
|
+
def has_next_page(self) -> bool:
|
|
73
|
+
has_more = self.has_more
|
|
74
|
+
if has_more is not None and has_more is False:
|
|
75
|
+
return False
|
|
76
|
+
|
|
77
|
+
return super().has_next_page()
|
|
78
|
+
|
|
79
|
+
@override
|
|
80
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
81
|
+
next_page_token = self.next_page_token
|
|
82
|
+
if not next_page_token:
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
return PageInfo(params={"page_token": next_page_token})
|
|
86
|
+
|
|
87
|
+
@classmethod
|
|
88
|
+
def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
|
|
89
|
+
return cls.construct(
|
|
90
|
+
None,
|
|
91
|
+
**{
|
|
92
|
+
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
93
|
+
"next_page_token": response.headers.get("X-Next-Page-Token"),
|
|
94
|
+
"has_more": maybe_coerce_boolean(response.headers.get("X-Has-More")),
|
|
95
|
+
},
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
19
99
|
class SyncOffsetPagination(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
20
100
|
items: List[_T]
|
|
21
101
|
has_more: Optional[bool] = None
|
|
@@ -56,6 +56,14 @@ from .projects import (
|
|
|
56
56
|
ProjectsResourceWithStreamingResponse,
|
|
57
57
|
AsyncProjectsResourceWithStreamingResponse,
|
|
58
58
|
)
|
|
59
|
+
from .audit_logs import (
|
|
60
|
+
AuditLogsResource,
|
|
61
|
+
AsyncAuditLogsResource,
|
|
62
|
+
AuditLogsResourceWithRawResponse,
|
|
63
|
+
AsyncAuditLogsResourceWithRawResponse,
|
|
64
|
+
AuditLogsResourceWithStreamingResponse,
|
|
65
|
+
AsyncAuditLogsResourceWithStreamingResponse,
|
|
66
|
+
)
|
|
59
67
|
from .extensions import (
|
|
60
68
|
ExtensionsResource,
|
|
61
69
|
AsyncExtensionsResource,
|
|
@@ -186,6 +194,12 @@ __all__ = [
|
|
|
186
194
|
"AsyncOrganizationResourceWithRawResponse",
|
|
187
195
|
"OrganizationResourceWithStreamingResponse",
|
|
188
196
|
"AsyncOrganizationResourceWithStreamingResponse",
|
|
197
|
+
"AuditLogsResource",
|
|
198
|
+
"AsyncAuditLogsResource",
|
|
199
|
+
"AuditLogsResourceWithRawResponse",
|
|
200
|
+
"AsyncAuditLogsResourceWithRawResponse",
|
|
201
|
+
"AuditLogsResourceWithStreamingResponse",
|
|
202
|
+
"AsyncAuditLogsResourceWithStreamingResponse",
|
|
189
203
|
"APIKeysResource",
|
|
190
204
|
"AsyncAPIKeysResource",
|
|
191
205
|
"APIKeysResourceWithRawResponse",
|
|
@@ -0,0 +1,269 @@
|
|
|
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
|
+
|
|
8
|
+
import httpx
|
|
9
|
+
|
|
10
|
+
from ..types import audit_log_list_params
|
|
11
|
+
from .._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
12
|
+
from .._utils import maybe_transform
|
|
13
|
+
from .._compat import cached_property
|
|
14
|
+
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
15
|
+
from .._response import (
|
|
16
|
+
to_raw_response_wrapper,
|
|
17
|
+
to_streamed_response_wrapper,
|
|
18
|
+
async_to_raw_response_wrapper,
|
|
19
|
+
async_to_streamed_response_wrapper,
|
|
20
|
+
)
|
|
21
|
+
from ..pagination import SyncPageTokenPagination, AsyncPageTokenPagination
|
|
22
|
+
from .._base_client import AsyncPaginator, make_request_options
|
|
23
|
+
from ..types.audit_log_entry import AuditLogEntry
|
|
24
|
+
|
|
25
|
+
__all__ = ["AuditLogsResource", "AsyncAuditLogsResource"]
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class AuditLogsResource(SyncAPIResource):
|
|
29
|
+
"""Read audit log records for the authenticated organization."""
|
|
30
|
+
|
|
31
|
+
@cached_property
|
|
32
|
+
def with_raw_response(self) -> AuditLogsResourceWithRawResponse:
|
|
33
|
+
"""
|
|
34
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
35
|
+
the raw response object instead of the parsed content.
|
|
36
|
+
|
|
37
|
+
For more information, see https://www.github.com/kernel/kernel-python-sdk#accessing-raw-response-data-eg-headers
|
|
38
|
+
"""
|
|
39
|
+
return AuditLogsResourceWithRawResponse(self)
|
|
40
|
+
|
|
41
|
+
@cached_property
|
|
42
|
+
def with_streaming_response(self) -> AuditLogsResourceWithStreamingResponse:
|
|
43
|
+
"""
|
|
44
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
45
|
+
|
|
46
|
+
For more information, see https://www.github.com/kernel/kernel-python-sdk#with_streaming_response
|
|
47
|
+
"""
|
|
48
|
+
return AuditLogsResourceWithStreamingResponse(self)
|
|
49
|
+
|
|
50
|
+
def list(
|
|
51
|
+
self,
|
|
52
|
+
*,
|
|
53
|
+
end: Union[str, datetime],
|
|
54
|
+
start: Union[str, datetime],
|
|
55
|
+
auth_strategy: str | Omit = omit,
|
|
56
|
+
exclude_method: str | Omit = omit,
|
|
57
|
+
limit: int | Omit = omit,
|
|
58
|
+
method: str | Omit = omit,
|
|
59
|
+
page_token: str | Omit = omit,
|
|
60
|
+
search: str | Omit = omit,
|
|
61
|
+
search_user_id: SequenceNotStr[str] | Omit = omit,
|
|
62
|
+
service: str | Omit = omit,
|
|
63
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
64
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
65
|
+
extra_headers: Headers | None = None,
|
|
66
|
+
extra_query: Query | None = None,
|
|
67
|
+
extra_body: Body | None = None,
|
|
68
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
69
|
+
) -> SyncPageTokenPagination[AuditLogEntry]:
|
|
70
|
+
"""API for searching audit logs.
|
|
71
|
+
|
|
72
|
+
Limited to at most 30 day search, returns up to
|
|
73
|
+
100 records per page. Not recommended for bulk export.
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
end: Upper bound (exclusive) for the audit record timestamp.
|
|
77
|
+
|
|
78
|
+
start: Lower bound (inclusive) for the audit record timestamp.
|
|
79
|
+
|
|
80
|
+
auth_strategy: Filter by authentication strategy.
|
|
81
|
+
|
|
82
|
+
exclude_method: Filter out results by HTTP method.
|
|
83
|
+
|
|
84
|
+
limit: Maximum number of results to return.
|
|
85
|
+
|
|
86
|
+
method: Filter by HTTP method.
|
|
87
|
+
|
|
88
|
+
page_token: Opaque page token from X-Next-Page-Token for the next page of older records.
|
|
89
|
+
|
|
90
|
+
search: Free-text search over path, user ID, email, client IP, and status.
|
|
91
|
+
|
|
92
|
+
search_user_id: Additional user IDs to OR into free-text search.
|
|
93
|
+
|
|
94
|
+
service: Filter by service name.
|
|
95
|
+
|
|
96
|
+
extra_headers: Send extra headers
|
|
97
|
+
|
|
98
|
+
extra_query: Add additional query parameters to the request
|
|
99
|
+
|
|
100
|
+
extra_body: Add additional JSON properties to the request
|
|
101
|
+
|
|
102
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
103
|
+
"""
|
|
104
|
+
return self._get_api_list(
|
|
105
|
+
"/audit-logs",
|
|
106
|
+
page=SyncPageTokenPagination[AuditLogEntry],
|
|
107
|
+
options=make_request_options(
|
|
108
|
+
extra_headers=extra_headers,
|
|
109
|
+
extra_query=extra_query,
|
|
110
|
+
extra_body=extra_body,
|
|
111
|
+
timeout=timeout,
|
|
112
|
+
query=maybe_transform(
|
|
113
|
+
{
|
|
114
|
+
"end": end,
|
|
115
|
+
"start": start,
|
|
116
|
+
"auth_strategy": auth_strategy,
|
|
117
|
+
"exclude_method": exclude_method,
|
|
118
|
+
"limit": limit,
|
|
119
|
+
"method": method,
|
|
120
|
+
"page_token": page_token,
|
|
121
|
+
"search": search,
|
|
122
|
+
"search_user_id": search_user_id,
|
|
123
|
+
"service": service,
|
|
124
|
+
},
|
|
125
|
+
audit_log_list_params.AuditLogListParams,
|
|
126
|
+
),
|
|
127
|
+
),
|
|
128
|
+
model=AuditLogEntry,
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class AsyncAuditLogsResource(AsyncAPIResource):
|
|
133
|
+
"""Read audit log records for the authenticated organization."""
|
|
134
|
+
|
|
135
|
+
@cached_property
|
|
136
|
+
def with_raw_response(self) -> AsyncAuditLogsResourceWithRawResponse:
|
|
137
|
+
"""
|
|
138
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
139
|
+
the raw response object instead of the parsed content.
|
|
140
|
+
|
|
141
|
+
For more information, see https://www.github.com/kernel/kernel-python-sdk#accessing-raw-response-data-eg-headers
|
|
142
|
+
"""
|
|
143
|
+
return AsyncAuditLogsResourceWithRawResponse(self)
|
|
144
|
+
|
|
145
|
+
@cached_property
|
|
146
|
+
def with_streaming_response(self) -> AsyncAuditLogsResourceWithStreamingResponse:
|
|
147
|
+
"""
|
|
148
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
149
|
+
|
|
150
|
+
For more information, see https://www.github.com/kernel/kernel-python-sdk#with_streaming_response
|
|
151
|
+
"""
|
|
152
|
+
return AsyncAuditLogsResourceWithStreamingResponse(self)
|
|
153
|
+
|
|
154
|
+
def list(
|
|
155
|
+
self,
|
|
156
|
+
*,
|
|
157
|
+
end: Union[str, datetime],
|
|
158
|
+
start: Union[str, datetime],
|
|
159
|
+
auth_strategy: str | Omit = omit,
|
|
160
|
+
exclude_method: str | Omit = omit,
|
|
161
|
+
limit: int | Omit = omit,
|
|
162
|
+
method: str | Omit = omit,
|
|
163
|
+
page_token: str | Omit = omit,
|
|
164
|
+
search: str | Omit = omit,
|
|
165
|
+
search_user_id: SequenceNotStr[str] | Omit = omit,
|
|
166
|
+
service: str | Omit = omit,
|
|
167
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
168
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
169
|
+
extra_headers: Headers | None = None,
|
|
170
|
+
extra_query: Query | None = None,
|
|
171
|
+
extra_body: Body | None = None,
|
|
172
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
173
|
+
) -> AsyncPaginator[AuditLogEntry, AsyncPageTokenPagination[AuditLogEntry]]:
|
|
174
|
+
"""API for searching audit logs.
|
|
175
|
+
|
|
176
|
+
Limited to at most 30 day search, returns up to
|
|
177
|
+
100 records per page. Not recommended for bulk export.
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
end: Upper bound (exclusive) for the audit record timestamp.
|
|
181
|
+
|
|
182
|
+
start: Lower bound (inclusive) for the audit record timestamp.
|
|
183
|
+
|
|
184
|
+
auth_strategy: Filter by authentication strategy.
|
|
185
|
+
|
|
186
|
+
exclude_method: Filter out results by HTTP method.
|
|
187
|
+
|
|
188
|
+
limit: Maximum number of results to return.
|
|
189
|
+
|
|
190
|
+
method: Filter by HTTP method.
|
|
191
|
+
|
|
192
|
+
page_token: Opaque page token from X-Next-Page-Token for the next page of older records.
|
|
193
|
+
|
|
194
|
+
search: Free-text search over path, user ID, email, client IP, and status.
|
|
195
|
+
|
|
196
|
+
search_user_id: Additional user IDs to OR into free-text search.
|
|
197
|
+
|
|
198
|
+
service: Filter by service name.
|
|
199
|
+
|
|
200
|
+
extra_headers: Send extra headers
|
|
201
|
+
|
|
202
|
+
extra_query: Add additional query parameters to the request
|
|
203
|
+
|
|
204
|
+
extra_body: Add additional JSON properties to the request
|
|
205
|
+
|
|
206
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
207
|
+
"""
|
|
208
|
+
return self._get_api_list(
|
|
209
|
+
"/audit-logs",
|
|
210
|
+
page=AsyncPageTokenPagination[AuditLogEntry],
|
|
211
|
+
options=make_request_options(
|
|
212
|
+
extra_headers=extra_headers,
|
|
213
|
+
extra_query=extra_query,
|
|
214
|
+
extra_body=extra_body,
|
|
215
|
+
timeout=timeout,
|
|
216
|
+
query=maybe_transform(
|
|
217
|
+
{
|
|
218
|
+
"end": end,
|
|
219
|
+
"start": start,
|
|
220
|
+
"auth_strategy": auth_strategy,
|
|
221
|
+
"exclude_method": exclude_method,
|
|
222
|
+
"limit": limit,
|
|
223
|
+
"method": method,
|
|
224
|
+
"page_token": page_token,
|
|
225
|
+
"search": search,
|
|
226
|
+
"search_user_id": search_user_id,
|
|
227
|
+
"service": service,
|
|
228
|
+
},
|
|
229
|
+
audit_log_list_params.AuditLogListParams,
|
|
230
|
+
),
|
|
231
|
+
),
|
|
232
|
+
model=AuditLogEntry,
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
class AuditLogsResourceWithRawResponse:
|
|
237
|
+
def __init__(self, audit_logs: AuditLogsResource) -> None:
|
|
238
|
+
self._audit_logs = audit_logs
|
|
239
|
+
|
|
240
|
+
self.list = to_raw_response_wrapper(
|
|
241
|
+
audit_logs.list,
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
class AsyncAuditLogsResourceWithRawResponse:
|
|
246
|
+
def __init__(self, audit_logs: AsyncAuditLogsResource) -> None:
|
|
247
|
+
self._audit_logs = audit_logs
|
|
248
|
+
|
|
249
|
+
self.list = async_to_raw_response_wrapper(
|
|
250
|
+
audit_logs.list,
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
class AuditLogsResourceWithStreamingResponse:
|
|
255
|
+
def __init__(self, audit_logs: AuditLogsResource) -> None:
|
|
256
|
+
self._audit_logs = audit_logs
|
|
257
|
+
|
|
258
|
+
self.list = to_streamed_response_wrapper(
|
|
259
|
+
audit_logs.list,
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
class AsyncAuditLogsResourceWithStreamingResponse:
|
|
264
|
+
def __init__(self, audit_logs: AsyncAuditLogsResource) -> None:
|
|
265
|
+
self._audit_logs = audit_logs
|
|
266
|
+
|
|
267
|
+
self.list = async_to_streamed_response_wrapper(
|
|
268
|
+
audit_logs.list,
|
|
269
|
+
)
|