kernel 0.43.0__tar.gz → 0.45.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.43.0 → kernel-0.45.0}/.gitignore +1 -0
- kernel-0.45.0/.release-please-manifest.json +3 -0
- {kernel-0.43.0 → kernel-0.45.0}/CHANGELOG.md +41 -0
- {kernel-0.43.0 → kernel-0.45.0}/PKG-INFO +2 -2
- {kernel-0.43.0 → kernel-0.45.0}/api.md +2 -0
- {kernel-0.43.0 → kernel-0.45.0}/pyproject.toml +2 -2
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_compat.py +9 -2
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_qs.py +4 -1
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/__init__.py +1 -0
- kernel-0.45.0/src/kernel/_utils/_path.py +127 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_version.py +1 -1
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/auth/connections.py +188 -15
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browser_pools.py +70 -26
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/browsers.py +37 -19
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/computer.py +53 -29
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/fs/fs.py +25 -25
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/fs/watch.py +7 -7
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/logs.py +3 -3
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/playwright.py +3 -3
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/process.py +15 -15
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/replays.py +9 -9
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/credential_providers.py +11 -11
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/credentials.py +9 -9
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/deployments.py +7 -7
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/extensions.py +5 -5
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/invocations.py +11 -11
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/profiles.py +7 -7
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/proxies.py +7 -7
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/__init__.py +1 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/connection_follow_response.py +23 -0
- kernel-0.45.0/src/kernel/types/auth/connection_submit_params.py +31 -0
- kernel-0.45.0/src/kernel/types/auth/connection_update_params.py +72 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/managed_auth.py +23 -1
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_create_params.py +15 -11
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_create_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_list_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool.py +22 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_acquire_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_create_params.py +22 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_update_params.py +22 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_retrieve_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_update_params.py +6 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_update_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_batch_params.py +20 -2
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_drag_mouse_params.py +12 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_scroll_params.py +8 -2
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_list_browsers_response.py +17 -10
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/browser_viewport.py +7 -3
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared_params/browser_viewport.py +7 -3
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/auth/test_connections.py +132 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_computer.py +4 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_browser_pools.py +4 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_browsers.py +2 -0
- kernel-0.45.0/tests/test_utils/test_path.py +89 -0
- kernel-0.43.0/.release-please-manifest.json +0 -3
- kernel-0.43.0/src/kernel/types/auth/connection_submit_params.py +0 -19
- {kernel-0.43.0 → kernel-0.45.0}/CONTRIBUTING.md +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/LICENSE +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/README.md +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/SECURITY.md +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/bin/check-release-environment +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/bin/publish-pypi +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/examples/.keep +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/noxfile.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/release-please-config.json +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/requirements-dev.lock +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/requirements.lock +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_base_client.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_client.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_constants.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_exceptions.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_files.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_models.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_resource.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_streaming.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_types.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_compat.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_datetime_parse.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_json.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_logs.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_proxy.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_reflection.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_resources_proxy.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_streams.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_sync.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_transform.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_typing.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/_utils/_utils.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/app_framework.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/lib/.keep +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/pagination.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/py.typed +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/apps.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/auth/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/auth/auth.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/resources/browsers/fs/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/app_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/app_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/connection_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/connection_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/connection_login_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/login_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/auth/submit_fields_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_delete_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_load_extensions_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_persistence.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_persistence_param.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_acquire_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_delete_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_ref.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_pool_release_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_retrieve_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browser_usage.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_capture_screenshot_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_click_mouse_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_get_mouse_position_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_move_mouse_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_press_key_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_read_clipboard_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_set_cursor_visibility_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_set_cursor_visibility_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_type_text_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/computer_write_clipboard_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_create_directory_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_delete_directory_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_delete_file_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_download_dir_zip_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_file_info_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_file_info_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_list_files_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_list_files_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_move_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_read_file_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_set_file_permissions_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_upload_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_upload_zip_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/f_write_file_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/fs/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/fs/watch_events_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/fs/watch_start_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/fs/watch_start_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/log_stream_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/playwright_execute_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/playwright_execute_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_exec_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_exec_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_kill_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_kill_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_resize_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_resize_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_spawn_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_spawn_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_status_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_stdin_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_stdin_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/process_stdout_stream_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/replay_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/replay_start_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/browsers/replay_start_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_item.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_list_items_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_test_result.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_provider_update_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_totp_code_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/credential_update_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_create_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_follow_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_follow_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_retrieve_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/deployment_state_event.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/extension_download_from_chrome_store_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/extension_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/extension_upload_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/extension_upload_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_create_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_follow_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_follow_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_retrieve_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_state_event.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_update_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/invocation_update_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/profile.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/profile_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/profile_list_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/proxy_check_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/proxy_create_params.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/proxy_create_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/proxy_list_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/proxy_retrieve_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/app_action.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/browser_extension.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/browser_profile.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/error_detail.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/error_event.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/error_model.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/heartbeat_event.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared/log_event.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared_params/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared_params/browser_extension.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/src/kernel/types/shared_params/browser_profile.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/auth/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/fs/__init__.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/fs/test_watch.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_fs.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_logs.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_playwright.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_process.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/browsers/test_replays.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_apps.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_credential_providers.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_credentials.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_deployments.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_extensions.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_invocations.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_profiles.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/api_resources/test_proxies.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/conftest.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/sample_file.txt +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_client.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_deepcopy.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_extract_files.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_files.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_models.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_qs.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_required_args.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_response.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_streaming.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_transform.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_utils/test_json.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_utils/test_proxy.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/test_utils/test_typing.py +0 -0
- {kernel-0.43.0 → kernel-0.45.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,46 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.45.0 (2026-03-30)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.44.0...v0.45.0](https://github.com/kernel/kernel-python-sdk/compare/v0.44.0...v0.45.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* [kernel-1008] browser pools add custom policy ([09f8520](https://github.com/kernel/kernel-python-sdk/commit/09f85209bc3c646d8a2a1231ed3925cad830f3dc))
|
|
10
|
+
* Add disable_default_proxy for stealth browsers ([3a75e81](https://github.com/kernel/kernel-python-sdk/commit/3a75e819e6e7caffdfba74a9627ed418de247de7))
|
|
11
|
+
* **internal:** implement indices array format for query and form serialization ([c798c39](https://github.com/kernel/kernel-python-sdk/commit/c798c39251def1447d61215c187f0e285f225f3d))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Chores
|
|
15
|
+
|
|
16
|
+
* **ci:** skip lint on metadata-only changes ([f0815a8](https://github.com/kernel/kernel-python-sdk/commit/f0815a8d36799444220552cb599a19b79c9b5e12))
|
|
17
|
+
* **internal:** update gitignore ([34b47ab](https://github.com/kernel/kernel-python-sdk/commit/34b47ab40aeb12ad9f78e923493caaca88a554b4))
|
|
18
|
+
|
|
19
|
+
## 0.44.0 (2026-03-20)
|
|
20
|
+
|
|
21
|
+
Full Changelog: [v0.43.0...v0.44.0](https://github.com/kernel/kernel-python-sdk/compare/v0.43.0...v0.44.0)
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* Add GPU viewport presets and GPU encoder defaults ([0735b45](https://github.com/kernel/kernel-python-sdk/commit/0735b45fc92950cef3afea92a879712ea0ebdf0f))
|
|
26
|
+
* Adds description to OAS spec for docs about delta_x, delta_y ([9841aac](https://github.com/kernel/kernel-python-sdk/commit/9841aac21588beb0c6a22baf5c5b0bf8e8cdd024))
|
|
27
|
+
* Drop headless GPU support and disable pooling ([cda8f94](https://github.com/kernel/kernel-python-sdk/commit/cda8f94f6cebabc3b3b6f95aff765816255a9270))
|
|
28
|
+
* Enhance managed authentication with CUA support and new features ([ece76c2](https://github.com/kernel/kernel-python-sdk/commit/ece76c2f7d2a20af7c00988d161c4e275623aaac))
|
|
29
|
+
* expose smooth drag mouse movement via public API ([c6f6862](https://github.com/kernel/kernel-python-sdk/commit/c6f6862d03620bb218a99c85431e384c5c8e5e4c))
|
|
30
|
+
* Rename hardware acceleration UI/docs wording to GPU acceleration ([9ee4d0c](https://github.com/kernel/kernel-python-sdk/commit/9ee4d0c080da7f649a3bde63640593f33d5d0f6b))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* **deps:** bump minimum typing-extensions version ([fd55947](https://github.com/kernel/kernel-python-sdk/commit/fd55947f1776b43cca804622d0c771ebe99ead60))
|
|
36
|
+
* **pydantic:** do not pass `by_alias` unless set ([a815a82](https://github.com/kernel/kernel-python-sdk/commit/a815a8237cce2098b2f5d6a8ad5def400d418fbb))
|
|
37
|
+
* sanitize endpoint path params ([9b55d2b](https://github.com/kernel/kernel-python-sdk/commit/9b55d2be9472f779fe20d7d863dacae1030d2b49))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Chores
|
|
41
|
+
|
|
42
|
+
* **internal:** tweak CI branches ([8781c7d](https://github.com/kernel/kernel-python-sdk/commit/8781c7d9aa8759e487e5d86cbb82bfb7eb3d314e))
|
|
43
|
+
|
|
3
44
|
## 0.43.0 (2026-03-10)
|
|
4
45
|
|
|
5
46
|
Full Changelog: [v0.42.1...v0.43.0](https://github.com/kernel/kernel-python-sdk/compare/v0.42.1...v0.43.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: kernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.45.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
|
|
@@ -27,7 +27,7 @@ Requires-Dist: distro<2,>=1.7.0
|
|
|
27
27
|
Requires-Dist: httpx<1,>=0.23.0
|
|
28
28
|
Requires-Dist: pydantic<3,>=1.9.0
|
|
29
29
|
Requires-Dist: sniffio
|
|
30
|
-
Requires-Dist: typing-extensions<5,>=4.
|
|
30
|
+
Requires-Dist: typing-extensions<5,>=4.14
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
33
|
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
|
|
@@ -245,6 +245,7 @@ from kernel.types.auth import (
|
|
|
245
245
|
LoginResponse,
|
|
246
246
|
ManagedAuth,
|
|
247
247
|
ManagedAuthCreateRequest,
|
|
248
|
+
ManagedAuthUpdateRequest,
|
|
248
249
|
SubmitFieldsRequest,
|
|
249
250
|
SubmitFieldsResponse,
|
|
250
251
|
ConnectionFollowResponse,
|
|
@@ -255,6 +256,7 @@ Methods:
|
|
|
255
256
|
|
|
256
257
|
- <code title="post /auth/connections">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">create</a>(\*\*<a href="src/kernel/types/auth/connection_create_params.py">params</a>) -> <a href="./src/kernel/types/auth/managed_auth.py">ManagedAuth</a></code>
|
|
257
258
|
- <code title="get /auth/connections/{id}">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">retrieve</a>(id) -> <a href="./src/kernel/types/auth/managed_auth.py">ManagedAuth</a></code>
|
|
259
|
+
- <code title="patch /auth/connections/{id}">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">update</a>(id, \*\*<a href="src/kernel/types/auth/connection_update_params.py">params</a>) -> <a href="./src/kernel/types/auth/managed_auth.py">ManagedAuth</a></code>
|
|
258
260
|
- <code title="get /auth/connections">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">list</a>(\*\*<a href="src/kernel/types/auth/connection_list_params.py">params</a>) -> <a href="./src/kernel/types/auth/managed_auth.py">SyncOffsetPagination[ManagedAuth]</a></code>
|
|
259
261
|
- <code title="delete /auth/connections/{id}">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">delete</a>(id) -> None</code>
|
|
260
262
|
- <code title="get /auth/connections/{id}/events">client.auth.connections.<a href="./src/kernel/resources/auth/connections.py">follow</a>(id) -> <a href="./src/kernel/types/auth/connection_follow_response.py">ConnectionFollowResponse</a></code>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "kernel"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.45.0"
|
|
4
4
|
description = "The official Python library for the kernel API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -11,7 +11,7 @@ authors = [
|
|
|
11
11
|
dependencies = [
|
|
12
12
|
"httpx>=0.23.0, <1",
|
|
13
13
|
"pydantic>=1.9.0, <3",
|
|
14
|
-
"typing-extensions>=4.
|
|
14
|
+
"typing-extensions>=4.14, <5",
|
|
15
15
|
"anyio>=3.5.0, <5",
|
|
16
16
|
"distro>=1.7.0, <2",
|
|
17
17
|
"sniffio",
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from typing import TYPE_CHECKING, Any, Union, Generic, TypeVar, Callable, cast, overload
|
|
4
4
|
from datetime import date, datetime
|
|
5
|
-
from typing_extensions import Self, Literal
|
|
5
|
+
from typing_extensions import Self, Literal, TypedDict
|
|
6
6
|
|
|
7
7
|
import pydantic
|
|
8
8
|
from pydantic.fields import FieldInfo
|
|
@@ -131,6 +131,10 @@ def model_json(model: pydantic.BaseModel, *, indent: int | None = None) -> str:
|
|
|
131
131
|
return model.model_dump_json(indent=indent)
|
|
132
132
|
|
|
133
133
|
|
|
134
|
+
class _ModelDumpKwargs(TypedDict, total=False):
|
|
135
|
+
by_alias: bool
|
|
136
|
+
|
|
137
|
+
|
|
134
138
|
def model_dump(
|
|
135
139
|
model: pydantic.BaseModel,
|
|
136
140
|
*,
|
|
@@ -142,6 +146,9 @@ def model_dump(
|
|
|
142
146
|
by_alias: bool | None = None,
|
|
143
147
|
) -> dict[str, Any]:
|
|
144
148
|
if (not PYDANTIC_V1) or hasattr(model, "model_dump"):
|
|
149
|
+
kwargs: _ModelDumpKwargs = {}
|
|
150
|
+
if by_alias is not None:
|
|
151
|
+
kwargs["by_alias"] = by_alias
|
|
145
152
|
return model.model_dump(
|
|
146
153
|
mode=mode,
|
|
147
154
|
exclude=exclude,
|
|
@@ -149,7 +156,7 @@ def model_dump(
|
|
|
149
156
|
exclude_defaults=exclude_defaults,
|
|
150
157
|
# warnings are not supported in Pydantic v1
|
|
151
158
|
warnings=True if PYDANTIC_V1 else warnings,
|
|
152
|
-
|
|
159
|
+
**kwargs,
|
|
153
160
|
)
|
|
154
161
|
return cast(
|
|
155
162
|
"dict[str, Any]",
|
|
@@ -101,7 +101,10 @@ class Querystring:
|
|
|
101
101
|
items.extend(self._stringify_item(key, item, opts))
|
|
102
102
|
return items
|
|
103
103
|
elif array_format == "indices":
|
|
104
|
-
|
|
104
|
+
items = []
|
|
105
|
+
for i, item in enumerate(value):
|
|
106
|
+
items.extend(self._stringify_item(f"{key}[{i}]", item, opts))
|
|
107
|
+
return items
|
|
105
108
|
elif array_format == "brackets":
|
|
106
109
|
items = []
|
|
107
110
|
key = key + "[]"
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import re
|
|
4
|
+
from typing import (
|
|
5
|
+
Any,
|
|
6
|
+
Mapping,
|
|
7
|
+
Callable,
|
|
8
|
+
)
|
|
9
|
+
from urllib.parse import quote
|
|
10
|
+
|
|
11
|
+
# Matches '.' or '..' where each dot is either literal or percent-encoded (%2e / %2E).
|
|
12
|
+
_DOT_SEGMENT_RE = re.compile(r"^(?:\.|%2[eE]){1,2}$")
|
|
13
|
+
|
|
14
|
+
_PLACEHOLDER_RE = re.compile(r"\{(\w+)\}")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _quote_path_segment_part(value: str) -> str:
|
|
18
|
+
"""Percent-encode `value` for use in a URI path segment.
|
|
19
|
+
|
|
20
|
+
Considers characters not in `pchar` set from RFC 3986 §3.3 to be unsafe.
|
|
21
|
+
https://datatracker.ietf.org/doc/html/rfc3986#section-3.3
|
|
22
|
+
"""
|
|
23
|
+
# quote() already treats unreserved characters (letters, digits, and -._~)
|
|
24
|
+
# as safe, so we only need to add sub-delims, ':', and '@'.
|
|
25
|
+
# Notably, unlike the default `safe` for quote(), / is unsafe and must be quoted.
|
|
26
|
+
return quote(value, safe="!$&'()*+,;=:@")
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def _quote_query_part(value: str) -> str:
|
|
30
|
+
"""Percent-encode `value` for use in a URI query string.
|
|
31
|
+
|
|
32
|
+
Considers &, = and characters not in `query` set from RFC 3986 §3.4 to be unsafe.
|
|
33
|
+
https://datatracker.ietf.org/doc/html/rfc3986#section-3.4
|
|
34
|
+
"""
|
|
35
|
+
return quote(value, safe="!$'()*+,;:@/?")
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _quote_fragment_part(value: str) -> str:
|
|
39
|
+
"""Percent-encode `value` for use in a URI fragment.
|
|
40
|
+
|
|
41
|
+
Considers characters not in `fragment` set from RFC 3986 §3.5 to be unsafe.
|
|
42
|
+
https://datatracker.ietf.org/doc/html/rfc3986#section-3.5
|
|
43
|
+
"""
|
|
44
|
+
return quote(value, safe="!$&'()*+,;=:@/?")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _interpolate(
|
|
48
|
+
template: str,
|
|
49
|
+
values: Mapping[str, Any],
|
|
50
|
+
quoter: Callable[[str], str],
|
|
51
|
+
) -> str:
|
|
52
|
+
"""Replace {name} placeholders in `template`, quoting each value with `quoter`.
|
|
53
|
+
|
|
54
|
+
Placeholder names are looked up in `values`.
|
|
55
|
+
|
|
56
|
+
Raises:
|
|
57
|
+
KeyError: If a placeholder is not found in `values`.
|
|
58
|
+
"""
|
|
59
|
+
# re.split with a capturing group returns alternating
|
|
60
|
+
# [text, name, text, name, ..., text] elements.
|
|
61
|
+
parts = _PLACEHOLDER_RE.split(template)
|
|
62
|
+
|
|
63
|
+
for i in range(1, len(parts), 2):
|
|
64
|
+
name = parts[i]
|
|
65
|
+
if name not in values:
|
|
66
|
+
raise KeyError(f"a value for placeholder {{{name}}} was not provided")
|
|
67
|
+
val = values[name]
|
|
68
|
+
if val is None:
|
|
69
|
+
parts[i] = "null"
|
|
70
|
+
elif isinstance(val, bool):
|
|
71
|
+
parts[i] = "true" if val else "false"
|
|
72
|
+
else:
|
|
73
|
+
parts[i] = quoter(str(values[name]))
|
|
74
|
+
|
|
75
|
+
return "".join(parts)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def path_template(template: str, /, **kwargs: Any) -> str:
|
|
79
|
+
"""Interpolate {name} placeholders in `template` from keyword arguments.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
template: The template string containing {name} placeholders.
|
|
83
|
+
**kwargs: Keyword arguments to interpolate into the template.
|
|
84
|
+
|
|
85
|
+
Returns:
|
|
86
|
+
The template with placeholders interpolated and percent-encoded.
|
|
87
|
+
|
|
88
|
+
Safe characters for percent-encoding are dependent on the URI component.
|
|
89
|
+
Placeholders in path and fragment portions are percent-encoded where the `segment`
|
|
90
|
+
and `fragment` sets from RFC 3986 respectively are considered safe.
|
|
91
|
+
Placeholders in the query portion are percent-encoded where the `query` set from
|
|
92
|
+
RFC 3986 §3.3 is considered safe except for = and & characters.
|
|
93
|
+
|
|
94
|
+
Raises:
|
|
95
|
+
KeyError: If a placeholder is not found in `kwargs`.
|
|
96
|
+
ValueError: If resulting path contains /./ or /../ segments (including percent-encoded dot-segments).
|
|
97
|
+
"""
|
|
98
|
+
# Split the template into path, query, and fragment portions.
|
|
99
|
+
fragment_template: str | None = None
|
|
100
|
+
query_template: str | None = None
|
|
101
|
+
|
|
102
|
+
rest = template
|
|
103
|
+
if "#" in rest:
|
|
104
|
+
rest, fragment_template = rest.split("#", 1)
|
|
105
|
+
if "?" in rest:
|
|
106
|
+
rest, query_template = rest.split("?", 1)
|
|
107
|
+
path_template = rest
|
|
108
|
+
|
|
109
|
+
# Interpolate each portion with the appropriate quoting rules.
|
|
110
|
+
path_result = _interpolate(path_template, kwargs, _quote_path_segment_part)
|
|
111
|
+
|
|
112
|
+
# Reject dot-segments (. and ..) in the final assembled path. The check
|
|
113
|
+
# runs after interpolation so that adjacent placeholders or a mix of static
|
|
114
|
+
# text and placeholders that together form a dot-segment are caught.
|
|
115
|
+
# Also reject percent-encoded dot-segments to protect against incorrectly
|
|
116
|
+
# implemented normalization in servers/proxies.
|
|
117
|
+
for segment in path_result.split("/"):
|
|
118
|
+
if _DOT_SEGMENT_RE.match(segment):
|
|
119
|
+
raise ValueError(f"Constructed path {path_result!r} contains dot-segment {segment!r} which is not allowed")
|
|
120
|
+
|
|
121
|
+
result = path_result
|
|
122
|
+
if query_template is not None:
|
|
123
|
+
result += "?" + _interpolate(query_template, kwargs, _quote_query_part)
|
|
124
|
+
if fragment_template is not None:
|
|
125
|
+
result += "#" + _interpolate(fragment_template, kwargs, _quote_fragment_part)
|
|
126
|
+
|
|
127
|
+
return result
|
|
@@ -7,7 +7,7 @@ from typing import Any, Dict, cast
|
|
|
7
7
|
import httpx
|
|
8
8
|
|
|
9
9
|
from ..._types import Body, Omit, Query, Headers, NoneType, NotGiven, SequenceNotStr, omit, not_given
|
|
10
|
-
from ..._utils import maybe_transform, async_maybe_transform
|
|
10
|
+
from ..._utils import path_template, maybe_transform, async_maybe_transform
|
|
11
11
|
from ..._compat import cached_property
|
|
12
12
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
13
13
|
from ..._response import (
|
|
@@ -23,6 +23,7 @@ from ...types.auth import (
|
|
|
23
23
|
connection_login_params,
|
|
24
24
|
connection_create_params,
|
|
25
25
|
connection_submit_params,
|
|
26
|
+
connection_update_params,
|
|
26
27
|
)
|
|
27
28
|
from ..._base_client import AsyncPaginator, make_request_options
|
|
28
29
|
from ...types.auth.managed_auth import ManagedAuth
|
|
@@ -179,7 +180,77 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
179
180
|
if not id:
|
|
180
181
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
181
182
|
return self._get(
|
|
182
|
-
|
|
183
|
+
path_template("/auth/connections/{id}", id=id),
|
|
184
|
+
options=make_request_options(
|
|
185
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
186
|
+
),
|
|
187
|
+
cast_to=ManagedAuth,
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
def update(
|
|
191
|
+
self,
|
|
192
|
+
id: str,
|
|
193
|
+
*,
|
|
194
|
+
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
195
|
+
credential: connection_update_params.Credential | Omit = omit,
|
|
196
|
+
health_check_interval: int | Omit = omit,
|
|
197
|
+
login_url: str | Omit = omit,
|
|
198
|
+
proxy: connection_update_params.Proxy | Omit = omit,
|
|
199
|
+
save_credentials: bool | Omit = omit,
|
|
200
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
201
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
202
|
+
extra_headers: Headers | None = None,
|
|
203
|
+
extra_query: Query | None = None,
|
|
204
|
+
extra_body: Body | None = None,
|
|
205
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
206
|
+
) -> ManagedAuth:
|
|
207
|
+
"""Update an auth connection's configuration.
|
|
208
|
+
|
|
209
|
+
Only the fields provided will be
|
|
210
|
+
updated.
|
|
211
|
+
|
|
212
|
+
Args:
|
|
213
|
+
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
|
|
214
|
+
|
|
215
|
+
credential:
|
|
216
|
+
Reference to credentials for the auth connection. Use one of:
|
|
217
|
+
|
|
218
|
+
- { name } for Kernel credentials
|
|
219
|
+
- { provider, path } for external provider item
|
|
220
|
+
- { provider, auto: true } for external provider domain lookup
|
|
221
|
+
|
|
222
|
+
health_check_interval: Interval in seconds between automatic health checks
|
|
223
|
+
|
|
224
|
+
login_url: Login page URL. Set to empty string to clear.
|
|
225
|
+
|
|
226
|
+
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
227
|
+
caller's org.
|
|
228
|
+
|
|
229
|
+
save_credentials: Whether to save credentials after every successful login
|
|
230
|
+
|
|
231
|
+
extra_headers: Send extra headers
|
|
232
|
+
|
|
233
|
+
extra_query: Add additional query parameters to the request
|
|
234
|
+
|
|
235
|
+
extra_body: Add additional JSON properties to the request
|
|
236
|
+
|
|
237
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
238
|
+
"""
|
|
239
|
+
if not id:
|
|
240
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
241
|
+
return self._patch(
|
|
242
|
+
path_template("/auth/connections/{id}", id=id),
|
|
243
|
+
body=maybe_transform(
|
|
244
|
+
{
|
|
245
|
+
"allowed_domains": allowed_domains,
|
|
246
|
+
"credential": credential,
|
|
247
|
+
"health_check_interval": health_check_interval,
|
|
248
|
+
"login_url": login_url,
|
|
249
|
+
"proxy": proxy,
|
|
250
|
+
"save_credentials": save_credentials,
|
|
251
|
+
},
|
|
252
|
+
connection_update_params.ConnectionUpdateParams,
|
|
253
|
+
),
|
|
183
254
|
options=make_request_options(
|
|
184
255
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
185
256
|
),
|
|
@@ -273,7 +344,7 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
273
344
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
274
345
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
275
346
|
return self._delete(
|
|
276
|
-
|
|
347
|
+
path_template("/auth/connections/{id}", id=id),
|
|
277
348
|
options=make_request_options(
|
|
278
349
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
279
350
|
),
|
|
@@ -309,7 +380,7 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
309
380
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
310
381
|
extra_headers = {"Accept": "text/event-stream", **(extra_headers or {})}
|
|
311
382
|
return self._get(
|
|
312
|
-
|
|
383
|
+
path_template("/auth/connections/{id}/events", id=id),
|
|
313
384
|
options=make_request_options(
|
|
314
385
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
315
386
|
),
|
|
@@ -353,7 +424,7 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
353
424
|
if not id:
|
|
354
425
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
355
426
|
return self._post(
|
|
356
|
-
|
|
427
|
+
path_template("/auth/connections/{id}/login", id=id),
|
|
357
428
|
body=maybe_transform({"proxy": proxy}, connection_login_params.ConnectionLoginParams),
|
|
358
429
|
options=make_request_options(
|
|
359
430
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
@@ -367,7 +438,9 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
367
438
|
*,
|
|
368
439
|
fields: Dict[str, str] | Omit = omit,
|
|
369
440
|
mfa_option_id: str | Omit = omit,
|
|
441
|
+
sign_in_option_id: str | Omit = omit,
|
|
370
442
|
sso_button_selector: str | Omit = omit,
|
|
443
|
+
sso_provider: str | Omit = omit,
|
|
371
444
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
372
445
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
373
446
|
extra_headers: Headers | None = None,
|
|
@@ -383,9 +456,15 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
383
456
|
Args:
|
|
384
457
|
fields: Map of field name to value
|
|
385
458
|
|
|
386
|
-
mfa_option_id:
|
|
459
|
+
mfa_option_id: The MFA method type to select (when mfa_options were returned)
|
|
460
|
+
|
|
461
|
+
sign_in_option_id: The sign-in option ID to select (when sign_in_options were returned)
|
|
387
462
|
|
|
388
|
-
sso_button_selector:
|
|
463
|
+
sso_button_selector: XPath selector for the SSO button to click (ODA). Use sso_provider instead for
|
|
464
|
+
CUA.
|
|
465
|
+
|
|
466
|
+
sso_provider: SSO provider to click, matching the provider field from pending_sso_buttons
|
|
467
|
+
(e.g., "google", "github"). Cannot be used with sso_button_selector.
|
|
389
468
|
|
|
390
469
|
extra_headers: Send extra headers
|
|
391
470
|
|
|
@@ -398,12 +477,14 @@ class ConnectionsResource(SyncAPIResource):
|
|
|
398
477
|
if not id:
|
|
399
478
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
400
479
|
return self._post(
|
|
401
|
-
|
|
480
|
+
path_template("/auth/connections/{id}/submit", id=id),
|
|
402
481
|
body=maybe_transform(
|
|
403
482
|
{
|
|
404
483
|
"fields": fields,
|
|
405
484
|
"mfa_option_id": mfa_option_id,
|
|
485
|
+
"sign_in_option_id": sign_in_option_id,
|
|
406
486
|
"sso_button_selector": sso_button_selector,
|
|
487
|
+
"sso_provider": sso_provider,
|
|
407
488
|
},
|
|
408
489
|
connection_submit_params.ConnectionSubmitParams,
|
|
409
490
|
),
|
|
@@ -560,7 +641,77 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
560
641
|
if not id:
|
|
561
642
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
562
643
|
return await self._get(
|
|
563
|
-
|
|
644
|
+
path_template("/auth/connections/{id}", id=id),
|
|
645
|
+
options=make_request_options(
|
|
646
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
647
|
+
),
|
|
648
|
+
cast_to=ManagedAuth,
|
|
649
|
+
)
|
|
650
|
+
|
|
651
|
+
async def update(
|
|
652
|
+
self,
|
|
653
|
+
id: str,
|
|
654
|
+
*,
|
|
655
|
+
allowed_domains: SequenceNotStr[str] | Omit = omit,
|
|
656
|
+
credential: connection_update_params.Credential | Omit = omit,
|
|
657
|
+
health_check_interval: int | Omit = omit,
|
|
658
|
+
login_url: str | Omit = omit,
|
|
659
|
+
proxy: connection_update_params.Proxy | Omit = omit,
|
|
660
|
+
save_credentials: bool | Omit = omit,
|
|
661
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
662
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
663
|
+
extra_headers: Headers | None = None,
|
|
664
|
+
extra_query: Query | None = None,
|
|
665
|
+
extra_body: Body | None = None,
|
|
666
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
667
|
+
) -> ManagedAuth:
|
|
668
|
+
"""Update an auth connection's configuration.
|
|
669
|
+
|
|
670
|
+
Only the fields provided will be
|
|
671
|
+
updated.
|
|
672
|
+
|
|
673
|
+
Args:
|
|
674
|
+
allowed_domains: Additional domains valid for this auth flow (replaces existing list)
|
|
675
|
+
|
|
676
|
+
credential:
|
|
677
|
+
Reference to credentials for the auth connection. Use one of:
|
|
678
|
+
|
|
679
|
+
- { name } for Kernel credentials
|
|
680
|
+
- { provider, path } for external provider item
|
|
681
|
+
- { provider, auto: true } for external provider domain lookup
|
|
682
|
+
|
|
683
|
+
health_check_interval: Interval in seconds between automatic health checks
|
|
684
|
+
|
|
685
|
+
login_url: Login page URL. Set to empty string to clear.
|
|
686
|
+
|
|
687
|
+
proxy: Proxy selection. Provide either id or name. The proxy must belong to the
|
|
688
|
+
caller's org.
|
|
689
|
+
|
|
690
|
+
save_credentials: Whether to save credentials after every successful login
|
|
691
|
+
|
|
692
|
+
extra_headers: Send extra headers
|
|
693
|
+
|
|
694
|
+
extra_query: Add additional query parameters to the request
|
|
695
|
+
|
|
696
|
+
extra_body: Add additional JSON properties to the request
|
|
697
|
+
|
|
698
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
699
|
+
"""
|
|
700
|
+
if not id:
|
|
701
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
702
|
+
return await self._patch(
|
|
703
|
+
path_template("/auth/connections/{id}", id=id),
|
|
704
|
+
body=await async_maybe_transform(
|
|
705
|
+
{
|
|
706
|
+
"allowed_domains": allowed_domains,
|
|
707
|
+
"credential": credential,
|
|
708
|
+
"health_check_interval": health_check_interval,
|
|
709
|
+
"login_url": login_url,
|
|
710
|
+
"proxy": proxy,
|
|
711
|
+
"save_credentials": save_credentials,
|
|
712
|
+
},
|
|
713
|
+
connection_update_params.ConnectionUpdateParams,
|
|
714
|
+
),
|
|
564
715
|
options=make_request_options(
|
|
565
716
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
566
717
|
),
|
|
@@ -654,7 +805,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
654
805
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
655
806
|
extra_headers = {"Accept": "*/*", **(extra_headers or {})}
|
|
656
807
|
return await self._delete(
|
|
657
|
-
|
|
808
|
+
path_template("/auth/connections/{id}", id=id),
|
|
658
809
|
options=make_request_options(
|
|
659
810
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
660
811
|
),
|
|
@@ -690,7 +841,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
690
841
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
691
842
|
extra_headers = {"Accept": "text/event-stream", **(extra_headers or {})}
|
|
692
843
|
return await self._get(
|
|
693
|
-
|
|
844
|
+
path_template("/auth/connections/{id}/events", id=id),
|
|
694
845
|
options=make_request_options(
|
|
695
846
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
696
847
|
),
|
|
@@ -734,7 +885,7 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
734
885
|
if not id:
|
|
735
886
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
736
887
|
return await self._post(
|
|
737
|
-
|
|
888
|
+
path_template("/auth/connections/{id}/login", id=id),
|
|
738
889
|
body=await async_maybe_transform({"proxy": proxy}, connection_login_params.ConnectionLoginParams),
|
|
739
890
|
options=make_request_options(
|
|
740
891
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
@@ -748,7 +899,9 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
748
899
|
*,
|
|
749
900
|
fields: Dict[str, str] | Omit = omit,
|
|
750
901
|
mfa_option_id: str | Omit = omit,
|
|
902
|
+
sign_in_option_id: str | Omit = omit,
|
|
751
903
|
sso_button_selector: str | Omit = omit,
|
|
904
|
+
sso_provider: str | Omit = omit,
|
|
752
905
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
753
906
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
754
907
|
extra_headers: Headers | None = None,
|
|
@@ -764,9 +917,15 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
764
917
|
Args:
|
|
765
918
|
fields: Map of field name to value
|
|
766
919
|
|
|
767
|
-
mfa_option_id:
|
|
920
|
+
mfa_option_id: The MFA method type to select (when mfa_options were returned)
|
|
921
|
+
|
|
922
|
+
sign_in_option_id: The sign-in option ID to select (when sign_in_options were returned)
|
|
768
923
|
|
|
769
|
-
sso_button_selector:
|
|
924
|
+
sso_button_selector: XPath selector for the SSO button to click (ODA). Use sso_provider instead for
|
|
925
|
+
CUA.
|
|
926
|
+
|
|
927
|
+
sso_provider: SSO provider to click, matching the provider field from pending_sso_buttons
|
|
928
|
+
(e.g., "google", "github"). Cannot be used with sso_button_selector.
|
|
770
929
|
|
|
771
930
|
extra_headers: Send extra headers
|
|
772
931
|
|
|
@@ -779,12 +938,14 @@ class AsyncConnectionsResource(AsyncAPIResource):
|
|
|
779
938
|
if not id:
|
|
780
939
|
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
781
940
|
return await self._post(
|
|
782
|
-
|
|
941
|
+
path_template("/auth/connections/{id}/submit", id=id),
|
|
783
942
|
body=await async_maybe_transform(
|
|
784
943
|
{
|
|
785
944
|
"fields": fields,
|
|
786
945
|
"mfa_option_id": mfa_option_id,
|
|
946
|
+
"sign_in_option_id": sign_in_option_id,
|
|
787
947
|
"sso_button_selector": sso_button_selector,
|
|
948
|
+
"sso_provider": sso_provider,
|
|
788
949
|
},
|
|
789
950
|
connection_submit_params.ConnectionSubmitParams,
|
|
790
951
|
),
|
|
@@ -805,6 +966,9 @@ class ConnectionsResourceWithRawResponse:
|
|
|
805
966
|
self.retrieve = to_raw_response_wrapper(
|
|
806
967
|
connections.retrieve,
|
|
807
968
|
)
|
|
969
|
+
self.update = to_raw_response_wrapper(
|
|
970
|
+
connections.update,
|
|
971
|
+
)
|
|
808
972
|
self.list = to_raw_response_wrapper(
|
|
809
973
|
connections.list,
|
|
810
974
|
)
|
|
@@ -832,6 +996,9 @@ class AsyncConnectionsResourceWithRawResponse:
|
|
|
832
996
|
self.retrieve = async_to_raw_response_wrapper(
|
|
833
997
|
connections.retrieve,
|
|
834
998
|
)
|
|
999
|
+
self.update = async_to_raw_response_wrapper(
|
|
1000
|
+
connections.update,
|
|
1001
|
+
)
|
|
835
1002
|
self.list = async_to_raw_response_wrapper(
|
|
836
1003
|
connections.list,
|
|
837
1004
|
)
|
|
@@ -859,6 +1026,9 @@ class ConnectionsResourceWithStreamingResponse:
|
|
|
859
1026
|
self.retrieve = to_streamed_response_wrapper(
|
|
860
1027
|
connections.retrieve,
|
|
861
1028
|
)
|
|
1029
|
+
self.update = to_streamed_response_wrapper(
|
|
1030
|
+
connections.update,
|
|
1031
|
+
)
|
|
862
1032
|
self.list = to_streamed_response_wrapper(
|
|
863
1033
|
connections.list,
|
|
864
1034
|
)
|
|
@@ -886,6 +1056,9 @@ class AsyncConnectionsResourceWithStreamingResponse:
|
|
|
886
1056
|
self.retrieve = async_to_streamed_response_wrapper(
|
|
887
1057
|
connections.retrieve,
|
|
888
1058
|
)
|
|
1059
|
+
self.update = async_to_streamed_response_wrapper(
|
|
1060
|
+
connections.update,
|
|
1061
|
+
)
|
|
889
1062
|
self.list = async_to_streamed_response_wrapper(
|
|
890
1063
|
connections.list,
|
|
891
1064
|
)
|