kernel 0.52.0__tar.gz → 0.55.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.55.0/.release-please-manifest.json +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/CHANGELOG.md +38 -0
- {kernel-0.52.0 → kernel-0.55.0}/PKG-INFO +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/pyproject.toml +2 -2
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_files.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_models.py +80 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_version.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/auth/connections.py +110 -2
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browser_pools.py +28 -4
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/browsers.py +12 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/credentials.py +2 -2
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/extensions.py +2 -2
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/profiles.py +2 -2
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/projects/projects.py +8 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_create_params.py +26 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_follow_response.py +19 -9
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_login_params.py +6 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_update_params.py +23 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/managed_auth.py +46 -9
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_create_params.py +7 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_create_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_list_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool.py +8 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_acquire_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_create_params.py +8 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_update_params.py +8 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_retrieve_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_update_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_create_params.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/extension_list_response.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/extension_upload_params.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/extension_upload_response.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_list_browsers_response.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/profile_create_params.py +1 -1
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/project_list_params.py +3 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/auth/test_connections.py +14 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_browser_pools.py +4 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_browsers.py +2 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_projects.py +2 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_models.py +57 -3
- kernel-0.52.0/.release-please-manifest.json +0 -3
- {kernel-0.52.0 → kernel-0.55.0}/.gitignore +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/CONTRIBUTING.md +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/LICENSE +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/README.md +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/SECURITY.md +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/api.md +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/bin/check-release-environment +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/bin/publish-pypi +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/examples/.keep +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/examples/browser_routing.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/noxfile.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/release-please-config.json +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/requirements-dev.lock +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/requirements.lock +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_base_client.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_client.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_compat.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_constants.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_exceptions.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_qs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_resource.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_streaming.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_types.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_compat.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_datetime_parse.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_json.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_logs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_path.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_proxy.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_reflection.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_resources_proxy.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_streams.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_sync.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_transform.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_typing.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/_utils/_utils.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/app_framework.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/lib/.keep +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/lib/browser_routing/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/lib/browser_routing/raw_http.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/lib/browser_routing/routing.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/lib/browser_routing/util.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/pagination.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/py.typed +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/apps.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/auth/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/auth/auth.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/computer.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/fs/fs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/fs/watch.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/logs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/playwright.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/process.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/browsers/replays.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/credential_providers.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/deployments.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/invocations.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/projects/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/projects/limits.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/resources/proxies.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/app_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/app_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/connection_submit_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/login_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_curl_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_curl_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_delete_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_persistence.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_persistence_param.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_ref.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_pool_release_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_retrieve_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browser_usage.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_batch_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_scroll_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_move_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_status_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_create_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_item.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_test_result.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_provider_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_totp_code_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/credential_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_create_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_create_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_follow_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_follow_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/deployment_state_event.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_create_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_create_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_follow_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_follow_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_state_event.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/invocation_update_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/profile.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/profile_list_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/project.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/project_create_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/project_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/projects/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/projects/limit_update_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/projects/project_limits.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_check_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_check_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_create_params.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_create_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_list_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/app_action.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/browser_extension.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/browser_profile.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/browser_viewport.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/error_detail.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/error_event.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/error_model.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared/log_event.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared_params/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/src/kernel/types/shared_params/browser_viewport.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/auth/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_computer.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_fs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_logs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_playwright.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_process.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/browsers/test_replays.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/projects/__init__.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/projects/test_limits.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_apps.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_credential_providers.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_credentials.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_deployments.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_extensions.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_invocations.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_profiles.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/api_resources/test_proxies.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/conftest.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/sample_file.txt +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_browser_routing.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_client.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_extract_files.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_files.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_qs.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_required_args.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_response.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_streaming.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_transform.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_utils/test_json.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_utils/test_path.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_utils/test_proxy.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/test_utils/test_typing.py +0 -0
- {kernel-0.52.0 → kernel-0.55.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.55.0 (2026-05-15)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.53.0...v0.55.0](https://github.com/kernel/kernel-python-sdk/compare/v0.53.0...v0.55.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* Add health check and auto-reauth controls for managed auth connections ([9a0655e](https://github.com/kernel/kernel-python-sdk/commit/9a0655efbeef25e4929397b04f492644339f839e))
|
|
10
|
+
* Polish start URL OpenAPI descriptions ([4f16fb0](https://github.com/kernel/kernel-python-sdk/commit/4f16fb073e0d295fd962e8a8aabd55bdf3144e00))
|
|
11
|
+
|
|
12
|
+
## 0.53.0 (2026-05-12)
|
|
13
|
+
|
|
14
|
+
Full Changelog: [v0.52.0...v0.53.0](https://github.com/kernel/kernel-python-sdk/compare/v0.52.0...v0.53.0)
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* Add 'switch' MFA option type for generic method-switcher links ([82ae224](https://github.com/kernel/kernel-python-sdk/commit/82ae224a85a22b16e48a26a8058cc992ef772cf2))
|
|
19
|
+
* Add opt-in record_session flag to managed auth ([53fea1c](https://github.com/kernel/kernel-python-sdk/commit/53fea1c26cd8de2b93944bb7625c401d05362b1c))
|
|
20
|
+
* **api:** server-side search on GET /projects ([cacb057](https://github.com/kernel/kernel-python-sdk/commit/cacb057a5d1d3bcb26b6df1f6fe83067f936d642))
|
|
21
|
+
* browser_pools: add start_url config (KERNEL-1217 PR 2) ([e3f0b8d](https://github.com/kernel/kernel-python-sdk/commit/e3f0b8db4b2d05140d112317315ba1e393f385cf))
|
|
22
|
+
* **internal/types:** support eagerly validating pydantic iterators ([b30bc1e](https://github.com/kernel/kernel-python-sdk/commit/b30bc1e0c3493f12a3499eb037f13561dfdcaedf))
|
|
23
|
+
* managed-auth: surface awaiting_external_action even when fallback actions exist ([fd4ffe4](https://github.com/kernel/kernel-python-sdk/commit/fd4ffe40e037e95e93f46b7773d6a5e468c7b8fd))
|
|
24
|
+
* Scope name uniqueness to project for profiles, session_pools, extensions, credentials ([c510a51](https://github.com/kernel/kernel-python-sdk/commit/c510a515b3c57846f0e681638167ba87b8ee15c3))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Bug Fixes
|
|
28
|
+
|
|
29
|
+
* **client:** add missing f-string prefix in file type error message ([fb5340d](https://github.com/kernel/kernel-python-sdk/commit/fb5340dbf9ea49393d87b5760a2efaaf932c9442))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Chores
|
|
33
|
+
|
|
34
|
+
* **internal:** reformat pyproject.toml ([27c799b](https://github.com/kernel/kernel-python-sdk/commit/27c799be452cb66af59b79d24b3d5147a85b70f7))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Documentation
|
|
38
|
+
|
|
39
|
+
* clarify record_session description in OpenAPI spec ([3ac3fb8](https://github.com/kernel/kernel-python-sdk/commit/3ac3fb8e4e643c40addd3e85f8480d5821cecca7))
|
|
40
|
+
|
|
3
41
|
## 0.52.0 (2026-04-29)
|
|
4
42
|
|
|
5
43
|
Full Changelog: [v0.51.0...v0.52.0](https://github.com/kernel/kernel-python-sdk/compare/v0.51.0...v0.52.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: kernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.55.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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "kernel"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.55.0"
|
|
4
4
|
description = "The official Python library for the kernel API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -168,7 +168,7 @@ show_error_codes = true
|
|
|
168
168
|
#
|
|
169
169
|
# We also exclude our `tests` as mypy doesn't always infer
|
|
170
170
|
# types correctly and Pyright will still catch any type errors.
|
|
171
|
-
exclude = [
|
|
171
|
+
exclude = ["src/kernel/_files.py", "_dev/.*.py", "tests/.*"]
|
|
172
172
|
|
|
173
173
|
strict_equality = true
|
|
174
174
|
implicit_reexport = true
|
|
@@ -99,7 +99,7 @@ async def async_to_httpx_files(files: RequestFiles | None) -> HttpxRequestFiles
|
|
|
99
99
|
elif is_sequence_t(files):
|
|
100
100
|
files = [(key, await _async_transform_file(file)) for key, file in files]
|
|
101
101
|
else:
|
|
102
|
-
raise TypeError("Unexpected file type input {type(files)}, expected mapping or sequence")
|
|
102
|
+
raise TypeError(f"Unexpected file type input {type(files)}, expected mapping or sequence")
|
|
103
103
|
|
|
104
104
|
return files
|
|
105
105
|
|
|
@@ -25,7 +25,9 @@ from typing_extensions import (
|
|
|
25
25
|
ClassVar,
|
|
26
26
|
Protocol,
|
|
27
27
|
Required,
|
|
28
|
+
Annotated,
|
|
28
29
|
ParamSpec,
|
|
30
|
+
TypeAlias,
|
|
29
31
|
TypedDict,
|
|
30
32
|
TypeGuard,
|
|
31
33
|
final,
|
|
@@ -79,7 +81,15 @@ from ._compat import (
|
|
|
79
81
|
from ._constants import RAW_RESPONSE_HEADER
|
|
80
82
|
|
|
81
83
|
if TYPE_CHECKING:
|
|
84
|
+
from pydantic import GetCoreSchemaHandler, ValidatorFunctionWrapHandler
|
|
85
|
+
from pydantic_core import CoreSchema, core_schema
|
|
82
86
|
from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
|
|
87
|
+
else:
|
|
88
|
+
try:
|
|
89
|
+
from pydantic_core import CoreSchema, core_schema
|
|
90
|
+
except ImportError:
|
|
91
|
+
CoreSchema = None
|
|
92
|
+
core_schema = None
|
|
83
93
|
|
|
84
94
|
__all__ = ["BaseModel", "GenericModel"]
|
|
85
95
|
|
|
@@ -396,6 +406,76 @@ class BaseModel(pydantic.BaseModel):
|
|
|
396
406
|
)
|
|
397
407
|
|
|
398
408
|
|
|
409
|
+
class _EagerIterable(list[_T], Generic[_T]):
|
|
410
|
+
"""
|
|
411
|
+
Accepts any Iterable[T] input (including generators), consumes it
|
|
412
|
+
eagerly, and validates all items upfront.
|
|
413
|
+
|
|
414
|
+
Validation preserves the original container type where possible
|
|
415
|
+
(e.g. a set[T] stays a set[T]). Serialization (model_dump / JSON)
|
|
416
|
+
always emits a list — round-tripping through model_dump() will not
|
|
417
|
+
restore the original container type.
|
|
418
|
+
"""
|
|
419
|
+
|
|
420
|
+
@classmethod
|
|
421
|
+
def __get_pydantic_core_schema__(
|
|
422
|
+
cls,
|
|
423
|
+
source_type: Any,
|
|
424
|
+
handler: GetCoreSchemaHandler,
|
|
425
|
+
) -> CoreSchema:
|
|
426
|
+
(item_type,) = get_args(source_type) or (Any,)
|
|
427
|
+
item_schema: CoreSchema = handler.generate_schema(item_type)
|
|
428
|
+
list_of_items_schema: CoreSchema = core_schema.list_schema(item_schema)
|
|
429
|
+
|
|
430
|
+
return core_schema.no_info_wrap_validator_function(
|
|
431
|
+
cls._validate,
|
|
432
|
+
list_of_items_schema,
|
|
433
|
+
serialization=core_schema.plain_serializer_function_ser_schema(
|
|
434
|
+
cls._serialize,
|
|
435
|
+
info_arg=False,
|
|
436
|
+
),
|
|
437
|
+
)
|
|
438
|
+
|
|
439
|
+
@staticmethod
|
|
440
|
+
def _validate(v: Iterable[_T], handler: "ValidatorFunctionWrapHandler") -> Any:
|
|
441
|
+
original_type: type[Any] = type(v)
|
|
442
|
+
|
|
443
|
+
# Normalize to list so list_schema can validate each item
|
|
444
|
+
if isinstance(v, list):
|
|
445
|
+
items: list[_T] = v
|
|
446
|
+
else:
|
|
447
|
+
try:
|
|
448
|
+
items = list(v)
|
|
449
|
+
except TypeError as e:
|
|
450
|
+
raise TypeError("Value is not iterable") from e
|
|
451
|
+
|
|
452
|
+
# Validate items against the inner schema
|
|
453
|
+
validated: list[_T] = handler(items)
|
|
454
|
+
|
|
455
|
+
# Reconstruct original container type
|
|
456
|
+
if original_type is list:
|
|
457
|
+
return validated
|
|
458
|
+
# str(list) produces the list's repr, not a string built from items,
|
|
459
|
+
# so skip reconstruction for str and its subclasses.
|
|
460
|
+
if issubclass(original_type, str):
|
|
461
|
+
return validated
|
|
462
|
+
try:
|
|
463
|
+
return original_type(validated)
|
|
464
|
+
except (TypeError, ValueError):
|
|
465
|
+
# If the type cannot be reconstructed, just return the validated list
|
|
466
|
+
return validated
|
|
467
|
+
|
|
468
|
+
@staticmethod
|
|
469
|
+
def _serialize(v: Iterable[_T]) -> list[_T]:
|
|
470
|
+
"""Always serialize as a list so Pydantic's JSON encoder is happy."""
|
|
471
|
+
if isinstance(v, list):
|
|
472
|
+
return v
|
|
473
|
+
return list(v)
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
EagerIterable: TypeAlias = Annotated[Iterable[_T], _EagerIterable]
|
|
477
|
+
|
|
478
|
+
|
|
399
479
|
def _construct_field(value: object, field: FieldInfo, key: str) -> object:
|
|
400
480
|
if value is None:
|
|
401
481
|
return field_get_default(field)
|
|
@@ -62,10 +62,13 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
62
62
|
domain: str,
|
|
63
63
|
profile_name: str,
|
|
64
64
|
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
65
|
+
auto_reauth: bool | Omit = omit,
|
|
65
66
|
credential: connection_create_params.Credential | Omit = omit,
|
|
66
67
|
health_check_interval: int | Omit = omit,
|
|
68
|
+
health_checks: bool | Omit = omit,
|
|
67
69
|
login_url: str | Omit = omit,
|
|
68
70
|
proxy: connection_create_params.Proxy | Omit = omit,
|
|
71
|
+
record_session: bool | Omit = omit,
|
|
69
72
|
save_credentials: bool | Omit = omit,
|
|
70
73
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
71
74
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -104,6 +107,15 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
104
107
|
- OneLogin: \\**.onelogin.com
|
|
105
108
|
- Ping Identity: _.pingone.com, _.pingidentity.com
|
|
106
109
|
|
|
110
|
+
auto_reauth: Whether to permit automatic re-authentication when a scheduled health check
|
|
111
|
+
detects an expired session. This is an opt-in flag only — it does not check
|
|
112
|
+
whether re-auth is actually feasible. Even when true, re-auth only runs when the
|
|
113
|
+
system has what it needs to perform it (for example, saved credentials for the
|
|
114
|
+
required login fields), and only after a scheduled health check detects an
|
|
115
|
+
expired session — so this flag has no effect when `health_checks` is false. When
|
|
116
|
+
false, expired sessions are marked as `NEEDS_AUTH` instead of attempting
|
|
117
|
+
re-auth. Defaults to true.
|
|
118
|
+
|
|
107
119
|
credential:
|
|
108
120
|
Reference to credentials for the auth connection. Use one of:
|
|
109
121
|
|
|
@@ -117,11 +129,19 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
117
129
|
depends on your plan: Enterprise: 300 (5 minutes), Startup: 1200 (20 minutes),
|
|
118
130
|
Hobbyist: 3600 (1 hour).
|
|
119
131
|
|
|
132
|
+
health_checks: Whether to enable periodic health checks. When false, the system will not
|
|
133
|
+
automatically verify authentication status, and `auto_reauth` has no effect on
|
|
134
|
+
the automatic flow (since re-auth is only triggered by a failed scheduled health
|
|
135
|
+
check). Defaults to true.
|
|
136
|
+
|
|
120
137
|
login_url: Optional login page URL to skip discovery
|
|
121
138
|
|
|
122
139
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
123
140
|
caller's org.
|
|
124
141
|
|
|
142
|
+
record_session: Whether to record browser sessions for this connection by default. Useful for
|
|
143
|
+
debugging. Can be overridden per-login. Defaults to false.
|
|
144
|
+
|
|
125
145
|
save_credentials: Whether to save credentials after every successful login. Defaults to true.
|
|
126
146
|
One-time codes (TOTP, SMS, etc.) are not saved.
|
|
127
147
|
|
|
@@ -140,10 +160,13 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
140
160
|
"domain": domain,
|
|
141
161
|
"profile_name": profile_name,
|
|
142
162
|
"allowed_domains": allowed_domains,
|
|
163
|
+
"auto_reauth": auto_reauth,
|
|
143
164
|
"credential": credential,
|
|
144
165
|
"health_check_interval": health_check_interval,
|
|
166
|
+
"health_checks": health_checks,
|
|
145
167
|
"login_url": login_url,
|
|
146
168
|
"proxy": proxy,
|
|
169
|
+
"record_session": record_session,
|
|
147
170
|
"save_credentials": save_credentials,
|
|
148
171
|
},
|
|
149
172
|
connection_create_params.ConnectionCreateParams,
|
|
@@ -194,10 +217,13 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
194
217
|
id: str,
|
|
195
218
|
*,
|
|
196
219
|
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
220
|
+
auto_reauth: bool | Omit = omit,
|
|
197
221
|
credential: connection_update_params.Credential | Omit = omit,
|
|
198
222
|
health_check_interval: int | Omit = omit,
|
|
223
|
+
health_checks: bool | Omit = omit,
|
|
199
224
|
login_url: str | Omit = omit,
|
|
200
225
|
proxy: connection_update_params.Proxy | Omit = omit,
|
|
226
|
+
record_session: bool | Omit = omit,
|
|
201
227
|
save_credentials: bool | Omit = omit,
|
|
202
228
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
203
229
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -214,6 +240,14 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
214
240
|
Args:
|
|
215
241
|
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
|
|
216
242
|
|
|
243
|
+
auto_reauth: Whether automatic re-authentication is permitted for this connection. This is an
|
|
244
|
+
opt-in flag only — it does not check whether re-auth is actually feasible. Even
|
|
245
|
+
when true, re-auth only runs when the system has what it needs to perform it
|
|
246
|
+
(for example, saved credentials for the required login fields), and only after a
|
|
247
|
+
scheduled health check detects an expired session — so this flag has no effect
|
|
248
|
+
when `health_checks` is false. When false, expired sessions detected by a health
|
|
249
|
+
check are marked as `NEEDS_AUTH` instead of attempting re-auth.
|
|
250
|
+
|
|
217
251
|
credential:
|
|
218
252
|
Reference to credentials for the auth connection. Use one of:
|
|
219
253
|
|
|
@@ -223,11 +257,18 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
223
257
|
|
|
224
258
|
health_check_interval: Interval in seconds between automatic health checks
|
|
225
259
|
|
|
260
|
+
health_checks: Whether periodic health checks are enabled. When set to false, the system will
|
|
261
|
+
not automatically verify authentication status, and `auto_reauth` has no effect
|
|
262
|
+
on the automatic flow (since re-auth is only triggered by a failed scheduled
|
|
263
|
+
health check).
|
|
264
|
+
|
|
226
265
|
login_url: Login page URL. Set to empty string to clear.
|
|
227
266
|
|
|
228
267
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
229
268
|
caller's org.
|
|
230
269
|
|
|
270
|
+
record_session: Whether to record browser sessions for this connection by default
|
|
271
|
+
|
|
231
272
|
save_credentials: Whether to save credentials after every successful login
|
|
232
273
|
|
|
233
274
|
extra_headers: Send extra headers
|
|
@@ -245,10 +286,13 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
245
286
|
body=maybe_transform(
|
|
246
287
|
{
|
|
247
288
|
"allowed_domains": allowed_domains,
|
|
289
|
+
"auto_reauth": auto_reauth,
|
|
248
290
|
"credential": credential,
|
|
249
291
|
"health_check_interval": health_check_interval,
|
|
292
|
+
"health_checks": health_checks,
|
|
250
293
|
"login_url": login_url,
|
|
251
294
|
"proxy": proxy,
|
|
295
|
+
"record_session": record_session,
|
|
252
296
|
"save_credentials": save_credentials,
|
|
253
297
|
},
|
|
254
298
|
connection_update_params.ConnectionUpdateParams,
|
|
@@ -398,6 +442,7 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
398
442
|
id: str,
|
|
399
443
|
*,
|
|
400
444
|
proxy: connection_login_params.Proxy | Omit = omit,
|
|
445
|
+
record_session: bool | Omit = omit,
|
|
401
446
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
402
447
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
403
448
|
extra_headers: Headers | None = None,
|
|
@@ -415,6 +460,9 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
415
460
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
416
461
|
caller's org.
|
|
417
462
|
|
|
463
|
+
record_session: Override the connection's default for recording this login's browser session.
|
|
464
|
+
When omitted, the connection's record_session default is used.
|
|
465
|
+
|
|
418
466
|
extra_headers: Send extra headers
|
|
419
467
|
|
|
420
468
|
extra_query: Add additional query parameters to the request
|
|
@@ -427,7 +475,13 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
427
475
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
428
476
|
return self._post(
|
|
429
477
|
path_template("/auth/connections/{id}/login", id=id),
|
|
430
|
-
body=maybe_transform(
|
|
478
|
+
body=maybe_transform(
|
|
479
|
+
{
|
|
480
|
+
"proxy": proxy,
|
|
481
|
+
"record_session": record_session,
|
|
482
|
+
},
|
|
483
|
+
connection_login_params.ConnectionLoginParams,
|
|
484
|
+
),
|
|
431
485
|
options=make_request_options(
|
|
432
486
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
433
487
|
),
|
|
@@ -525,10 +579,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
525
579
|
domain: str,
|
|
526
580
|
profile_name: str,
|
|
527
581
|
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
582
|
+
auto_reauth: bool | Omit = omit,
|
|
528
583
|
credential: connection_create_params.Credential | Omit = omit,
|
|
529
584
|
health_check_interval: int | Omit = omit,
|
|
585
|
+
health_checks: bool | Omit = omit,
|
|
530
586
|
login_url: str | Omit = omit,
|
|
531
587
|
proxy: connection_create_params.Proxy | Omit = omit,
|
|
588
|
+
record_session: bool | Omit = omit,
|
|
532
589
|
save_credentials: bool | Omit = omit,
|
|
533
590
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
534
591
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -567,6 +624,15 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
567
624
|
- OneLogin: \\**.onelogin.com
|
|
568
625
|
- Ping Identity: _.pingone.com, _.pingidentity.com
|
|
569
626
|
|
|
627
|
+
auto_reauth: Whether to permit automatic re-authentication when a scheduled health check
|
|
628
|
+
detects an expired session. This is an opt-in flag only — it does not check
|
|
629
|
+
whether re-auth is actually feasible. Even when true, re-auth only runs when the
|
|
630
|
+
system has what it needs to perform it (for example, saved credentials for the
|
|
631
|
+
required login fields), and only after a scheduled health check detects an
|
|
632
|
+
expired session — so this flag has no effect when `health_checks` is false. When
|
|
633
|
+
false, expired sessions are marked as `NEEDS_AUTH` instead of attempting
|
|
634
|
+
re-auth. Defaults to true.
|
|
635
|
+
|
|
570
636
|
credential:
|
|
571
637
|
Reference to credentials for the auth connection. Use one of:
|
|
572
638
|
|
|
@@ -580,11 +646,19 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
580
646
|
depends on your plan: Enterprise: 300 (5 minutes), Startup: 1200 (20 minutes),
|
|
581
647
|
Hobbyist: 3600 (1 hour).
|
|
582
648
|
|
|
649
|
+
health_checks: Whether to enable periodic health checks. When false, the system will not
|
|
650
|
+
automatically verify authentication status, and `auto_reauth` has no effect on
|
|
651
|
+
the automatic flow (since re-auth is only triggered by a failed scheduled health
|
|
652
|
+
check). Defaults to true.
|
|
653
|
+
|
|
583
654
|
login_url: Optional login page URL to skip discovery
|
|
584
655
|
|
|
585
656
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
586
657
|
caller's org.
|
|
587
658
|
|
|
659
|
+
record_session: Whether to record browser sessions for this connection by default. Useful for
|
|
660
|
+
debugging. Can be overridden per-login. Defaults to false.
|
|
661
|
+
|
|
588
662
|
save_credentials: Whether to save credentials after every successful login. Defaults to true.
|
|
589
663
|
One-time codes (TOTP, SMS, etc.) are not saved.
|
|
590
664
|
|
|
@@ -603,10 +677,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
603
677
|
"domain": domain,
|
|
604
678
|
"profile_name": profile_name,
|
|
605
679
|
"allowed_domains": allowed_domains,
|
|
680
|
+
"auto_reauth": auto_reauth,
|
|
606
681
|
"credential": credential,
|
|
607
682
|
"health_check_interval": health_check_interval,
|
|
683
|
+
"health_checks": health_checks,
|
|
608
684
|
"login_url": login_url,
|
|
609
685
|
"proxy": proxy,
|
|
686
|
+
"record_session": record_session,
|
|
610
687
|
"save_credentials": save_credentials,
|
|
611
688
|
},
|
|
612
689
|
connection_create_params.ConnectionCreateParams,
|
|
@@ -657,10 +734,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
657
734
|
id: str,
|
|
658
735
|
*,
|
|
659
736
|
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
737
|
+
auto_reauth: bool | Omit = omit,
|
|
660
738
|
credential: connection_update_params.Credential | Omit = omit,
|
|
661
739
|
health_check_interval: int | Omit = omit,
|
|
740
|
+
health_checks: bool | Omit = omit,
|
|
662
741
|
login_url: str | Omit = omit,
|
|
663
742
|
proxy: connection_update_params.Proxy | Omit = omit,
|
|
743
|
+
record_session: bool | Omit = omit,
|
|
664
744
|
save_credentials: bool | Omit = omit,
|
|
665
745
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
666
746
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -677,6 +757,14 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
677
757
|
Args:
|
|
678
758
|
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
|
|
679
759
|
|
|
760
|
+
auto_reauth: Whether automatic re-authentication is permitted for this connection. This is an
|
|
761
|
+
opt-in flag only — it does not check whether re-auth is actually feasible. Even
|
|
762
|
+
when true, re-auth only runs when the system has what it needs to perform it
|
|
763
|
+
(for example, saved credentials for the required login fields), and only after a
|
|
764
|
+
scheduled health check detects an expired session — so this flag has no effect
|
|
765
|
+
when `health_checks` is false. When false, expired sessions detected by a health
|
|
766
|
+
check are marked as `NEEDS_AUTH` instead of attempting re-auth.
|
|
767
|
+
|
|
680
768
|
credential:
|
|
681
769
|
Reference to credentials for the auth connection. Use one of:
|
|
682
770
|
|
|
@@ -686,11 +774,18 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
686
774
|
|
|
687
775
|
health_check_interval: Interval in seconds between automatic health checks
|
|
688
776
|
|
|
777
|
+
health_checks: Whether periodic health checks are enabled. When set to false, the system will
|
|
778
|
+
not automatically verify authentication status, and `auto_reauth` has no effect
|
|
779
|
+
on the automatic flow (since re-auth is only triggered by a failed scheduled
|
|
780
|
+
health check).
|
|
781
|
+
|
|
689
782
|
login_url: Login page URL. Set to empty string to clear.
|
|
690
783
|
|
|
691
784
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
692
785
|
caller's org.
|
|
693
786
|
|
|
787
|
+
record_session: Whether to record browser sessions for this connection by default
|
|
788
|
+
|
|
694
789
|
save_credentials: Whether to save credentials after every successful login
|
|
695
790
|
|
|
696
791
|
extra_headers: Send extra headers
|
|
@@ -708,10 +803,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
708
803
|
body=await async_maybe_transform(
|
|
709
804
|
{
|
|
710
805
|
"allowed_domains": allowed_domains,
|
|
806
|
+
"auto_reauth": auto_reauth,
|
|
711
807
|
"credential": credential,
|
|
712
808
|
"health_check_interval": health_check_interval,
|
|
809
|
+
"health_checks": health_checks,
|
|
713
810
|
"login_url": login_url,
|
|
714
811
|
"proxy": proxy,
|
|
812
|
+
"record_session": record_session,
|
|
715
813
|
"save_credentials": save_credentials,
|
|
716
814
|
},
|
|
717
815
|
connection_update_params.ConnectionUpdateParams,
|
|
@@ -861,6 +959,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
861
959
|
id: str,
|
|
862
960
|
*,
|
|
863
961
|
proxy: connection_login_params.Proxy | Omit = omit,
|
|
962
|
+
record_session: bool | Omit = omit,
|
|
864
963
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
865
964
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
866
965
|
extra_headers: Headers | None = None,
|
|
@@ -878,6 +977,9 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
878
977
|
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
879
978
|
caller's org.
|
|
880
979
|
|
|
980
|
+
record_session: Override the connection's default for recording this login's browser session.
|
|
981
|
+
When omitted, the connection's record_session default is used.
|
|
982
|
+
|
|
881
983
|
extra_headers: Send extra headers
|
|
882
984
|
|
|
883
985
|
extra_query: Add additional query parameters to the request
|
|
@@ -890,7 +992,13 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
890
992
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
891
993
|
return await self._post(
|
|
892
994
|
path_template("/auth/connections/{id}/login", id=id),
|
|
893
|
-
body=await async_maybe_transform(
|
|
995
|
+
body=await async_maybe_transform(
|
|
996
|
+
{
|
|
997
|
+
"proxy": proxy,
|
|
998
|
+
"record_session": record_session,
|
|
999
|
+
},
|
|
1000
|
+
connection_login_params.ConnectionLoginParams,
|
|
1001
|
+
),
|
|
894
1002
|
options=make_request_options(
|
|
895
1003
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
896
1004
|
),
|
|
@@ -68,6 +68,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
68
68
|
name: str | Omit = omit,
|
|
69
69
|
profile: BrowserProfile | Omit = omit,
|
|
70
70
|
proxy_id: str | Omit = omit,
|
|
71
|
+
start_url: str | Omit = omit,
|
|
71
72
|
stealth: bool | Omit = omit,
|
|
72
73
|
timeout_seconds: int | Omit = omit,
|
|
73
74
|
viewport: BrowserViewport | Omit = omit,
|
|
@@ -100,7 +101,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
100
101
|
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
|
|
101
102
|
view.
|
|
102
103
|
|
|
103
|
-
name: Optional name for the browser pool. Must be unique within the
|
|
104
|
+
name: Optional name for the browser pool. Must be unique within the project.
|
|
104
105
|
|
|
105
106
|
profile: Profile selection for the browser session. Provide either id or name. If
|
|
106
107
|
specified, the matching profile will be loaded into the browser session.
|
|
@@ -109,6 +110,10 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
109
110
|
proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
|
|
110
111
|
belonging to the caller's org.
|
|
111
112
|
|
|
113
|
+
start_url: Optional URL to open when a browser is created for the pool. Navigation is
|
|
114
|
+
best-effort, so navigation failures do not prevent the pool from filling. Reused
|
|
115
|
+
browsers keep the page left by the previous lease.
|
|
116
|
+
|
|
112
117
|
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
|
|
113
118
|
mechanisms.
|
|
114
119
|
|
|
@@ -149,6 +154,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
149
154
|
"name": name,
|
|
150
155
|
"profile": profile,
|
|
151
156
|
"proxy_id": proxy_id,
|
|
157
|
+
"start_url": start_url,
|
|
152
158
|
"stealth": stealth,
|
|
153
159
|
"timeout_seconds": timeout_seconds,
|
|
154
160
|
"viewport": viewport,
|
|
@@ -208,6 +214,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
208
214
|
name: str | Omit = omit,
|
|
209
215
|
profile: BrowserProfile | Omit = omit,
|
|
210
216
|
proxy_id: str | Omit = omit,
|
|
217
|
+
start_url: str | Omit = omit,
|
|
211
218
|
stealth: bool | Omit = omit,
|
|
212
219
|
timeout_seconds: int | Omit = omit,
|
|
213
220
|
viewport: BrowserViewport | Omit = omit,
|
|
@@ -243,7 +250,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
243
250
|
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
|
|
244
251
|
view.
|
|
245
252
|
|
|
246
|
-
name: Optional name for the browser pool. Must be unique within the
|
|
253
|
+
name: Optional name for the browser pool. Must be unique within the project.
|
|
247
254
|
|
|
248
255
|
profile: Profile selection for the browser session. Provide either id or name. If
|
|
249
256
|
specified, the matching profile will be loaded into the browser session.
|
|
@@ -252,6 +259,10 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
252
259
|
proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
|
|
253
260
|
belonging to the caller's org.
|
|
254
261
|
|
|
262
|
+
start_url: Optional URL to open when a browser is created for the pool. Navigation is
|
|
263
|
+
best-effort, so navigation failures do not prevent the pool from filling. Reused
|
|
264
|
+
browsers keep the page left by the previous lease.
|
|
265
|
+
|
|
255
266
|
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
|
|
256
267
|
mechanisms.
|
|
257
268
|
|
|
@@ -295,6 +306,7 @@ class BrowserPoolsResource(SyncAPIResource):
|
|
|
295
306
|
"name": name,
|
|
296
307
|
"profile": profile,
|
|
297
308
|
"proxy_id": proxy_id,
|
|
309
|
+
"start_url": start_url,
|
|
298
310
|
"stealth": stealth,
|
|
299
311
|
"timeout_seconds": timeout_seconds,
|
|
300
312
|
"viewport": viewport,
|
|
@@ -530,6 +542,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
530
542
|
name: str | Omit = omit,
|
|
531
543
|
profile: BrowserProfile | Omit = omit,
|
|
532
544
|
proxy_id: str | Omit = omit,
|
|
545
|
+
start_url: str | Omit = omit,
|
|
533
546
|
stealth: bool | Omit = omit,
|
|
534
547
|
timeout_seconds: int | Omit = omit,
|
|
535
548
|
viewport: BrowserViewport | Omit = omit,
|
|
@@ -562,7 +575,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
562
575
|
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
|
|
563
576
|
view.
|
|
564
577
|
|
|
565
|
-
name: Optional name for the browser pool. Must be unique within the
|
|
578
|
+
name: Optional name for the browser pool. Must be unique within the project.
|
|
566
579
|
|
|
567
580
|
profile: Profile selection for the browser session. Provide either id or name. If
|
|
568
581
|
specified, the matching profile will be loaded into the browser session.
|
|
@@ -571,6 +584,10 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
571
584
|
proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
|
|
572
585
|
belonging to the caller's org.
|
|
573
586
|
|
|
587
|
+
start_url: Optional URL to open when a browser is created for the pool. Navigation is
|
|
588
|
+
best-effort, so navigation failures do not prevent the pool from filling. Reused
|
|
589
|
+
browsers keep the page left by the previous lease.
|
|
590
|
+
|
|
574
591
|
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
|
|
575
592
|
mechanisms.
|
|
576
593
|
|
|
@@ -611,6 +628,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
611
628
|
"name": name,
|
|
612
629
|
"profile": profile,
|
|
613
630
|
"proxy_id": proxy_id,
|
|
631
|
+
"start_url": start_url,
|
|
614
632
|
"stealth": stealth,
|
|
615
633
|
"timeout_seconds": timeout_seconds,
|
|
616
634
|
"viewport": viewport,
|
|
@@ -670,6 +688,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
670
688
|
name: str | Omit = omit,
|
|
671
689
|
profile: BrowserProfile | Omit = omit,
|
|
672
690
|
proxy_id: str | Omit = omit,
|
|
691
|
+
start_url: str | Omit = omit,
|
|
673
692
|
stealth: bool | Omit = omit,
|
|
674
693
|
timeout_seconds: int | Omit = omit,
|
|
675
694
|
viewport: BrowserViewport | Omit = omit,
|
|
@@ -705,7 +724,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
705
724
|
kiosk_mode: If true, launches the browser in kiosk mode to hide address bar and tabs in live
|
|
706
725
|
view.
|
|
707
726
|
|
|
708
|
-
name: Optional name for the browser pool. Must be unique within the
|
|
727
|
+
name: Optional name for the browser pool. Must be unique within the project.
|
|
709
728
|
|
|
710
729
|
profile: Profile selection for the browser session. Provide either id or name. If
|
|
711
730
|
specified, the matching profile will be loaded into the browser session.
|
|
@@ -714,6 +733,10 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
714
733
|
proxy_id: Optional proxy to associate to the browser session. Must reference a proxy
|
|
715
734
|
belonging to the caller's org.
|
|
716
735
|
|
|
736
|
+
start_url: Optional URL to open when a browser is created for the pool. Navigation is
|
|
737
|
+
best-effort, so navigation failures do not prevent the pool from filling. Reused
|
|
738
|
+
browsers keep the page left by the previous lease.
|
|
739
|
+
|
|
717
740
|
stealth: If true, launches the browser in stealth mode to reduce detection by anti-bot
|
|
718
741
|
mechanisms.
|
|
719
742
|
|
|
@@ -757,6 +780,7 @@ class AsyncBrowserPoolsResource(AsyncAPIResource):
|
|
|
757
780
|
"name": name,
|
|
758
781
|
"profile": profile,
|
|
759
782
|
"proxy_id": proxy_id,
|
|
783
|
+
"start_url": start_url,
|
|
760
784
|
"stealth": stealth,
|
|
761
785
|
"timeout_seconds": timeout_seconds,
|
|
762
786
|
"viewport": viewport,
|