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.
- kernel-0.73.0/.release-please-manifest.json +3 -0
- {kernel-0.72.0 → kernel-0.73.0}/CHANGELOG.md +8 -0
- {kernel-0.72.0 → kernel-0.73.0}/PKG-INFO +1 -1
- {kernel-0.72.0 → kernel-0.73.0}/api.md +1 -0
- {kernel-0.72.0 → kernel-0.73.0}/pyproject.toml +1 -1
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_version.py +1 -1
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/audit_logs.py +197 -2
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/__init__.py +1 -0
- kernel-0.73.0/src/kernel/types/audit_log_export_chunk_params.py +47 -0
- kernel-0.73.0/tests/api_resources/test_audit_logs.py +276 -0
- kernel-0.72.0/.release-please-manifest.json +0 -3
- kernel-0.72.0/tests/api_resources/test_audit_logs.py +0 -134
- {kernel-0.72.0 → kernel-0.73.0}/.gitignore +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/CONTRIBUTING.md +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/LICENSE +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/README.md +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/SECURITY.md +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/bin/check-release-environment +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/bin/publish-pypi +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/examples/.keep +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/examples/browser_routing.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/examples/browser_telemetry.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/noxfile.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/release-please-config.json +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/requirements-dev.lock +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/requirements.lock +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_base_client.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_client.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_compat.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_constants.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_exceptions.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_files.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_models.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_qs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_resource.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_streaming.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_types.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_compat.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_datetime_parse.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_json.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_logs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_path.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_proxy.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_reflection.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_resources_proxy.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_streams.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_sync.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_transform.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_typing.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/_utils/_utils.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/app_framework.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/.keep +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/routing.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/lib/browser_routing/util.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/pagination.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/py.typed +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/api_keys.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/apps.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/auth.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/auth/connections.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browser_pools.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/browsers.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/computer.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/logs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/playwright.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/process.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/replays.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/browsers/telemetry.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/credential_providers.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/credentials.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/deployments.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/extensions.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/invocations.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/organization/organization.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/profiles.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/projects/projects.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/resources/proxies.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_retrieve_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_rotate_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/api_key_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/app_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/app_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/audit_log_entry.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/audit_log_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_follow_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_login_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_timeline_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/connection_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/login_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/managed_auth.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/managed_auth_timeline_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_create_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_curl_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_curl_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_acquire_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_ref.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_release_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_pool_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_retrieve_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_retrieve_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_update_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browser_usage.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_api_call_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_call_stack.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_captcha_solve_result_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_cdp_connect_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_cdp_disconnect_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_console_error_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_console_log_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_event_context.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_event_source.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_http_headers.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_click_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_key_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_interaction_scroll_settled_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_live_view_connect_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_live_view_disconnect_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_disconnected_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_init_failed_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_reconnect_failed_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_reconnected_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_monitor_screenshot_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_idle_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_loading_failed_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_request_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_network_response_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_dom_content_loaded_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_layout_settled_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_layout_shift_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_lcp_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_load_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_navigation_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_navigation_settled_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_page_tab_opened_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_service_crashed_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_system_oom_kill_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_categories_config.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_categories_config_param.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_category_config.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_category_config_param.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_config.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/browser_telemetry_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_move_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_status_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_events_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_events_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_stream_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/browsers/telemetry_stream_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/created_api_key.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_item.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_test_result.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_provider_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_totp_code_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/credential_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_create_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_follow_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_follow_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/deployment_state_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_get_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_upload_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/extension_upload_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_create_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_follow_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_follow_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_browsers_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_state_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/invocation_update_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/limit_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/organization/org_limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/profile_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/project_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/limit_update_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/projects/project_limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_check_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_check_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_create_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_create_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_list_params.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_list_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/app_action.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_extension.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_profile.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/browser_viewport.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_detail.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/error_model.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared/log_event.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/tags.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/src/kernel/types/tags_param.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/auth/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/auth/test_connections.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_computer.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_fs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_logs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_playwright.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_process.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_replays.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/browsers/test_telemetry.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/organization/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/organization/test_limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/projects/__init__.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/projects/test_limits.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_api_keys.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_apps.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_browser_pools.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_browsers.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_credential_providers.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_credentials.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_deployments.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_extensions.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_invocations.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_profiles.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_projects.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/api_resources/test_proxies.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/conftest.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/sample_file.txt +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_browser_routing.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_client.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_extract_files.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_files.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_models.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_pagination.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_qs.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_required_args.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_response.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_streaming.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_transform.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_json.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_path.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_proxy.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/test_utils/test_typing.py +0 -0
- {kernel-0.72.0 → kernel-0.73.0}/tests/utils.py +0 -0
|
@@ -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.
|
|
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
|
|
|
@@ -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
|