scalekit-sdk-python 2.23.0__tar.gz → 2.24.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.
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/PKG-INFO +1 -1
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/_version.py +1 -1
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/triggers.py +20 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/triggers.py +115 -32
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/core.py +1 -1
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/resource.py +19 -5
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/triggers.py +56 -16
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/clients/clients_pb2.py +164 -162
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/clients/clients_pb2.pyi +4 -2
- scalekit_sdk_python-2.24.0/scalekit/v1/triggers/triggers_pb2.py +660 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/triggers/triggers_pb2.pyi +32 -14
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit_sdk_python.egg-info/PKG-INFO +1 -1
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_actions.py +11 -14
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_resource.py +54 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_triggers_api.py +234 -0
- scalekit_sdk_python-2.23.0/scalekit/v1/triggers/triggers_pb2.py +0 -642
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/LICENSE +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/README.md +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/buf/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/buf/validate/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/buf/validate/validate_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/buf/validate/validate_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/buf/validate/validate_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/pyproject.toml +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/_convert.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/_proxy_path.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/_resumable_upload.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/actions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/connections/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/connections/errors.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/connections/models.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/connections/service.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/google_adk.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/langchain.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/types/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/types/google_adk_tool.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/frameworks/util.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/custom_provider.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/mcp_config.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/mcp_connection_auth_state.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/mcp_instance.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/create_connected_account_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/create_custom_provider_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/delete_custom_provider_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/list_providers_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/mcp_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/tool_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/update_connected_account_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/requests/update_custom_provider_request.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/create_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/create_custom_provider_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/create_mcp_config_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/create_mcp_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/create_mcp_session_token_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/delete_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/delete_custom_provider_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/delete_mcp_config_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/delete_mcp_instance_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/ensure_mcp_instance_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/execute_tool_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/get_connected_account_auth_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/get_mcp_instance_auth_state_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/get_mcp_instance_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/get_mcp_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_connected_accounts_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_mcp_configs_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_mcp_connected_accounts_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_mcp_instances_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_providers_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/list_tools_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/magic_link_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/update_connected_account_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/update_custom_provider_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/update_mcp_config_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/update_mcp_instance_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/responses/verify_connected_account_user_response.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/tool_input_output.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/tool_mapping.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/trigger_event.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/upload_progress.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/modifier.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/types.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/auth.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/client.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/common/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/common/_webhook_signature.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/common/exceptions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/common/scalekit.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/common/user.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/connected_accounts.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/connection.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/constants/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/constants/user.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/directory.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/domain.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/events.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/frameworks/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/frameworks/django.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/frameworks/fastapi.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/frameworks/flask.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/m2m_client.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/mcp.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/middleware/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/middleware/csrf_state.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/middleware/protocol.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/middleware/session_crypto.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/middleware/session_manager.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/organization.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/passwordless.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/permissions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/providers.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/role.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/sessions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/token.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/tools.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/users.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/utils/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/utils/directory.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_analytics_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_analytics_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_analytics_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_logs_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_logs_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/agentkit_logs/agentkit_logs_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auditlogs/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auditlogs/auditlogs_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auditlogs/auditlogs_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/auth_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/auth_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/auth_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/passwordless_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/totp_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/totp_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/totp_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/webauthn_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/webauthn_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/auth/webauthn_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/billing/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/billing/billing_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/billing/billing_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/billing/billing_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/clients/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/clients/clients_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/commons/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/commons/commons_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/commons/commons_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connected_accounts/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connected_accounts/connected_accounts_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connected_accounts/connected_accounts_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connected_accounts/connected_accounts_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connections/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connections/connections_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connections/connections_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/connections/connections_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/directories/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/directories/directories_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/directories/directories_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/domains/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/domains/domains_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/domains/domains_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/emails/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/emails/emails_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/emails/emails_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/environments/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/environments/environments_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/environments/environments_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/environments/environments_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/errdetails/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/errdetails/errdetails_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/errdetails/errdetails_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/events/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/events/events_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/events/events_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/events/events_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/gateway/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/gateway/gateway_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/gateway/gateway_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/gateway/gateway_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/interceptors/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/interceptors/interceptors_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/interceptors/interceptors_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/interceptors/interceptors_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/keys/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/keys/keys_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/keys/keys_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/keys/keys_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/logstreams/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/logstreams/logstreams_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/logstreams/logstreams_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/logstreams/logstreams_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/mcp/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/mcp/mcp_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/mcp/mcp_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/mcp/mcp_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/members/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/members/members_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/members/members_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/members/members_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/migrations/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/migrations/migrations_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/options/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/options/options_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/options/options_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/options/options_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/organizations/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/organizations/organizations_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/organizations/organizations_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/providers/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/providers/providers_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/providers/providers_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/providers/providers_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/roles/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/roles/roles_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/roles/roles_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/roles/roles_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/secrets/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/secrets/secrets_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/secrets/secrets_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/secrets/secrets_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/sessions/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/sessions/sessions_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/sessions/sessions_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/sessions/sessions_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tokens/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tokens/tokens_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tokens/tokens_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tokens/tokens_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tools/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tools/tools_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tools/tools_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/tools/tools_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/triggers/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/triggers/triggers_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/user_attributes/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/users/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/users/users_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/users/users_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/users/users_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/webhooks/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/workspaces/__init__.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/workspaces/workspaces_pb2.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/workspaces/workspaces_pb2.pyi +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/webauthn.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit_sdk_python.egg-info/SOURCES.txt +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit_sdk_python.egg-info/requires.txt +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/setup.cfg +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/setup.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_actions_list_connected_accounts_pagination.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_actions_request_path.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_actions_response_fields.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_agentkit_connections.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_call_timeout.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_connected_accounts.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_connection.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_directory.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_domain.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_events.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_http_timeout.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_keepalive_channel_options.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_list_connected_accounts_query_and_org_wide.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_login.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_m2m_client.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_mcp.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_mcp_connection_session_token.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_mcp_session_token_access_level.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_mcp_tool_exposure.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_csrf_state.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_django.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_fastapi.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_flask.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_session_crypto.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_middleware_session_manager.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_multi_issuer.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_org_roles.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_organization.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_organization_session_policy.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_organization_slug_logo.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_passwordless.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_permissions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_providers.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_resumable_upload.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_resumable_upload_live.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_role_defaults_dependent.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_roles.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_sessions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_sk819_retry_behavior.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_tokens.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_tools.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_transient_error_no_retry.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_trigger_events.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_triggers_api_live.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_user_roles_permissions.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_users.py +0 -0
- {scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/tests/test_webauthn_credentials.py +0 -0
{scalekit_sdk_python-2.23.0 → scalekit_sdk_python-2.24.0}/scalekit/actions/models/triggers.py
RENAMED
|
@@ -146,6 +146,9 @@ class TriggerSubscribeOutcome(str, Enum):
|
|
|
146
146
|
NOT_FOUND = "NOT_FOUND"
|
|
147
147
|
FAILED = "FAILED"
|
|
148
148
|
"""Could not be created this time; safe to retry."""
|
|
149
|
+
NOT_ATTEMPTED = "NOT_ATTEMPTED"
|
|
150
|
+
"""Not tried: an earlier account stopped the batch or its time ran out. Nothing was
|
|
151
|
+
created for the account; ``reason`` says which, and retrying is safe."""
|
|
149
152
|
|
|
150
153
|
|
|
151
154
|
class TriggerSubscriptionDeleteOutcome(str, Enum):
|
|
@@ -295,6 +298,11 @@ class AvailableTrigger(_TriggerModel):
|
|
|
295
298
|
whole connection.
|
|
296
299
|
requires_signing_secret: The provider signs its events with a secret you set
|
|
297
300
|
with ``set_signing_secret``.
|
|
301
|
+
ingress_per_account: ``True`` when events arrive through one webhook URL per
|
|
302
|
+
connected account instead of one per connection. Create each URL and set
|
|
303
|
+
its secret by passing ``connected_account_id`` to
|
|
304
|
+
``create_ingress_endpoint`` and the signing-secret methods. Always
|
|
305
|
+
``False`` for poll triggers.
|
|
298
306
|
|
|
299
307
|
Example:
|
|
300
308
|
>>> page = client.actions.triggers.list_available("conn_123")
|
|
@@ -320,6 +328,7 @@ class AvailableTrigger(_TriggerModel):
|
|
|
320
328
|
register_hint: str = ""
|
|
321
329
|
secret_hint: str = ""
|
|
322
330
|
provides_bearer_secret: bool = False
|
|
331
|
+
ingress_per_account: bool = False
|
|
323
332
|
|
|
324
333
|
@classmethod
|
|
325
334
|
def from_proto(cls, proto: pb.AvailableTrigger) -> AvailableTrigger:
|
|
@@ -352,6 +361,7 @@ class AvailableTrigger(_TriggerModel):
|
|
|
352
361
|
register_hint=proto.register_hint,
|
|
353
362
|
secret_hint=proto.secret_hint,
|
|
354
363
|
provides_bearer_secret=proto.provides_bearer_secret,
|
|
364
|
+
ingress_per_account=proto.ingress_per_account,
|
|
355
365
|
)
|
|
356
366
|
|
|
357
367
|
|
|
@@ -843,6 +853,12 @@ class TriggerIngressEndpoint(_TriggerModel):
|
|
|
843
853
|
accepted; ``None`` when no rotation is in progress.
|
|
844
854
|
signing_secret_rotation_id: The latest rotation; pass it to
|
|
845
855
|
``confirm_signing_secret_rotation``. ``0`` when none ever started.
|
|
856
|
+
connected_account_id: The connected account this URL delivers to, when
|
|
857
|
+
``scope`` is ``DeliveryScope.ACCOUNT``; ``""`` for the connection's URL.
|
|
858
|
+
scope: ``DeliveryScope.CONNECTION`` for the connection's URL,
|
|
859
|
+
``DeliveryScope.ACCOUNT`` for one connected account's own URL; ``None``
|
|
860
|
+
when the server did not say. A scope this SDK version does not know is a
|
|
861
|
+
plain ``str``.
|
|
846
862
|
|
|
847
863
|
Example:
|
|
848
864
|
>>> endpoint = client.actions.triggers.create_ingress_endpoint("conn_123")
|
|
@@ -857,6 +873,8 @@ class TriggerIngressEndpoint(_TriggerModel):
|
|
|
857
873
|
rotation_in_progress: bool = False
|
|
858
874
|
previous_signing_secret_expires_at: datetime | None = None
|
|
859
875
|
signing_secret_rotation_id: int = 0
|
|
876
|
+
connected_account_id: str = ""
|
|
877
|
+
scope: DeliveryScope | str | None = None
|
|
860
878
|
|
|
861
879
|
@classmethod
|
|
862
880
|
def from_proto(cls, proto: pb.TriggerIngressEndpoint) -> TriggerIngressEndpoint:
|
|
@@ -872,6 +890,8 @@ class TriggerIngressEndpoint(_TriggerModel):
|
|
|
872
890
|
proto, "previous_signing_secret_expires_at"
|
|
873
891
|
),
|
|
874
892
|
signing_secret_rotation_id=proto.signing_secret_rotation_id,
|
|
893
|
+
connected_account_id=proto.connected_account_id,
|
|
894
|
+
scope=enum_from_proto(DeliveryScope, pb.TriggerDeliveryScope, proto.scope),
|
|
875
895
|
)
|
|
876
896
|
|
|
877
897
|
|
|
@@ -10,7 +10,13 @@ from typing import Protocol
|
|
|
10
10
|
|
|
11
11
|
from pydantic import ValidationError
|
|
12
12
|
|
|
13
|
-
from scalekit._convert import
|
|
13
|
+
from scalekit._convert import (
|
|
14
|
+
date_to_str,
|
|
15
|
+
enum_to_proto,
|
|
16
|
+
require,
|
|
17
|
+
str_list,
|
|
18
|
+
timedelta_to_seconds,
|
|
19
|
+
)
|
|
14
20
|
from scalekit.actions.models.trigger_event import TriggerEvent
|
|
15
21
|
from scalekit.actions.models.triggers import (
|
|
16
22
|
BatchCreateTriggerSubscriptionsResponse,
|
|
@@ -68,6 +74,17 @@ class HeadersLike(Protocol):
|
|
|
68
74
|
...
|
|
69
75
|
|
|
70
76
|
|
|
77
|
+
def _account_id(value: str | None) -> str | None:
|
|
78
|
+
"""Pass ``connected_account_id`` through, refusing ``""``.
|
|
79
|
+
|
|
80
|
+
The server reads an empty ID as "not given", so ``""`` would quietly act on the
|
|
81
|
+
connection's own URL instead of failing; ``None`` is the way to leave it out.
|
|
82
|
+
"""
|
|
83
|
+
if value is not None:
|
|
84
|
+
require("connected_account_id", value)
|
|
85
|
+
return value
|
|
86
|
+
|
|
87
|
+
|
|
71
88
|
# Separator a server or proxy puts between repeated header values it joins into one
|
|
72
89
|
# line: "," plus the spaces or tabs after it. Values are not otherwise trimmed, so
|
|
73
90
|
# " 1" stays " 1" (and fails the timestamp check).
|
|
@@ -496,8 +513,9 @@ class ActionTriggers:
|
|
|
496
513
|
"""Subscribe up to 100 connected accounts to a trigger in one call.
|
|
497
514
|
|
|
498
515
|
Not atomic: each account gets its own outcome in ``results`` (``CREATED``,
|
|
499
|
-
``ALREADY_SUBSCRIBED``, ``REFUSED``, ``NOT_FOUND``, ``FAILED
|
|
500
|
-
raise. Safe to call again for the ``FAILED``
|
|
516
|
+
``ALREADY_SUBSCRIBED``, ``REFUSED``, ``NOT_FOUND``, ``FAILED``,
|
|
517
|
+
``NOT_ATTEMPTED``), and those never raise. Safe to call again for the ``FAILED``
|
|
518
|
+
and ``NOT_ATTEMPTED`` ones (nothing was created for them). For a connection-scoped
|
|
501
519
|
trigger, leave ``connected_account_ids`` out.
|
|
502
520
|
|
|
503
521
|
Args:
|
|
@@ -655,54 +673,84 @@ class ActionTriggers:
|
|
|
655
673
|
|
|
656
674
|
# Ingress endpoint and signing secret
|
|
657
675
|
|
|
658
|
-
def get_ingress_endpoint(
|
|
659
|
-
|
|
676
|
+
def get_ingress_endpoint(
|
|
677
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
678
|
+
) -> TriggerIngressEndpoint:
|
|
679
|
+
"""Read the webhook URL a provider sends events to, and its signing-secret state.
|
|
660
680
|
|
|
661
681
|
Args:
|
|
662
682
|
connection_id: The connection (``conn_...``).
|
|
683
|
+
connected_account_id: Act on this connected account's own webhook URL
|
|
684
|
+
(``ca_...``), for a trigger whose ``AvailableTrigger.ingress_per_account``
|
|
685
|
+
is ``True``. Leave it out to act on the connection's URL. The server
|
|
686
|
+
answers an account that is not on this connection as not found.
|
|
663
687
|
|
|
664
688
|
Returns:
|
|
665
689
|
The URL and the state of its signing secret (never the secret itself).
|
|
666
690
|
|
|
667
691
|
Raises:
|
|
668
|
-
ValueError: ``connection_id`` is empty.
|
|
692
|
+
ValueError: ``connection_id`` or ``connected_account_id`` is empty.
|
|
693
|
+
ScalekitBadRequestException: ``connected_account_id`` is malformed.
|
|
669
694
|
ScalekitNotFoundException: No webhook URL yet
|
|
670
695
|
(``TRIGGER_INGRESS_ENDPOINT_NOT_CREATED``; call
|
|
671
|
-
``create_ingress_endpoint``), or unknown connection
|
|
672
|
-
(``RESOURCE_NOT_FOUND``).
|
|
696
|
+
``create_ingress_endpoint``), or unknown connection or connected
|
|
697
|
+
account (``RESOURCE_NOT_FOUND``).
|
|
673
698
|
|
|
674
699
|
Example:
|
|
675
700
|
>>> endpoint = client.actions.triggers.get_ingress_endpoint("conn_123")
|
|
676
701
|
>>> endpoint.signing_secret_configured
|
|
702
|
+
>>> account_endpoint = client.actions.triggers.get_ingress_endpoint(
|
|
703
|
+
... "conn_123", connected_account_id="ca_456")
|
|
704
|
+
>>> account_endpoint.scope
|
|
677
705
|
"""
|
|
678
|
-
response = self._client().get_trigger_ingress_endpoint(
|
|
706
|
+
response = self._client().get_trigger_ingress_endpoint(
|
|
707
|
+
connection_id, connected_account_id=_account_id(connected_account_id)
|
|
708
|
+
)
|
|
679
709
|
return TriggerIngressEndpoint.from_proto(response[0])
|
|
680
710
|
|
|
681
|
-
def create_ingress_endpoint(
|
|
682
|
-
|
|
711
|
+
def create_ingress_endpoint(
|
|
712
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
713
|
+
) -> TriggerIngressEndpoint:
|
|
714
|
+
"""Create a webhook URL, or return the existing one.
|
|
683
715
|
|
|
684
716
|
Args:
|
|
685
717
|
connection_id: The connection (``conn_...``).
|
|
718
|
+
connected_account_id: Act on this connected account's own webhook URL
|
|
719
|
+
(``ca_...``), for a trigger whose ``AvailableTrigger.ingress_per_account``
|
|
720
|
+
is ``True``. Leave it out to act on the connection's URL. The server
|
|
721
|
+
answers an account that is not on this connection as not found.
|
|
686
722
|
|
|
687
723
|
Returns:
|
|
688
724
|
The URL to paste into the provider's app configuration.
|
|
689
725
|
|
|
690
726
|
Raises:
|
|
691
|
-
ValueError: ``connection_id`` is empty.
|
|
727
|
+
ValueError: ``connection_id`` or ``connected_account_id`` is empty.
|
|
692
728
|
ScalekitBadRequestException: The connection has no webhook trigger
|
|
693
|
-
(``TRIGGER_INGRESS_NOT_APPLICABLE``),
|
|
694
|
-
unavailable (``TRIGGER_INGRESS_DEFINITIONS_UNAVAILABLE``)
|
|
695
|
-
|
|
729
|
+
(``TRIGGER_INGRESS_NOT_APPLICABLE``), its trigger definitions are
|
|
730
|
+
unavailable (``TRIGGER_INGRESS_DEFINITIONS_UNAVAILABLE``), or the
|
|
731
|
+
request does not fit how the connection's webhook triggers are
|
|
732
|
+
delivered (``TRIGGER_INGRESS_SCOPE_MISMATCH``), ``connected_account_id``
|
|
733
|
+
is malformed, or that account is inactive or only has a pending
|
|
734
|
+
consent.
|
|
735
|
+
ScalekitNotFoundException: Unknown connection or connected account.
|
|
696
736
|
|
|
697
737
|
Example:
|
|
698
738
|
>>> endpoint = client.actions.triggers.create_ingress_endpoint("conn_123")
|
|
699
739
|
>>> print("paste into the provider:", endpoint.url)
|
|
740
|
+
>>> account_endpoint = client.actions.triggers.create_ingress_endpoint(
|
|
741
|
+
... "conn_123", connected_account_id="ca_456")
|
|
700
742
|
"""
|
|
701
|
-
response = self._client().create_trigger_ingress_endpoint(
|
|
743
|
+
response = self._client().create_trigger_ingress_endpoint(
|
|
744
|
+
connection_id, connected_account_id=_account_id(connected_account_id)
|
|
745
|
+
)
|
|
702
746
|
return TriggerIngressEndpoint.from_proto(response[0])
|
|
703
747
|
|
|
704
748
|
def set_signing_secret(
|
|
705
|
-
self,
|
|
749
|
+
self,
|
|
750
|
+
connection_id: str,
|
|
751
|
+
*,
|
|
752
|
+
signing_secret: str,
|
|
753
|
+
connected_account_id: str | None = None,
|
|
706
754
|
) -> TriggerIngressEndpoint:
|
|
707
755
|
"""Store the signing secret the provider signs its events with.
|
|
708
756
|
|
|
@@ -715,31 +763,47 @@ class ActionTriggers:
|
|
|
715
763
|
connection_id: The connection (``conn_...``).
|
|
716
764
|
signing_secret: The secret from the provider's app configuration (8-4096
|
|
717
765
|
characters; surrounding whitespace is trimmed by the server).
|
|
766
|
+
connected_account_id: Act on this connected account's own webhook URL
|
|
767
|
+
(``ca_...``), for a trigger whose ``AvailableTrigger.ingress_per_account``
|
|
768
|
+
is ``True``. Leave it out to act on the connection's URL. The server
|
|
769
|
+
answers an account that is not on this connection as not found.
|
|
718
770
|
|
|
719
771
|
Returns:
|
|
720
772
|
The endpoint, with ``masked_signing_secret`` and rotation state.
|
|
721
773
|
|
|
722
774
|
Raises:
|
|
723
|
-
ValueError: ``connection_id`` is empty.
|
|
724
|
-
ScalekitBadRequestException:
|
|
775
|
+
ValueError: ``connection_id`` or ``connected_account_id`` is empty.
|
|
776
|
+
ScalekitBadRequestException: ``connected_account_id`` is malformed, the
|
|
777
|
+
secret is too short, or this provider uses
|
|
725
778
|
a secret Scalekit generates (``TRIGGER_SIGNING_SECRET_GENERATED_ONLY``;
|
|
726
779
|
call ``generate_signing_secret``).
|
|
727
780
|
ScalekitConflictException: A rotation is already in progress.
|
|
728
781
|
ScalekitNotFoundException: No webhook URL yet
|
|
729
|
-
(``TRIGGER_INGRESS_ENDPOINT_NOT_CREATED``)
|
|
782
|
+
(``TRIGGER_INGRESS_ENDPOINT_NOT_CREATED``), or unknown connection or
|
|
783
|
+
connected account.
|
|
730
784
|
|
|
731
785
|
Example:
|
|
732
786
|
>>> endpoint = client.actions.triggers.set_signing_secret(
|
|
733
787
|
... "conn_123", signing_secret=os.environ["PROVIDER_SIGNING_SECRET"])
|
|
734
788
|
>>> endpoint.rotation_in_progress
|
|
789
|
+
>>> client.actions.triggers.set_signing_secret(
|
|
790
|
+
... "conn_123",
|
|
791
|
+
... signing_secret=os.environ["PROVIDER_SIGNING_SECRET"],
|
|
792
|
+
... connected_account_id="ca_456")
|
|
735
793
|
"""
|
|
736
794
|
response = self._client().set_trigger_signing_secret(
|
|
737
|
-
connection_id,
|
|
795
|
+
connection_id,
|
|
796
|
+
signing_secret=signing_secret,
|
|
797
|
+
connected_account_id=_account_id(connected_account_id),
|
|
738
798
|
)
|
|
739
799
|
return TriggerIngressEndpoint.from_proto(response[0])
|
|
740
800
|
|
|
741
801
|
def confirm_signing_secret_rotation(
|
|
742
|
-
self,
|
|
802
|
+
self,
|
|
803
|
+
connection_id: str,
|
|
804
|
+
*,
|
|
805
|
+
signing_secret_rotation_id: int | None = None,
|
|
806
|
+
connected_account_id: str | None = None,
|
|
743
807
|
) -> TriggerIngressEndpoint:
|
|
744
808
|
"""Finish a signing-secret rotation so only the new secret is accepted.
|
|
745
809
|
|
|
@@ -748,15 +812,20 @@ class ActionTriggers:
|
|
|
748
812
|
signing_secret_rotation_id: ``TriggerIngressEndpoint.signing_secret_rotation_id``
|
|
749
813
|
of the rotation to confirm. Required while a rotation is in progress;
|
|
750
814
|
ignored when none is.
|
|
815
|
+
connected_account_id: Act on this connected account's own webhook URL
|
|
816
|
+
(``ca_...``), for a trigger whose ``AvailableTrigger.ingress_per_account``
|
|
817
|
+
is ``True``. Leave it out to act on the connection's URL. The server
|
|
818
|
+
answers an account that is not on this connection as not found.
|
|
751
819
|
|
|
752
820
|
Returns:
|
|
753
821
|
The endpoint after the confirmation.
|
|
754
822
|
|
|
755
823
|
Raises:
|
|
756
|
-
ValueError: ``connection_id`` is empty.
|
|
757
|
-
ScalekitBadRequestException:
|
|
758
|
-
rotation.
|
|
759
|
-
ScalekitNotFoundException: No webhook URL yet
|
|
824
|
+
ValueError: ``connection_id`` or ``connected_account_id`` is empty.
|
|
825
|
+
ScalekitBadRequestException: ``connected_account_id`` is malformed, or the
|
|
826
|
+
rotation ID is missing or names an older rotation.
|
|
827
|
+
ScalekitNotFoundException: No webhook URL yet, or unknown connection or
|
|
828
|
+
connected account.
|
|
760
829
|
|
|
761
830
|
Example:
|
|
762
831
|
>>> endpoint = client.actions.triggers.get_ingress_endpoint("conn_123")
|
|
@@ -764,11 +833,15 @@ class ActionTriggers:
|
|
|
764
833
|
... "conn_123", signing_secret_rotation_id=endpoint.signing_secret_rotation_id)
|
|
765
834
|
"""
|
|
766
835
|
response = self._client().confirm_trigger_signing_secret_rotation(
|
|
767
|
-
connection_id,
|
|
836
|
+
connection_id,
|
|
837
|
+
signing_secret_rotation_id=signing_secret_rotation_id,
|
|
838
|
+
connected_account_id=_account_id(connected_account_id),
|
|
768
839
|
)
|
|
769
840
|
return TriggerIngressEndpoint.from_proto(response[0])
|
|
770
841
|
|
|
771
|
-
def generate_signing_secret(
|
|
842
|
+
def generate_signing_secret(
|
|
843
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
844
|
+
) -> GenerateTriggerSigningSecretResponse:
|
|
772
845
|
"""Generate a signing secret, for providers that use one Scalekit creates.
|
|
773
846
|
|
|
774
847
|
The secret is returned in plaintext only in this response; it is left out of
|
|
@@ -776,22 +849,32 @@ class ActionTriggers:
|
|
|
776
849
|
|
|
777
850
|
Args:
|
|
778
851
|
connection_id: The connection (``conn_...``).
|
|
852
|
+
connected_account_id: Act on this connected account's own webhook URL
|
|
853
|
+
(``ca_...``), for a trigger whose ``AvailableTrigger.ingress_per_account``
|
|
854
|
+
is ``True``. Leave it out to act on the connection's URL. The server
|
|
855
|
+
answers an account that is not on this connection as not found.
|
|
779
856
|
|
|
780
857
|
Returns:
|
|
781
858
|
The endpoint, the secret and the URL that includes it.
|
|
782
859
|
|
|
783
860
|
Raises:
|
|
784
|
-
ValueError: ``connection_id`` is empty.
|
|
785
|
-
ScalekitBadRequestException:
|
|
861
|
+
ValueError: ``connection_id`` or ``connected_account_id`` is empty.
|
|
862
|
+
ScalekitBadRequestException: ``connected_account_id`` is malformed, or the
|
|
863
|
+
provider signs its own events
|
|
786
864
|
(``TRIGGER_SIGNING_SECRET_NOT_GENERATABLE``; use ``set_signing_secret``).
|
|
787
865
|
ScalekitConflictException: A rotation is in progress.
|
|
788
|
-
ScalekitNotFoundException: No webhook URL yet
|
|
866
|
+
ScalekitNotFoundException: No webhook URL yet, or unknown connection or
|
|
867
|
+
connected account.
|
|
789
868
|
|
|
790
869
|
Example:
|
|
791
870
|
>>> generated = client.actions.triggers.generate_signing_secret("conn_123")
|
|
792
871
|
>>> save_to_provider(generated.url_with_secret)
|
|
872
|
+
>>> client.actions.triggers.generate_signing_secret(
|
|
873
|
+
... "conn_123", connected_account_id="ca_456")
|
|
793
874
|
"""
|
|
794
|
-
response = self._client().generate_trigger_signing_secret(
|
|
875
|
+
response = self._client().generate_trigger_signing_secret(
|
|
876
|
+
connection_id, connected_account_id=_account_id(connected_account_id)
|
|
877
|
+
)
|
|
795
878
|
return GenerateTriggerSigningSecretResponse.from_proto(response[0])
|
|
796
879
|
|
|
797
880
|
# Deliveries
|
|
@@ -187,7 +187,7 @@ class CoreClient:
|
|
|
187
187
|
|
|
188
188
|
sdk_version = f"Scalekit-Python/{_sdk_version}"
|
|
189
189
|
# YYYYMMDD
|
|
190
|
-
api_version = "
|
|
190
|
+
api_version = "20261106"
|
|
191
191
|
user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
|
|
192
192
|
|
|
193
193
|
def __init__(
|
|
@@ -369,6 +369,7 @@ class ResourceClient:
|
|
|
369
369
|
page_size: Optional[int] = None,
|
|
370
370
|
page_token: Optional[str] = None,
|
|
371
371
|
user_ids: Optional[List[str]] = None,
|
|
372
|
+
consent_ids: Optional[List[str]] = None,
|
|
372
373
|
) -> ListResourceUserConsentsResponse:
|
|
373
374
|
"""
|
|
374
375
|
Method to list the end-user consents granted against a resource
|
|
@@ -377,9 +378,12 @@ class ResourceClient:
|
|
|
377
378
|
scopes and granted_at. The response also carries total_size plus
|
|
378
379
|
next_page_token / prev_page_token cursors.
|
|
379
380
|
|
|
380
|
-
Pass
|
|
381
|
-
case-sensitively. Pass search for a
|
|
382
|
-
When
|
|
381
|
+
Pass consent_ids to fetch specific consents by ID. Pass user_ids to match
|
|
382
|
+
specific external user IDs exactly and case-sensitively. Pass search for a
|
|
383
|
+
case-insensitive substring match. When several are given, the priority is
|
|
384
|
+
consent_ids, then user_ids, then search; the lower ones are ignored. Blank-only
|
|
385
|
+
consent_ids are ignored. An older server ignores consent_ids, so confirm each
|
|
386
|
+
returned id is one you passed before revoking.
|
|
383
387
|
|
|
384
388
|
:param resource_id : Resource id to list consents for (format: res_xxxxx)
|
|
385
389
|
:type : ``` str ```
|
|
@@ -389,7 +393,11 @@ class ResourceClient:
|
|
|
389
393
|
:type : ``` int ```
|
|
390
394
|
:param page_token : Page token for pagination
|
|
391
395
|
:type : ``` str ```
|
|
392
|
-
:param user_ids : Exact match on external user IDs (max 25)
|
|
396
|
+
:param user_ids : Exact match on external user IDs (max 25). Ignored when consent_ids is set
|
|
397
|
+
:type : ``` list ```
|
|
398
|
+
:param consent_ids : Exact match on consent IDs (format: usrcnst_xxxxx), max 25 distinct.
|
|
399
|
+
Blank-only values are ignored. IDs that do not exist or belong to another
|
|
400
|
+
resource are omitted from the result
|
|
393
401
|
:type : ``` list ```
|
|
394
402
|
:returns:
|
|
395
403
|
List Resource User Consents Response
|
|
@@ -397,6 +405,12 @@ class ResourceClient:
|
|
|
397
405
|
if not resource_id:
|
|
398
406
|
raise ValueError("resource_id is required")
|
|
399
407
|
|
|
408
|
+
# The filter overrides search server-side, so attach it only when IDs were supplied.
|
|
409
|
+
consent_filter = (
|
|
410
|
+
ResourceUserConsentFilter(external_user_id=user_ids, consent_id=consent_ids)
|
|
411
|
+
if user_ids or consent_ids else None
|
|
412
|
+
)
|
|
413
|
+
|
|
400
414
|
return self.core_client.grpc_exec(
|
|
401
415
|
self.client_service.ListResourceUserConsents.with_call,
|
|
402
416
|
ListResourceUserConsentsRequest(
|
|
@@ -404,7 +418,7 @@ class ResourceClient:
|
|
|
404
418
|
search=search,
|
|
405
419
|
page_size=page_size,
|
|
406
420
|
page_token=page_token,
|
|
407
|
-
filter=
|
|
421
|
+
filter=consent_filter,
|
|
408
422
|
)
|
|
409
423
|
)
|
|
410
424
|
|
|
@@ -227,59 +227,99 @@ class TriggersClient:
|
|
|
227
227
|
# Ingress endpoint and signing secret
|
|
228
228
|
|
|
229
229
|
def get_trigger_ingress_endpoint(
|
|
230
|
-
self, connection_id: str
|
|
230
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
231
231
|
) -> tuple[pb.TriggerIngressEndpoint, grpc.Call]:
|
|
232
|
-
"""Read a
|
|
232
|
+
"""Read a webhook URL and signing-secret state.
|
|
233
|
+
|
|
234
|
+
Reads the connection's URL, or one connected account's own URL when
|
|
235
|
+
``connected_account_id`` is given. The ID is sent as given: the server treats
|
|
236
|
+
``""`` as omitted, and validates the rest.
|
|
237
|
+
"""
|
|
233
238
|
require("connection_id", connection_id)
|
|
239
|
+
request = pb.GetTriggerIngressEndpointRequest(connection_id=connection_id)
|
|
240
|
+
if connected_account_id is not None:
|
|
241
|
+
request.connected_account_id = connected_account_id
|
|
234
242
|
return self.core_client.grpc_exec(
|
|
235
243
|
self.trigger_service.GetTriggerIngressEndpoint.with_call,
|
|
236
|
-
|
|
244
|
+
request,
|
|
237
245
|
)
|
|
238
246
|
|
|
239
247
|
def create_trigger_ingress_endpoint(
|
|
240
|
-
self, connection_id: str
|
|
248
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
241
249
|
) -> tuple[pb.TriggerIngressEndpoint, grpc.Call]:
|
|
242
|
-
"""Create a
|
|
250
|
+
"""Create a webhook URL, or return the existing one.
|
|
251
|
+
|
|
252
|
+
Creates the connection's URL, or one connected account's own URL when
|
|
253
|
+
``connected_account_id`` is given.
|
|
254
|
+
"""
|
|
243
255
|
require("connection_id", connection_id)
|
|
256
|
+
request = pb.CreateTriggerIngressEndpointRequest(connection_id=connection_id)
|
|
257
|
+
if connected_account_id is not None:
|
|
258
|
+
request.connected_account_id = connected_account_id
|
|
244
259
|
return self.core_client.grpc_exec(
|
|
245
260
|
self.trigger_service.CreateTriggerIngressEndpoint.with_call,
|
|
246
|
-
|
|
261
|
+
request,
|
|
247
262
|
)
|
|
248
263
|
|
|
249
264
|
def set_trigger_signing_secret(
|
|
250
|
-
self,
|
|
265
|
+
self,
|
|
266
|
+
connection_id: str,
|
|
267
|
+
*,
|
|
268
|
+
signing_secret: str,
|
|
269
|
+
connected_account_id: str | None = None,
|
|
251
270
|
) -> tuple[pb.TriggerIngressEndpoint, grpc.Call]:
|
|
252
|
-
"""Store the provider's signing secret, or start a rotation. Not retried.
|
|
271
|
+
"""Store the provider's signing secret, or start a rotation. Not retried.
|
|
272
|
+
|
|
273
|
+
Acts on one connected account's URL when ``connected_account_id`` is given.
|
|
274
|
+
"""
|
|
253
275
|
require("connection_id", connection_id)
|
|
276
|
+
request = pb.SetTriggerSigningSecretRequest(
|
|
277
|
+
connection_id=connection_id, signing_secret=signing_secret
|
|
278
|
+
)
|
|
279
|
+
if connected_account_id is not None:
|
|
280
|
+
request.connected_account_id = connected_account_id
|
|
254
281
|
return self.core_client.grpc_exec(
|
|
255
282
|
self.trigger_service.SetTriggerSigningSecret.with_call,
|
|
256
|
-
|
|
257
|
-
connection_id=connection_id, signing_secret=signing_secret
|
|
258
|
-
),
|
|
283
|
+
request,
|
|
259
284
|
retry_on_unavailable=False,
|
|
260
285
|
)
|
|
261
286
|
|
|
262
287
|
def confirm_trigger_signing_secret_rotation(
|
|
263
|
-
self,
|
|
288
|
+
self,
|
|
289
|
+
connection_id: str,
|
|
290
|
+
*,
|
|
291
|
+
signing_secret_rotation_id: int | None = None,
|
|
292
|
+
connected_account_id: str | None = None,
|
|
264
293
|
) -> tuple[pb.TriggerIngressEndpoint, grpc.Call]:
|
|
265
|
-
"""Confirm a signing-secret rotation so the previous secret stops being accepted.
|
|
294
|
+
"""Confirm a signing-secret rotation so the previous secret stops being accepted.
|
|
295
|
+
|
|
296
|
+
Acts on one connected account's URL when ``connected_account_id`` is given.
|
|
297
|
+
"""
|
|
266
298
|
require("connection_id", connection_id)
|
|
267
299
|
request = pb.ConfirmTriggerSigningSecretRotationRequest(connection_id=connection_id)
|
|
268
300
|
if signing_secret_rotation_id is not None:
|
|
269
301
|
request.signing_secret_rotation_id = signing_secret_rotation_id
|
|
302
|
+
if connected_account_id is not None:
|
|
303
|
+
request.connected_account_id = connected_account_id
|
|
270
304
|
return self.core_client.grpc_exec(
|
|
271
305
|
self.trigger_service.ConfirmTriggerSigningSecretRotation.with_call,
|
|
272
306
|
request,
|
|
273
307
|
)
|
|
274
308
|
|
|
275
309
|
def generate_trigger_signing_secret(
|
|
276
|
-
self, connection_id: str
|
|
310
|
+
self, connection_id: str, *, connected_account_id: str | None = None
|
|
277
311
|
) -> tuple[pb.GenerateTriggerSigningSecretResponse, grpc.Call]:
|
|
278
|
-
"""Generate a signing secret for providers that use one Scalekit creates. Not retried.
|
|
312
|
+
"""Generate a signing secret for providers that use one Scalekit creates. Not retried.
|
|
313
|
+
|
|
314
|
+
Acts on one connected account's URL when ``connected_account_id`` is given.
|
|
315
|
+
"""
|
|
279
316
|
require("connection_id", connection_id)
|
|
317
|
+
request = pb.GenerateTriggerSigningSecretRequest(connection_id=connection_id)
|
|
318
|
+
if connected_account_id is not None:
|
|
319
|
+
request.connected_account_id = connected_account_id
|
|
280
320
|
return self.core_client.grpc_exec(
|
|
281
321
|
self.trigger_service.GenerateTriggerSigningSecret.with_call,
|
|
282
|
-
|
|
322
|
+
request,
|
|
283
323
|
retry_on_unavailable=False,
|
|
284
324
|
)
|
|
285
325
|
|