scalekit-sdk-python 2.4.13__tar.gz → 2.4.15__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.
Files changed (217) hide show
  1. {scalekit_sdk_python-2.4.13/scalekit_sdk_python.egg-info → scalekit_sdk_python-2.4.15}/PKG-INFO +6 -6
  2. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/client.py +12 -13
  3. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/core.py +5 -5
  4. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/auth_pb2.py +33 -33
  5. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/auth_pb2.pyi +2 -2
  6. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/auth_pb2_grpc.py +6 -6
  7. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/passwordless_pb2.py +23 -23
  8. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/clients/clients_pb2.py +181 -173
  9. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/clients/clients_pb2.pyi +16 -8
  10. scalekit_sdk_python-2.4.15/scalekit/v1/commons/commons_pb2.py +138 -0
  11. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/commons/commons_pb2.pyi +28 -4
  12. scalekit_sdk_python-2.4.15/scalekit/v1/connected_accounts/connected_accounts_pb2.py +261 -0
  13. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/connected_accounts/connected_accounts_pb2_grpc.py +13 -7
  14. scalekit_sdk_python-2.4.15/scalekit/v1/connections/connections_pb2.py +655 -0
  15. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/connections/connections_pb2.pyi +26 -36
  16. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/connections/connections_pb2_grpc.py +0 -33
  17. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/directories/directories_pb2.py +8 -8
  18. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/events/events_pb2.py +4 -4
  19. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/events/events_pb2.pyi +2 -0
  20. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/interceptors/interceptors_pb2.py +59 -59
  21. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/interceptors/interceptors_pb2.pyi +2 -0
  22. scalekit_sdk_python-2.4.15/scalekit/v1/members/members_pb2.py +114 -0
  23. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/members/members_pb2.pyi +5 -2
  24. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/organizations/organizations_pb2.py +11 -11
  25. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/roles/roles_pb2.py +7 -7
  26. scalekit_sdk_python-2.4.15/scalekit/v1/tokens/tokens_pb2.py +172 -0
  27. scalekit_sdk_python-2.4.15/scalekit/v1/tokens/tokens_pb2.pyi +177 -0
  28. scalekit_sdk_python-2.4.15/scalekit/v1/tokens/tokens_pb2_grpc.py +246 -0
  29. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/tools/tools_pb2.py +29 -29
  30. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/tools/tools_pb2_grpc.py +2 -1
  31. scalekit_sdk_python-2.4.15/scalekit/v1/users/users_pb2.py +443 -0
  32. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/users/users_pb2.pyi +4 -4
  33. scalekit_sdk_python-2.4.15/scalekit/v1/workspaces/__init__.py +0 -0
  34. scalekit_sdk_python-2.4.15/scalekit/v1/workspaces/workspaces_pb2.py +214 -0
  35. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/workspaces/workspaces_pb2.pyi +73 -28
  36. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +66 -2
  37. scalekit_sdk_python-2.4.15/scalekit/webauthn.py +85 -0
  38. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15/scalekit_sdk_python.egg-info}/PKG-INFO +6 -6
  39. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit_sdk_python.egg-info/SOURCES.txt +7 -1
  40. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit_sdk_python.egg-info/requires.txt +5 -5
  41. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/setup.py +6 -6
  42. scalekit_sdk_python-2.4.15/tests/test_webauthn_credentials.py +148 -0
  43. scalekit_sdk_python-2.4.13/scalekit/v1/commons/commons_pb2.py +0 -116
  44. scalekit_sdk_python-2.4.13/scalekit/v1/connected_accounts/connected_accounts_pb2.py +0 -209
  45. scalekit_sdk_python-2.4.13/scalekit/v1/connections/connections_pb2.py +0 -661
  46. scalekit_sdk_python-2.4.13/scalekit/v1/members/members_pb2.py +0 -111
  47. scalekit_sdk_python-2.4.13/scalekit/v1/users/users_pb2.py +0 -443
  48. scalekit_sdk_python-2.4.13/scalekit/v1/workspaces/workspaces_pb2.py +0 -196
  49. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/LICENSE +0 -0
  50. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/README.md +0 -0
  51. {scalekit_sdk_python-2.4.13/scalekit/v1/workspaces → scalekit_sdk_python-2.4.15/buf}/__init__.py +0 -0
  52. {scalekit_sdk_python-2.4.13/scalekit/v1/webhooks → scalekit_sdk_python-2.4.15/buf/validate}/__init__.py +0 -0
  53. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/expression_pb2.py +0 -0
  54. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/expression_pb2.pyi +0 -0
  55. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/expression_pb2_grpc.py +0 -0
  56. {scalekit_sdk_python-2.4.13/scalekit/v1/users → scalekit_sdk_python-2.4.15/buf/validate/priv}/__init__.py +0 -0
  57. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/priv/private_pb2.py +0 -0
  58. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/priv/private_pb2.pyi +0 -0
  59. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/priv/private_pb2_grpc.py +0 -0
  60. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/validate_pb2.py +0 -0
  61. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/validate_pb2.pyi +0 -0
  62. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/buf/validate/validate_pb2_grpc.py +0 -0
  63. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/__init__.py +0 -0
  64. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/__init__.py +0 -0
  65. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/actions.py +0 -0
  66. {scalekit_sdk_python-2.4.13/scalekit/v1/user_attributes → scalekit_sdk_python-2.4.15/scalekit/actions/frameworks}/__init__.py +0 -0
  67. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/frameworks/google_adk.py +0 -0
  68. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/frameworks/langchain.py +0 -0
  69. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/frameworks/types/__init__.py +0 -0
  70. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/frameworks/types/google_adk_tool.py +0 -0
  71. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/frameworks/util.py +0 -0
  72. {scalekit_sdk_python-2.4.13/scalekit/v1/tools → scalekit_sdk_python-2.4.15/scalekit/actions/models}/__init__.py +0 -0
  73. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/mcp_config.py +0 -0
  74. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/mcp_instance.py +0 -0
  75. {scalekit_sdk_python-2.4.13/scalekit/v1/sessions → scalekit_sdk_python-2.4.15/scalekit/actions/models/requests}/__init__.py +0 -0
  76. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/requests/create_connected_account_request.py +0 -0
  77. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/requests/mcp_request.py +0 -0
  78. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/requests/tool_request.py +0 -0
  79. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/requests/update_connected_account_request.py +0 -0
  80. {scalekit_sdk_python-2.4.13/scalekit/v1/secrets → scalekit_sdk_python-2.4.15/scalekit/actions/models/responses}/__init__.py +0 -0
  81. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/create_connected_account_response.py +0 -0
  82. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/create_mcp_config_response.py +0 -0
  83. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/create_mcp_response.py +0 -0
  84. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/delete_connected_account_response.py +0 -0
  85. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/delete_mcp_config_response.py +0 -0
  86. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/delete_mcp_instance_response.py +0 -0
  87. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/ensure_mcp_instance_response.py +0 -0
  88. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/execute_tool_response.py +0 -0
  89. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/get_connected_account_auth_response.py +0 -0
  90. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/get_mcp_instance_auth_state_response.py +0 -0
  91. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/get_mcp_instance_response.py +0 -0
  92. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/get_mcp_response.py +0 -0
  93. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/list_connected_accounts_response.py +0 -0
  94. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/list_mcp_configs_response.py +0 -0
  95. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/list_mcp_instances_response.py +0 -0
  96. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/magic_link_response.py +0 -0
  97. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/update_connected_account_response.py +0 -0
  98. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/update_mcp_config_response.py +0 -0
  99. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/responses/update_mcp_instance_response.py +0 -0
  100. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/tool_input_output.py +0 -0
  101. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/models/tool_mapping.py +0 -0
  102. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/modifier.py +0 -0
  103. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/actions/types.py +0 -0
  104. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/auth.py +0 -0
  105. {scalekit_sdk_python-2.4.13/scalekit/v1/roles → scalekit_sdk_python-2.4.15/scalekit/common}/__init__.py +0 -0
  106. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/common/exceptions.py +0 -0
  107. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/common/scalekit.py +0 -0
  108. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/common/user.py +0 -0
  109. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/connected_accounts.py +0 -0
  110. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/connection.py +0 -0
  111. {scalekit_sdk_python-2.4.13/scalekit/v1/providers → scalekit_sdk_python-2.4.15/scalekit/constants}/__init__.py +0 -0
  112. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/constants/user.py +0 -0
  113. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/directory.py +0 -0
  114. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/domain.py +0 -0
  115. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/m2m_client.py +0 -0
  116. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/mcp.py +0 -0
  117. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/organization.py +0 -0
  118. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/passwordless.py +0 -0
  119. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/permissions.py +0 -0
  120. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/role.py +0 -0
  121. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/sessions.py +0 -0
  122. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/tools.py +0 -0
  123. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/users.py +0 -0
  124. {scalekit_sdk_python-2.4.13/scalekit/v1/organizations → scalekit_sdk_python-2.4.15/scalekit/utils}/__init__.py +0 -0
  125. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/utils/directory.py +0 -0
  126. {scalekit_sdk_python-2.4.13/scalekit/v1/options → scalekit_sdk_python-2.4.15/scalekit/v1}/__init__.py +0 -0
  127. {scalekit_sdk_python-2.4.13/scalekit/v1/migrations → scalekit_sdk_python-2.4.15/scalekit/v1/auditlogs}/__init__.py +0 -0
  128. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auditlogs/auditlogs_pb2.py +0 -0
  129. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auditlogs/auditlogs_pb2.pyi +0 -0
  130. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +0 -0
  131. {scalekit_sdk_python-2.4.13/scalekit/v1/members → scalekit_sdk_python-2.4.15/scalekit/v1/auth}/__init__.py +0 -0
  132. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
  133. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
  134. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/totp_pb2.py +0 -0
  135. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/totp_pb2.pyi +0 -0
  136. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/totp_pb2_grpc.py +0 -0
  137. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/webauthn_pb2.py +0 -0
  138. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/webauthn_pb2.pyi +0 -0
  139. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/auth/webauthn_pb2_grpc.py +0 -0
  140. {scalekit_sdk_python-2.4.13/scalekit/v1/mcp → scalekit_sdk_python-2.4.15/scalekit/v1/clients}/__init__.py +0 -0
  141. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/clients/clients_pb2_grpc.py +0 -0
  142. {scalekit_sdk_python-2.4.13/scalekit/v1/interceptors → scalekit_sdk_python-2.4.15/scalekit/v1/commons}/__init__.py +0 -0
  143. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
  144. {scalekit_sdk_python-2.4.13/scalekit/v1/events → scalekit_sdk_python-2.4.15/scalekit/v1/connected_accounts}/__init__.py +0 -0
  145. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/connected_accounts/connected_accounts_pb2.pyi +0 -0
  146. {scalekit_sdk_python-2.4.13/scalekit/v1/errdetails → scalekit_sdk_python-2.4.15/scalekit/v1/connections}/__init__.py +0 -0
  147. {scalekit_sdk_python-2.4.13/scalekit/v1/environments → scalekit_sdk_python-2.4.15/scalekit/v1/directories}/__init__.py +0 -0
  148. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/directories/directories_pb2.pyi +0 -0
  149. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
  150. {scalekit_sdk_python-2.4.13/scalekit/v1/emails → scalekit_sdk_python-2.4.15/scalekit/v1/domains}/__init__.py +0 -0
  151. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/domains/domains_pb2.py +0 -0
  152. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/domains/domains_pb2.pyi +0 -0
  153. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
  154. {scalekit_sdk_python-2.4.13/scalekit/v1/domains → scalekit_sdk_python-2.4.15/scalekit/v1/emails}/__init__.py +0 -0
  155. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/emails/emails_pb2.py +0 -0
  156. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/emails/emails_pb2.pyi +0 -0
  157. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
  158. {scalekit_sdk_python-2.4.13/scalekit/v1/directories → scalekit_sdk_python-2.4.15/scalekit/v1/environments}/__init__.py +0 -0
  159. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/environments/environments_pb2.py +0 -0
  160. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/environments/environments_pb2.pyi +0 -0
  161. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/environments/environments_pb2_grpc.py +0 -0
  162. {scalekit_sdk_python-2.4.13/scalekit/v1/connections → scalekit_sdk_python-2.4.15/scalekit/v1/errdetails}/__init__.py +0 -0
  163. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/errdetails/errdetails_pb2.py +0 -0
  164. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/errdetails/errdetails_pb2.pyi +0 -0
  165. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -0
  166. {scalekit_sdk_python-2.4.13/scalekit/v1/connected_accounts → scalekit_sdk_python-2.4.15/scalekit/v1/events}/__init__.py +0 -0
  167. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/events/events_pb2_grpc.py +0 -0
  168. {scalekit_sdk_python-2.4.13/scalekit/v1/commons → scalekit_sdk_python-2.4.15/scalekit/v1/interceptors}/__init__.py +0 -0
  169. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/interceptors/interceptors_pb2_grpc.py +0 -0
  170. {scalekit_sdk_python-2.4.13/scalekit/v1/clients → scalekit_sdk_python-2.4.15/scalekit/v1/mcp}/__init__.py +0 -0
  171. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/mcp/mcp_pb2.py +0 -0
  172. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/mcp/mcp_pb2.pyi +0 -0
  173. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/mcp/mcp_pb2_grpc.py +0 -0
  174. {scalekit_sdk_python-2.4.13/scalekit/v1/auth → scalekit_sdk_python-2.4.15/scalekit/v1/members}/__init__.py +0 -0
  175. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/members/members_pb2_grpc.py +0 -0
  176. {scalekit_sdk_python-2.4.13/scalekit/v1/auditlogs → scalekit_sdk_python-2.4.15/scalekit/v1/migrations}/__init__.py +0 -0
  177. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/migrations/migrations_pb2.py +0 -0
  178. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
  179. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
  180. {scalekit_sdk_python-2.4.13/scalekit/v1 → scalekit_sdk_python-2.4.15/scalekit/v1/options}/__init__.py +0 -0
  181. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/options/options_pb2.py +0 -0
  182. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/options/options_pb2.pyi +0 -0
  183. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/options/options_pb2_grpc.py +0 -0
  184. {scalekit_sdk_python-2.4.13/scalekit/utils → scalekit_sdk_python-2.4.15/scalekit/v1/organizations}/__init__.py +0 -0
  185. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/organizations/organizations_pb2.pyi +0 -0
  186. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
  187. {scalekit_sdk_python-2.4.13/scalekit/constants → scalekit_sdk_python-2.4.15/scalekit/v1/providers}/__init__.py +0 -0
  188. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/providers/providers_pb2.py +0 -0
  189. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/providers/providers_pb2.pyi +0 -0
  190. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/providers/providers_pb2_grpc.py +0 -0
  191. {scalekit_sdk_python-2.4.13/scalekit/common → scalekit_sdk_python-2.4.15/scalekit/v1/roles}/__init__.py +0 -0
  192. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/roles/roles_pb2.pyi +0 -0
  193. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/roles/roles_pb2_grpc.py +0 -0
  194. {scalekit_sdk_python-2.4.13/scalekit/actions/models/responses → scalekit_sdk_python-2.4.15/scalekit/v1/secrets}/__init__.py +0 -0
  195. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/secrets/secrets_pb2.py +0 -0
  196. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/secrets/secrets_pb2.pyi +0 -0
  197. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/secrets/secrets_pb2_grpc.py +0 -0
  198. {scalekit_sdk_python-2.4.13/scalekit/actions/models/requests → scalekit_sdk_python-2.4.15/scalekit/v1/sessions}/__init__.py +0 -0
  199. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/sessions/sessions_pb2.py +0 -0
  200. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/sessions/sessions_pb2.pyi +0 -0
  201. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/sessions/sessions_pb2_grpc.py +0 -0
  202. {scalekit_sdk_python-2.4.13/scalekit/actions/models → scalekit_sdk_python-2.4.15/scalekit/v1/tokens}/__init__.py +0 -0
  203. {scalekit_sdk_python-2.4.13/scalekit/actions/frameworks → scalekit_sdk_python-2.4.15/scalekit/v1/tools}/__init__.py +0 -0
  204. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/tools/tools_pb2.pyi +0 -0
  205. {scalekit_sdk_python-2.4.13/buf/validate/priv → scalekit_sdk_python-2.4.15/scalekit/v1/user_attributes}/__init__.py +0 -0
  206. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
  207. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
  208. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
  209. {scalekit_sdk_python-2.4.13/buf/validate → scalekit_sdk_python-2.4.15/scalekit/v1/users}/__init__.py +0 -0
  210. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/users/users_pb2_grpc.py +0 -0
  211. {scalekit_sdk_python-2.4.13/buf → scalekit_sdk_python-2.4.15/scalekit/v1/webhooks}/__init__.py +0 -0
  212. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
  213. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
  214. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
  215. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
  216. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
  217. {scalekit_sdk_python-2.4.13 → scalekit_sdk_python-2.4.15}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalekit-sdk-python
3
- Version: 2.4.13
3
+ Version: 2.4.15
4
4
  Summary: Scalekit official Python SDK
5
5
  Home-page: https://github.com/scalekit-inc/scalekit-sdk-python
6
6
  Author: Team Scalekit
@@ -12,21 +12,21 @@ Classifier: Operating System :: OS Independent
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: grpcio>=1.64.1
15
- Requires-Dist: protobuf<6.0.0,>=5.26.1
15
+ Requires-Dist: protobuf<=6.32.0,>=5.26.1
16
16
  Requires-Dist: google>=3.0
17
17
  Requires-Dist: requests>=2.32.3
18
- Requires-Dist: PyJWT<2.10,>=2.8
18
+ Requires-Dist: PyJWT<2.11,>=2.8
19
19
  Requires-Dist: cffi>=1.15.1
20
20
  Requires-Dist: cryptography==45.0.6
21
- Requires-Dist: setuptools>=78.1.1
21
+ Requires-Dist: setuptools<81.0,>=78.1.1
22
22
  Requires-Dist: grpcio-status<1.67,>=1.64
23
23
  Requires-Dist: protoc-gen-openapiv2>=0.0.1
24
24
  Requires-Dist: googleapis-common-protos<1.66.0,>=1.56.1
25
25
  Requires-Dist: deprecation>=2.1.0
26
- Requires-Dist: python-dotenv>=1.1.0
26
+ Requires-Dist: python-dotenv~=1.1.1
27
27
  Requires-Dist: Faker~=25.8.0
28
28
  Requires-Dist: pydantic>=2.10.6
29
- Requires-Dist: mcp>=1.15.0
29
+ Requires-Dist: mcp>=1.23.0
30
30
  Dynamic: author
31
31
  Dynamic: author-email
32
32
  Dynamic: classifier
@@ -24,6 +24,7 @@ from scalekit.passwordless import PasswordlessClient
24
24
  from scalekit.mcp import McpClient
25
25
  from scalekit.sessions import SessionsClient
26
26
  from scalekit.auth import AuthClient
27
+ from scalekit.webauthn import WebAuthnClient
27
28
  from scalekit.common.scalekit import (
28
29
  AuthorizationUrlOptions,
29
30
  CodeAuthenticationOptions,
@@ -78,6 +79,7 @@ class ScalekitClient:
78
79
  self.passwordless = PasswordlessClient(self.core_client)
79
80
  self.sessions = SessionsClient(self.core_client)
80
81
  self.auth = AuthClient(self.core_client)
82
+ self.webauthn = WebAuthnClient(self.core_client)
81
83
  except Exception as exp:
82
84
  raise exp
83
85
 
@@ -139,7 +141,6 @@ class ScalekitClient:
139
141
  """
140
142
  try:
141
143
  response = self.core_client.authenticate(
142
- json.dumps(
143
144
  {
144
145
  "code": code,
145
146
  "redirect_uri": redirect_uri,
@@ -148,12 +149,13 @@ class ScalekitClient:
148
149
  "client_secret": self.core_client.client_secret,
149
150
  "code_verifier": options.code_verifier,
150
151
  }
151
- )
152
152
  )
153
153
  response = json.loads(response.content)
154
154
  id_token = response["id_token"]
155
155
  access_token = response["access_token"]
156
156
  refresh_token = response.get("refresh_token")
157
+ expires_in = response.get("expires_in")
158
+
157
159
  # Validate id_token
158
160
  claims = self.validate_token(id_token, options=None)
159
161
  user = {}
@@ -170,7 +172,8 @@ class ScalekitClient:
170
172
  "access_token": access_token,
171
173
  "refresh_token": refresh_token,
172
174
  "connection_id": connection_id,
173
- "organization_id": organization_id
175
+ "organization_id": organization_id,
176
+ "expires_in": expires_in
174
177
  }
175
178
 
176
179
  except jwt.exceptions.InvalidTokenError as exp:
@@ -211,13 +214,11 @@ class ScalekitClient:
211
214
  """
212
215
  try:
213
216
  response = self.core_client.authenticate(
214
- json.dumps(
215
217
  {
216
218
  "grant_type": GrantType.ClientCredentials.value,
217
219
  "client_id": client_id,
218
220
  "client_secret": client_secret,
219
221
  }
220
- )
221
222
  )
222
223
  response = json.loads(response.content)
223
224
  return response
@@ -514,14 +515,12 @@ class ScalekitClient:
514
515
  """
515
516
  try:
516
517
  response = self.core_client.authenticate(
517
- json.dumps(
518
- {
519
- "refresh_token": refresh_token,
520
- "grant_type": GrantType.RefreshToken.value,
521
- "client_id": self.core_client.client_id,
522
- "client_secret": self.core_client.client_secret,
523
- }
524
- )
518
+ {
519
+ "refresh_token": refresh_token,
520
+ "grant_type": GrantType.RefreshToken.value,
521
+ "client_id": self.core_client.client_id,
522
+ "client_secret": self.core_client.client_secret,
523
+ }
525
524
  )
526
525
  response = json.loads(response.content)
527
526
  return {
@@ -26,8 +26,8 @@ class WithCall(Protocol):
26
26
  class CoreClient:
27
27
  """Class definition for Core Client"""
28
28
 
29
- sdk_version = "Scalekit-Python/2.4.13"
30
- api_version = "20250104"
29
+ sdk_version = "Scalekit-Python/2.4.15"
30
+ api_version = "20251215"
31
31
  user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
32
32
 
33
33
  def __init__(self, env_url, client_id, client_secret):
@@ -83,13 +83,13 @@ class CoreClient:
83
83
  "client_secret": self.client_secret,
84
84
  }
85
85
 
86
- response = self.authenticate(data=json.dumps(params))
86
+ response = self.authenticate(data=params)
87
87
  if response.status_code != 200:
88
88
  raise ScalekitServerException.promote(response)
89
89
  response = json.loads(response.content)
90
90
  self.access_token = response["access_token"]
91
91
 
92
- def authenticate(self, data: str):
92
+ def authenticate(self, data: dict):
93
93
  """
94
94
  Method to execute post request for authentication with given user params
95
95
 
@@ -100,7 +100,7 @@ class CoreClient:
100
100
  response = requests.post(
101
101
  self.env_url + TOKEN_ENDPOINT,
102
102
  headers=self.get_headers(headers=headers),
103
- data=json.loads(data),
103
+ data=data,
104
104
  verify=True,
105
105
  )
106
106
  if response.status_code != 200:
@@ -25,7 +25,7 @@ from scalekit.v1.connections import connections_pb2 as scalekit_dot_v1_dot_conne
25
25
  from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
26
26
 
27
27
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bscalekit/v1/auth/auth.proto\x12\x10scalekit.v1.auth\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/visibility.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a)scalekit/v1/connections/connections.proto\x1a!scalekit/v1/options/options.proto\"0\n\x16ListAuthMethodsRequest\x12\x16\n\x06intent\x18\x01 \x01(\tR\x06intent\"Z\n\x17ListAuthMethodsResponse\x12?\n\x0c\x61uth_methods\x18\x01 \x03(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\x0b\x61uthMethods\"\x89\t\n\nAuthMethod\x12}\n\rconnection_id\x18\x01 \x01(\tBX\x92\x41L22Unique identifier for the connection to be toggledJ\x16\"conn_121312434123312\"\xbaH\x06r\x04\x10\x01\x18 R\x0c\x63onnectionId\x12P\n\x0f\x63onnection_type\x18\x02 \x01(\x0e\x32\'.scalekit.v1.connections.ConnectionTypeR\x0e\x63onnectionType\x12\x1a\n\x08provider\x18\x03 \x01(\tR\x08provider\x12\x93\x01\n\x13\x61uth_initiation_uri\x18\x04 \x01(\tBc\x92\x41V2\x1eURI to initiate the connectionJ4\"https://sso.acmecorp.com/sso/v1/oidc/conn_123/init\"\xbaH\x07r\x05\x10\x01\x18\xff\x01R\x11\x61uthInitiationUri\x12z\n\x11passwordless_type\x18\x05 \x01(\x0e\x32).scalekit.v1.connections.PasswordlessTypeB\x1d\x92\x41\x1a\x32\x11Passwordless typeJ\x05\"OTP\"H\x00R\x10passwordlessType\x88\x01\x01\x12W\n\x15\x63ode_challenge_length\x18\x06 \x01(\rB\x1e\x92\x41\x1b\x32\x16Length of the OTP codeJ\x01\x36H\x01R\x13\x63odeChallengeLength\x88\x01\x01\x12\xa3\x01\n!enable_webauthn_auto_registration\x18\x07 \x01(\x08\x42S\x92\x41P2GIndicates if WebAuthn auto-registration is enabled for this auth method:\x05\x66\x61lseH\x02R\x1e\x65nableWebauthnAutoRegistration\x88\x01\x01\x12\x63\n\x13show_passkey_button\x18\x08 \x01(\x08\x42.\x92\x41+2#Show passkey button on login screen:\x04trueH\x03R\x11showPasskeyButton\x88\x01\x01\x12\x83\x01\n!enable_webauthn_conditional_login\x18\t \x01(\x08\x42\x33\x92\x41\x30\x32(Allow autofill of passkeys in login page:\x04trueH\x04R\x1e\x65nableWebauthnConditionalLogin\x88\x01\x01\x42\x14\n\x12_passwordless_typeB\x18\n\x16_code_challenge_lengthB$\n\"_enable_webauthn_auto_registrationB\x16\n\x14_show_passkey_buttonB$\n\"_enable_webauthn_conditional_login\"m\n\x1a\x44iscoveryAuthMethodRequest\x12O\n\x11\x64iscovery_request\x18\x02 \x01(\x0b\x32\".scalekit.v1.auth.DiscoveryRequestR\x10\x64iscoveryRequest\"\xb3\x01\n\x10\x44iscoveryRequest\x12\x63\n\x05\x65mail\x18\x01 \x01(\tBM\x92\x41\x41\x32*user identifier like email or phone numberJ\x13\"john@acmecorp.com\"\xbaH\x06r\x04\x10\x03\x18\x64R\x05\x65mail\x12:\n\x06intent\x18\x02 \x01(\x0e\x32\x18.scalekit.v1.auth.IntentB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06intent\"\\\n\x1b\x44iscoveryAuthMethodResponse\x12=\n\x0b\x61uth_method\x18\x01 \x01(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\nauthMethod\"\x1e\n\x1cGetAuthCustomizationsRequest\"o\n\x1dGetAuthCustomizationsResponse\x12N\n\x16\x63ustomization_settings\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x15\x63ustomizationSettings\"N\n\x17GetAuthFeaturesResponse\x12\x33\n\x08\x66\x65\x61tures\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x08\x66\x65\x61tures\"R\n\x19VerifyPasswordLessRequest\x12\x35\n\x07otp_req\x18\x02 \x01(\x0b\x32\x1c.scalekit.v1.auth.OTPRequestR\x06otpReq\"\x1c\n\x1aVerifyPasswordLessResponse\"i\n\nOTPRequest\x12[\n\x0e\x63ode_challenge\x18\x01 \x01(\tB4\x92\x41(2\x1cOTP sent to the user\'s emailJ\x08\"123456\"\xbaH\x06r\x04\x10\x05\x18\x06R\rcodeChallenge\"\xd4\x01\n\x1dListUserOrganizationsResponse\x12\x44\n\rorganizations\x18\x01 \x03(\x0b\x32\x1e.scalekit.v1.auth.OrganizationR\rorganizations\x12\x31\n\x04user\x18\x02 \x01(\x0b\x32\x1d.scalekit.v1.auth.UserDetailsR\x04user\x12:\n\x06intent\x18\x03 \x01(\x0e\x32\x18.scalekit.v1.auth.IntentB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06intent\"\x8b\x04\n\x0cOrganization\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12+\n\x11membership_status\x18\x03 \x01(\tR\x10membershipStatus\x12=\n\x18invitation_inviter_email\x18\x04 \x01(\tH\x00R\x16invitationInviterEmail\x88\x01\x01\x12U\n\x16invitation_accepted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x14invitationAcceptedAt\x88\x01\x01\x12S\n\x15invitation_created_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\x13invitationCreatedAt\x88\x01\x01\x12S\n\x15invitation_expires_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03R\x13invitationExpiresAt\x88\x01\x01\x42\x1b\n\x19_invitation_inviter_emailB\x19\n\x17_invitation_accepted_atB\x18\n\x16_invitation_created_atB\x18\n\x16_invitation_expires_at\"_\n\x0bUserDetails\x12\x14\n\x05\x65mail\x18\x01 \x01(\tR\x05\x65mail\x12\x1d\n\nfirst_name\x18\x02 \x01(\tR\tfirstName\x12\x1b\n\tlast_name\x18\x03 \x01(\tR\x08lastName\"\xc4\x01\n\x19SignupOrganizationRequest\x12+\n\x11organization_name\x18\x01 \x01(\tR\x10organizationName\x12\x1d\n\nfirst_name\x18\x02 \x01(\tR\tfirstName\x12\x1b\n\tlast_name\x18\x03 \x01(\tR\x08lastName\x12\x1b\n\tfull_name\x18\x04 \x01(\tR\x08\x66ullName\x12!\n\x0cphone_number\x18\x05 \x01(\tR\x0bphoneNumber\"r\n\x1aSignupOrganizationResponse\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12+\n\x11organization_name\x18\x02 \x01(\tR\x10organizationName\"\xd6\x02\n\x1dUpdateLoginUserDetailsRequest\x12v\n\rconnection_id\x18\x01 \x01(\tBQ\x92\x41\x45\x32+Connection ID. Unique ID for the connectionJ\x16\"conn_121312434123312\"\xbaH\x06r\x04\x10\x01\x18 R\x0c\x63onnectionId\x12\x90\x01\n\x10login_request_id\x18\x02 \x01(\tBf\x92\x41]2BLogin Request ID that was shared as part of authorization initiateJ\x17\"lri_73415099636808061\"\xbaH\x03\xc8\x01\x01R\x0eloginRequestId\x12*\n\x04user\x18\x03 \x01(\x0b\x32\x16.scalekit.v1.auth.UserR\x04user\"\x90\x0c\n\x04User\x12\x83\x01\n\x03sub\x18\x01 \x01(\tBq\x92\x41g2WSubject identifier for the user (typically a unique user ID from the identity provider)J\x0c\"1234567890\"\xbaH\x04r\x02\x10\x01R\x03sub\x12R\n\x05\x65mail\x18\x02 \x01(\tB<\x92\x41\x32\x32\x1cUser\'s primary email addressJ\x12\"user@example.com\"\xbaH\x04r\x02\x10\x01R\x05\x65mail\x12=\n\ngiven_name\x18\x03 \x01(\tB\x1e\x92\x41\x1b\x32\x11User\'s first nameJ\x06\"John\"R\tgivenName\x12=\n\x0b\x66\x61mily_name\x18\x04 \x01(\tB\x1c\x92\x41\x19\x32\x10User\'s last nameJ\x05\"Doe\"R\nfamilyName\x12\x88\x01\n\x0e\x65mail_verified\x18\x05 \x01(\x08\x42\x61\x92\x41^2VIndicates whether the user\'s email address has been verified by the identity provider.J\x04trueR\remailVerified\x12\x63\n\x0cphone_number\x18\x06 \x01(\tB@\x92\x41=2,User\'s primary phone number in E.164 format.J\r\"+1234567890\"R\x0bphoneNumber\x12\x95\x01\n\x15phone_number_verified\x18\x07 \x01(\x08\x42\x61\x92\x41^2UIndicates whether the user\'s phone number has been verified by the identity provider.J\x05\x66\x61lseR\x13phoneNumberVerified\x12\x42\n\x04name\x18\x08 \x01(\tB.\x92\x41+2\x1d\x46ull display name of the userJ\n\"John Doe\"R\x04name\x12\x62\n\x12preferred_username\x18\t \x01(\tB3\x92\x41\x30\x32#User\'s preferred username or handleJ\t\"johndoe\"R\x11preferredUsername\x12\x62\n\x07picture\x18\n \x01(\tBH\x92\x41\x45\x32!URL to the user\'s profile pictureJ \"https://example.com/avatar.jpg\"R\x07picture\x12X\n\x06gender\x18\x0b \x01(\tB@\x92\x41=23User\'s gender as reported by the identity provider.J\x06\"male\"R\x06gender\x12\x65\n\x06locale\x18\x0c \x01(\tBM\x92\x41J2?User\'s locale or language preference (IETF BCP 47 language tag)J\x07\"en-US\"R\x06locale\x12\x66\n\x06groups\x18\r \x03(\tBN\x92\x41K2/List of group names or IDs the user belongs to.J\x18[\"admins\", \"developers\"]R\x06groups\x12\xf2\x01\n\x11\x63ustom_attributes\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\xab\x01\x92\x41\xa7\x01\x32mCustom attributes for the user, represented as a key-value map. Used for additional identity provider claims.J6{\"department\": \"Engineering\", \"employee_id\": \"E12345\"}R\x10\x63ustomAttributes\"R\n\x14GetAuthStateResponse\x12:\n\nauth_state\x18\x01 \x01(\x0e\x32\x1b.scalekit.v1.auth.AuthStateR\tauthState\"\x8c\x01\n\x13GetAuthErrorRequest\x12u\n\x08\x65rror_id\x18\x01 \x01(\tBZ\x92\x41H2.Unique identifier for the authentication errorJ\x16\"err_1234567890abcdef\"\xbaH\x0cr\n\x10\x01\x18@:\x04\x65rr_R\x07\x65rrorId\"Y\n\x14GetAuthErrorResponse\x12\x14\n\x05\x65rror\x18\x01 \x01(\tR\x05\x65rror\x12+\n\x11\x65rror_description\x18\x02 \x01(\tR\x10\x65rrorDescription*:\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\x0b\n\x07sign_in\x10\x01\x12\x0b\n\x07sign_up\x10\x02*\xb5\x03\n\tAuthState\x12\x1a\n\x16\x41UTH_STATE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41UTHENTICATION_IN_PROGRESS\x10\x01\x12\x19\n\x15ORGANIZATION_SWITCHER\x10\x02\x12\x19\n\x15ORGANIZATION_SELECTED\x10\x03\x12\x17\n\x13ORGANIZATION_SIGNUP\x10\x04\x12 \n\x1cORGANIZATION_SWITCHER_SIGNUP\x10\x05\x12\x1c\n\x18OTP_VERIFICATION_PENDING\x10\x06\x12\x13\n\x0fMAGIC_LINK_SENT\x10\x07\x12&\n\"LINK_SENT_OTP_VERIFICATION_PENDING\x10\x08\x12\x10\n\x0cOTP_VERIFIED\x10\t\x12\x11\n\rLINK_VERIFIED\x10\n\x12\x15\n\x11SSO_AUTHENTICATED\x10\x0b\x12\x14\n\x10ORG_USER_CREATED\x10\x0c\x12\x1c\n\x18\x41UTHENTICATION_COMPLETED\x10\r\x12\x19\n\x15\x41UTHENTICATION_FAILED\x10\x0e\x12\x15\n\x11WEBAUTHN_VERIFIED\x10\x0f\x32\xa1\x10\n\x0b\x41uthService\x12\x98\x01\n\x0fListAuthMethods\x12(.scalekit.v1.auth.ListAuthMethodsRequest\x1a).scalekit.v1.auth.ListAuthMethodsResponse\"0\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/authmethods\x12\xba\x01\n\x13\x44iscoveryAuthMethod\x12,.scalekit.v1.auth.DiscoveryAuthMethodRequest\x1a-.scalekit.v1.auth.DiscoveryAuthMethodResponse\"F\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+\"\x16/api/v1/auth:discovery:\x11\x64iscovery_request\x12\xba\x01\n\x15VerifyPasswordLessOtp\x12+.scalekit.v1.auth.VerifyPasswordLessRequest\x1a,.scalekit.v1.auth.VerifyPasswordLessResponse\"F\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+\" /api/v1/auth/passwordless:verify:\x07otp_req\x12\x83\x01\n\x12ResendPasswordless\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"=\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\"\" /api/v1/auth/passwordless:resend\x12\x99\x01\n\x15ListUserOrganizations\x12\x16.google.protobuf.Empty\x1a/.scalekit.v1.auth.ListUserOrganizationsResponse\"7\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/auth:organizations\x12\xa4\x01\n\x12SignupOrganization\x12+.scalekit.v1.auth.SignupOrganizationRequest\x1a,.scalekit.v1.auth.SignupOrganizationResponse\"3\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/auth:signup:\x01*\x12\x7f\n\x0cGetAuthState\x12\x16.google.protobuf.Empty\x1a&.scalekit.v1.auth.GetAuthStateResponse\"/\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/auth/state\x12\xb6\x01\n\x0cGetAuthError\x12%.scalekit.v1.auth.GetAuthErrorRequest\x1a&.scalekit.v1.auth.GetAuthErrorResponse\"W\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02<\x12\x19/api/v1/errors/{error_id}Z\x1f\x12\x1d/api/v1/auth/error/{error_id}\x12j\n\x06Logout\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"0\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x15\"\x13/api/v1/auth/logout\x12\xb2\x01\n\x15GetAuthCustomizations\x12..scalekit.v1.auth.GetAuthCustomizationsRequest\x1a/.scalekit.v1.auth.GetAuthCustomizationsResponse\"8\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/auth:customizations\x12\x88\x01\n\x0fGetAuthFeatures\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.GetAuthFeaturesResponse\"2\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/auth:features\x12\xcd\x02\n\x16UpdateLoginUserDetails\x12/.scalekit.v1.auth.UpdateLoginUserDetailsRequest\x1a\x16.google.protobuf.Empty\"\xe9\x01\x92\x41z\n\x0b\x43onnections\x12%Update User Details for login request\x1a%Update User Details for login requestJ\x1d\n\x03\x32\x30\x30\x12\x16\n\x14\x44\x65leted Successfully\x82\xb5\x18\x02\x18\x04\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02Q\"I/api/v1/connections/{connection_id}/auth-requests/{login_request_id}/user:\x04userB0Z.github.com/scalekit-inc/scalekit/pkg/grpc/authb\x06proto3')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bscalekit/v1/auth/auth.proto\x12\x10scalekit.v1.auth\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/api/visibility.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a)scalekit/v1/connections/connections.proto\x1a!scalekit/v1/options/options.proto\"0\n\x16ListAuthMethodsRequest\x12\x16\n\x06intent\x18\x01 \x01(\tR\x06intent\"Z\n\x17ListAuthMethodsResponse\x12?\n\x0c\x61uth_methods\x18\x01 \x03(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\x0b\x61uthMethods\"\x89\t\n\nAuthMethod\x12}\n\rconnection_id\x18\x01 \x01(\tBX\x92\x41L22Unique identifier for the connection to be toggledJ\x16\"conn_121312434123312\"\xbaH\x06r\x04\x10\x01\x18 R\x0c\x63onnectionId\x12P\n\x0f\x63onnection_type\x18\x02 \x01(\x0e\x32\'.scalekit.v1.connections.ConnectionTypeR\x0e\x63onnectionType\x12\x1a\n\x08provider\x18\x03 \x01(\tR\x08provider\x12\x93\x01\n\x13\x61uth_initiation_uri\x18\x04 \x01(\tBc\x92\x41V2\x1eURI to initiate the connectionJ4\"https://sso.acmecorp.com/sso/v1/oidc/conn_123/init\"\xbaH\x07r\x05\x10\x01\x18\xff\x01R\x11\x61uthInitiationUri\x12z\n\x11passwordless_type\x18\x05 \x01(\x0e\x32).scalekit.v1.connections.PasswordlessTypeB\x1d\x92\x41\x1a\x32\x11Passwordless typeJ\x05\"OTP\"H\x00R\x10passwordlessType\x88\x01\x01\x12W\n\x15\x63ode_challenge_length\x18\x06 \x01(\rB\x1e\x92\x41\x1b\x32\x16Length of the OTP codeJ\x01\x36H\x01R\x13\x63odeChallengeLength\x88\x01\x01\x12\xa3\x01\n!enable_webauthn_auto_registration\x18\x07 \x01(\x08\x42S\x92\x41P2GIndicates if WebAuthn auto-registration is enabled for this auth method:\x05\x66\x61lseH\x02R\x1e\x65nableWebauthnAutoRegistration\x88\x01\x01\x12\x63\n\x13show_passkey_button\x18\x08 \x01(\x08\x42.\x92\x41+2#Show passkey button on login screen:\x04trueH\x03R\x11showPasskeyButton\x88\x01\x01\x12\x83\x01\n!enable_webauthn_conditional_login\x18\t \x01(\x08\x42\x33\x92\x41\x30\x32(Allow autofill of passkeys in login page:\x04trueH\x04R\x1e\x65nableWebauthnConditionalLogin\x88\x01\x01\x42\x14\n\x12_passwordless_typeB\x18\n\x16_code_challenge_lengthB$\n\"_enable_webauthn_auto_registrationB\x16\n\x14_show_passkey_buttonB$\n\"_enable_webauthn_conditional_login\"m\n\x1a\x44iscoveryAuthMethodRequest\x12O\n\x11\x64iscovery_request\x18\x02 \x01(\x0b\x32\".scalekit.v1.auth.DiscoveryRequestR\x10\x64iscoveryRequest\"\xb3\x01\n\x10\x44iscoveryRequest\x12\x63\n\x05\x65mail\x18\x01 \x01(\tBM\x92\x41\x41\x32*user identifier like email or phone numberJ\x13\"john@acmecorp.com\"\xbaH\x06r\x04\x10\x03\x18\x64R\x05\x65mail\x12:\n\x06intent\x18\x02 \x01(\x0e\x32\x18.scalekit.v1.auth.IntentB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06intent\"\\\n\x1b\x44iscoveryAuthMethodResponse\x12=\n\x0b\x61uth_method\x18\x01 \x01(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\nauthMethod\"\x1e\n\x1cGetAuthCustomizationsRequest\"o\n\x1dGetAuthCustomizationsResponse\x12N\n\x16\x63ustomization_settings\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x15\x63ustomizationSettings\"N\n\x17GetAuthFeaturesResponse\x12\x33\n\x08\x66\x65\x61tures\x18\x01 \x01(\x0b\x32\x17.google.protobuf.StructR\x08\x66\x65\x61tures\"U\n\x1cVerifyPasswordLessOtpRequest\x12\x35\n\x07otp_req\x18\x02 \x01(\x0b\x32\x1c.scalekit.v1.auth.OTPRequestR\x06otpReq\"\x1f\n\x1dVerifyPasswordLessOtpResponse\"i\n\nOTPRequest\x12[\n\x0e\x63ode_challenge\x18\x01 \x01(\tB4\x92\x41(2\x1cOTP sent to the user\'s emailJ\x08\"123456\"\xbaH\x06r\x04\x10\x05\x18\x06R\rcodeChallenge\"\xd4\x01\n\x1dListUserOrganizationsResponse\x12\x44\n\rorganizations\x18\x01 \x03(\x0b\x32\x1e.scalekit.v1.auth.OrganizationR\rorganizations\x12\x31\n\x04user\x18\x02 \x01(\x0b\x32\x1d.scalekit.v1.auth.UserDetailsR\x04user\x12:\n\x06intent\x18\x03 \x01(\x0e\x32\x18.scalekit.v1.auth.IntentB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06intent\"\x8b\x04\n\x0cOrganization\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12+\n\x11membership_status\x18\x03 \x01(\tR\x10membershipStatus\x12=\n\x18invitation_inviter_email\x18\x04 \x01(\tH\x00R\x16invitationInviterEmail\x88\x01\x01\x12U\n\x16invitation_accepted_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x14invitationAcceptedAt\x88\x01\x01\x12S\n\x15invitation_created_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02R\x13invitationCreatedAt\x88\x01\x01\x12S\n\x15invitation_expires_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03R\x13invitationExpiresAt\x88\x01\x01\x42\x1b\n\x19_invitation_inviter_emailB\x19\n\x17_invitation_accepted_atB\x18\n\x16_invitation_created_atB\x18\n\x16_invitation_expires_at\"_\n\x0bUserDetails\x12\x14\n\x05\x65mail\x18\x01 \x01(\tR\x05\x65mail\x12\x1d\n\nfirst_name\x18\x02 \x01(\tR\tfirstName\x12\x1b\n\tlast_name\x18\x03 \x01(\tR\x08lastName\"\xc4\x01\n\x19SignupOrganizationRequest\x12+\n\x11organization_name\x18\x01 \x01(\tR\x10organizationName\x12\x1d\n\nfirst_name\x18\x02 \x01(\tR\tfirstName\x12\x1b\n\tlast_name\x18\x03 \x01(\tR\x08lastName\x12\x1b\n\tfull_name\x18\x04 \x01(\tR\x08\x66ullName\x12!\n\x0cphone_number\x18\x05 \x01(\tR\x0bphoneNumber\"r\n\x1aSignupOrganizationResponse\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12+\n\x11organization_name\x18\x02 \x01(\tR\x10organizationName\"\xd6\x02\n\x1dUpdateLoginUserDetailsRequest\x12v\n\rconnection_id\x18\x01 \x01(\tBQ\x92\x41\x45\x32+Connection ID. Unique ID for the connectionJ\x16\"conn_121312434123312\"\xbaH\x06r\x04\x10\x01\x18 R\x0c\x63onnectionId\x12\x90\x01\n\x10login_request_id\x18\x02 \x01(\tBf\x92\x41]2BLogin Request ID that was shared as part of authorization initiateJ\x17\"lri_73415099636808061\"\xbaH\x03\xc8\x01\x01R\x0eloginRequestId\x12*\n\x04user\x18\x03 \x01(\x0b\x32\x16.scalekit.v1.auth.UserR\x04user\"\x90\x0c\n\x04User\x12\x83\x01\n\x03sub\x18\x01 \x01(\tBq\x92\x41g2WSubject identifier for the user (typically a unique user ID from the identity provider)J\x0c\"1234567890\"\xbaH\x04r\x02\x10\x01R\x03sub\x12R\n\x05\x65mail\x18\x02 \x01(\tB<\x92\x41\x32\x32\x1cUser\'s primary email addressJ\x12\"user@example.com\"\xbaH\x04r\x02\x10\x01R\x05\x65mail\x12=\n\ngiven_name\x18\x03 \x01(\tB\x1e\x92\x41\x1b\x32\x11User\'s first nameJ\x06\"John\"R\tgivenName\x12=\n\x0b\x66\x61mily_name\x18\x04 \x01(\tB\x1c\x92\x41\x19\x32\x10User\'s last nameJ\x05\"Doe\"R\nfamilyName\x12\x88\x01\n\x0e\x65mail_verified\x18\x05 \x01(\x08\x42\x61\x92\x41^2VIndicates whether the user\'s email address has been verified by the identity provider.J\x04trueR\remailVerified\x12\x63\n\x0cphone_number\x18\x06 \x01(\tB@\x92\x41=2,User\'s primary phone number in E.164 format.J\r\"+1234567890\"R\x0bphoneNumber\x12\x95\x01\n\x15phone_number_verified\x18\x07 \x01(\x08\x42\x61\x92\x41^2UIndicates whether the user\'s phone number has been verified by the identity provider.J\x05\x66\x61lseR\x13phoneNumberVerified\x12\x42\n\x04name\x18\x08 \x01(\tB.\x92\x41+2\x1d\x46ull display name of the userJ\n\"John Doe\"R\x04name\x12\x62\n\x12preferred_username\x18\t \x01(\tB3\x92\x41\x30\x32#User\'s preferred username or handleJ\t\"johndoe\"R\x11preferredUsername\x12\x62\n\x07picture\x18\n \x01(\tBH\x92\x41\x45\x32!URL to the user\'s profile pictureJ \"https://example.com/avatar.jpg\"R\x07picture\x12X\n\x06gender\x18\x0b \x01(\tB@\x92\x41=23User\'s gender as reported by the identity provider.J\x06\"male\"R\x06gender\x12\x65\n\x06locale\x18\x0c \x01(\tBM\x92\x41J2?User\'s locale or language preference (IETF BCP 47 language tag)J\x07\"en-US\"R\x06locale\x12\x66\n\x06groups\x18\r \x03(\tBN\x92\x41K2/List of group names or IDs the user belongs to.J\x18[\"admins\", \"developers\"]R\x06groups\x12\xf2\x01\n\x11\x63ustom_attributes\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\xab\x01\x92\x41\xa7\x01\x32mCustom attributes for the user, represented as a key-value map. Used for additional identity provider claims.J6{\"department\": \"Engineering\", \"employee_id\": \"E12345\"}R\x10\x63ustomAttributes\"R\n\x14GetAuthStateResponse\x12:\n\nauth_state\x18\x01 \x01(\x0e\x32\x1b.scalekit.v1.auth.AuthStateR\tauthState\"\x8c\x01\n\x13GetAuthErrorRequest\x12u\n\x08\x65rror_id\x18\x01 \x01(\tBZ\x92\x41H2.Unique identifier for the authentication errorJ\x16\"err_1234567890abcdef\"\xbaH\x0cr\n\x10\x01\x18@:\x04\x65rr_R\x07\x65rrorId\"Y\n\x14GetAuthErrorResponse\x12\x14\n\x05\x65rror\x18\x01 \x01(\tR\x05\x65rror\x12+\n\x11\x65rror_description\x18\x02 \x01(\tR\x10\x65rrorDescription*:\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\x0b\n\x07sign_in\x10\x01\x12\x0b\n\x07sign_up\x10\x02*\xb5\x03\n\tAuthState\x12\x1a\n\x16\x41UTH_STATE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41UTHENTICATION_IN_PROGRESS\x10\x01\x12\x19\n\x15ORGANIZATION_SWITCHER\x10\x02\x12\x19\n\x15ORGANIZATION_SELECTED\x10\x03\x12\x17\n\x13ORGANIZATION_SIGNUP\x10\x04\x12 \n\x1cORGANIZATION_SWITCHER_SIGNUP\x10\x05\x12\x1c\n\x18OTP_VERIFICATION_PENDING\x10\x06\x12\x13\n\x0fMAGIC_LINK_SENT\x10\x07\x12&\n\"LINK_SENT_OTP_VERIFICATION_PENDING\x10\x08\x12\x10\n\x0cOTP_VERIFIED\x10\t\x12\x11\n\rLINK_VERIFIED\x10\n\x12\x15\n\x11SSO_AUTHENTICATED\x10\x0b\x12\x14\n\x10ORG_USER_CREATED\x10\x0c\x12\x1c\n\x18\x41UTHENTICATION_COMPLETED\x10\r\x12\x19\n\x15\x41UTHENTICATION_FAILED\x10\x0e\x12\x15\n\x11WEBAUTHN_VERIFIED\x10\x0f\x32\xa7\x10\n\x0b\x41uthService\x12\x98\x01\n\x0fListAuthMethods\x12(.scalekit.v1.auth.ListAuthMethodsRequest\x1a).scalekit.v1.auth.ListAuthMethodsResponse\"0\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/authmethods\x12\xba\x01\n\x13\x44iscoveryAuthMethod\x12,.scalekit.v1.auth.DiscoveryAuthMethodRequest\x1a-.scalekit.v1.auth.DiscoveryAuthMethodResponse\"F\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+\"\x16/api/v1/auth:discovery:\x11\x64iscovery_request\x12\xc0\x01\n\x15VerifyPasswordLessOtp\x12..scalekit.v1.auth.VerifyPasswordLessOtpRequest\x1a/.scalekit.v1.auth.VerifyPasswordLessOtpResponse\"F\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+\" /api/v1/auth/passwordless:verify:\x07otp_req\x12\x83\x01\n\x12ResendPasswordless\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"=\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\"\" /api/v1/auth/passwordless:resend\x12\x99\x01\n\x15ListUserOrganizations\x12\x16.google.protobuf.Empty\x1a/.scalekit.v1.auth.ListUserOrganizationsResponse\"7\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/auth:organizations\x12\xa4\x01\n\x12SignupOrganization\x12+.scalekit.v1.auth.SignupOrganizationRequest\x1a,.scalekit.v1.auth.SignupOrganizationResponse\"3\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/auth:signup:\x01*\x12\x7f\n\x0cGetAuthState\x12\x16.google.protobuf.Empty\x1a&.scalekit.v1.auth.GetAuthStateResponse\"/\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/auth/state\x12\xb6\x01\n\x0cGetAuthError\x12%.scalekit.v1.auth.GetAuthErrorRequest\x1a&.scalekit.v1.auth.GetAuthErrorResponse\"W\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02<\x12\x19/api/v1/errors/{error_id}Z\x1f\x12\x1d/api/v1/auth/error/{error_id}\x12j\n\x06Logout\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"0\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x15\"\x13/api/v1/auth/logout\x12\xb2\x01\n\x15GetAuthCustomizations\x12..scalekit.v1.auth.GetAuthCustomizationsRequest\x1a/.scalekit.v1.auth.GetAuthCustomizationsResponse\"8\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/auth:customizations\x12\x88\x01\n\x0fGetAuthFeatures\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.GetAuthFeaturesResponse\"2\x82\xb5\x18\x02\x18\x01\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\x17\x12\x15/api/v1/auth:features\x12\xcd\x02\n\x16UpdateLoginUserDetails\x12/.scalekit.v1.auth.UpdateLoginUserDetailsRequest\x1a\x16.google.protobuf.Empty\"\xe9\x01\x92\x41z\n\x0b\x43onnections\x12%Update User Details for login request\x1a%Update User Details for login requestJ\x1d\n\x03\x32\x30\x30\x12\x16\n\x14\x44\x65leted Successfully\x82\xb5\x18\x02\x18\x04\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02Q\"I/api/v1/connections/{connection_id}/auth-requests/{login_request_id}/user:\x04userB0Z.github.com/scalekit-inc/scalekit/pkg/grpc/authb\x06proto3')
29
29
 
30
30
  _globals = globals()
31
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -113,10 +113,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
113
113
  _globals['_AUTHSERVICE'].methods_by_name['GetAuthFeatures']._serialized_options = b'\202\265\030\002\030\001\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\027\022\025/api/v1/auth:features'
114
114
  _globals['_AUTHSERVICE'].methods_by_name['UpdateLoginUserDetails']._loaded_options = None
115
115
  _globals['_AUTHSERVICE'].methods_by_name['UpdateLoginUserDetails']._serialized_options = b'\222Az\n\013Connections\022%Update User Details for login request\032%Update User Details for login requestJ\035\n\003200\022\026\n\024Deleted Successfully\202\265\030\002\030\004\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002Q\"I/api/v1/connections/{connection_id}/auth-requests/{login_request_id}/user:\004user'
116
- _globals['_INTENT']._serialized_start=5933
117
- _globals['_INTENT']._serialized_end=5991
118
- _globals['_AUTHSTATE']._serialized_start=5994
119
- _globals['_AUTHSTATE']._serialized_end=6431
116
+ _globals['_INTENT']._serialized_start=5939
117
+ _globals['_INTENT']._serialized_end=5997
118
+ _globals['_AUTHSTATE']._serialized_start=6000
119
+ _globals['_AUTHSTATE']._serialized_end=6437
120
120
  _globals['_LISTAUTHMETHODSREQUEST']._serialized_start=423
121
121
  _globals['_LISTAUTHMETHODSREQUEST']._serialized_end=471
122
122
  _globals['_LISTAUTHMETHODSRESPONSE']._serialized_start=473
@@ -135,32 +135,32 @@ if not _descriptor._USE_C_DESCRIPTORS:
135
135
  _globals['_GETAUTHCUSTOMIZATIONSRESPONSE']._serialized_end=2259
136
136
  _globals['_GETAUTHFEATURESRESPONSE']._serialized_start=2261
137
137
  _globals['_GETAUTHFEATURESRESPONSE']._serialized_end=2339
138
- _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_start=2341
139
- _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_end=2423
140
- _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_start=2425
141
- _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_end=2453
142
- _globals['_OTPREQUEST']._serialized_start=2455
143
- _globals['_OTPREQUEST']._serialized_end=2560
144
- _globals['_LISTUSERORGANIZATIONSRESPONSE']._serialized_start=2563
145
- _globals['_LISTUSERORGANIZATIONSRESPONSE']._serialized_end=2775
146
- _globals['_ORGANIZATION']._serialized_start=2778
147
- _globals['_ORGANIZATION']._serialized_end=3301
148
- _globals['_USERDETAILS']._serialized_start=3303
149
- _globals['_USERDETAILS']._serialized_end=3398
150
- _globals['_SIGNUPORGANIZATIONREQUEST']._serialized_start=3401
151
- _globals['_SIGNUPORGANIZATIONREQUEST']._serialized_end=3597
152
- _globals['_SIGNUPORGANIZATIONRESPONSE']._serialized_start=3599
153
- _globals['_SIGNUPORGANIZATIONRESPONSE']._serialized_end=3713
154
- _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_start=3716
155
- _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_end=4058
156
- _globals['_USER']._serialized_start=4061
157
- _globals['_USER']._serialized_end=5613
158
- _globals['_GETAUTHSTATERESPONSE']._serialized_start=5615
159
- _globals['_GETAUTHSTATERESPONSE']._serialized_end=5697
160
- _globals['_GETAUTHERRORREQUEST']._serialized_start=5700
161
- _globals['_GETAUTHERRORREQUEST']._serialized_end=5840
162
- _globals['_GETAUTHERRORRESPONSE']._serialized_start=5842
163
- _globals['_GETAUTHERRORRESPONSE']._serialized_end=5931
164
- _globals['_AUTHSERVICE']._serialized_start=6434
165
- _globals['_AUTHSERVICE']._serialized_end=8515
138
+ _globals['_VERIFYPASSWORDLESSOTPREQUEST']._serialized_start=2341
139
+ _globals['_VERIFYPASSWORDLESSOTPREQUEST']._serialized_end=2426
140
+ _globals['_VERIFYPASSWORDLESSOTPRESPONSE']._serialized_start=2428
141
+ _globals['_VERIFYPASSWORDLESSOTPRESPONSE']._serialized_end=2459
142
+ _globals['_OTPREQUEST']._serialized_start=2461
143
+ _globals['_OTPREQUEST']._serialized_end=2566
144
+ _globals['_LISTUSERORGANIZATIONSRESPONSE']._serialized_start=2569
145
+ _globals['_LISTUSERORGANIZATIONSRESPONSE']._serialized_end=2781
146
+ _globals['_ORGANIZATION']._serialized_start=2784
147
+ _globals['_ORGANIZATION']._serialized_end=3307
148
+ _globals['_USERDETAILS']._serialized_start=3309
149
+ _globals['_USERDETAILS']._serialized_end=3404
150
+ _globals['_SIGNUPORGANIZATIONREQUEST']._serialized_start=3407
151
+ _globals['_SIGNUPORGANIZATIONREQUEST']._serialized_end=3603
152
+ _globals['_SIGNUPORGANIZATIONRESPONSE']._serialized_start=3605
153
+ _globals['_SIGNUPORGANIZATIONRESPONSE']._serialized_end=3719
154
+ _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_start=3722
155
+ _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_end=4064
156
+ _globals['_USER']._serialized_start=4067
157
+ _globals['_USER']._serialized_end=5619
158
+ _globals['_GETAUTHSTATERESPONSE']._serialized_start=5621
159
+ _globals['_GETAUTHSTATERESPONSE']._serialized_end=5703
160
+ _globals['_GETAUTHERRORREQUEST']._serialized_start=5706
161
+ _globals['_GETAUTHERRORREQUEST']._serialized_end=5846
162
+ _globals['_GETAUTHERRORRESPONSE']._serialized_start=5848
163
+ _globals['_GETAUTHERRORRESPONSE']._serialized_end=5937
164
+ _globals['_AUTHSERVICE']._serialized_start=6440
165
+ _globals['_AUTHSERVICE']._serialized_end=8527
166
166
  # @@protoc_insertion_point(module_scope)
@@ -131,13 +131,13 @@ class GetAuthFeaturesResponse(_message.Message):
131
131
  features: _struct_pb2.Struct
132
132
  def __init__(self, features: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...
133
133
 
134
- class VerifyPasswordLessRequest(_message.Message):
134
+ class VerifyPasswordLessOtpRequest(_message.Message):
135
135
  __slots__ = ("otp_req",)
136
136
  OTP_REQ_FIELD_NUMBER: _ClassVar[int]
137
137
  otp_req: OTPRequest
138
138
  def __init__(self, otp_req: _Optional[_Union[OTPRequest, _Mapping]] = ...) -> None: ...
139
139
 
140
- class VerifyPasswordLessResponse(_message.Message):
140
+ class VerifyPasswordLessOtpResponse(_message.Message):
141
141
  __slots__ = ()
142
142
  def __init__(self) -> None: ...
143
143
 
@@ -27,8 +27,8 @@ class AuthServiceStub(object):
27
27
  )
28
28
  self.VerifyPasswordLessOtp = channel.unary_unary(
29
29
  '/scalekit.v1.auth.AuthService/VerifyPasswordLessOtp',
30
- request_serializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessRequest.SerializeToString,
31
- response_deserializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessResponse.FromString,
30
+ request_serializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpRequest.SerializeToString,
31
+ response_deserializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpResponse.FromString,
32
32
  )
33
33
  self.ResendPasswordless = channel.unary_unary(
34
34
  '/scalekit.v1.auth.AuthService/ResendPasswordless',
@@ -167,8 +167,8 @@ def add_AuthServiceServicer_to_server(servicer, server):
167
167
  ),
168
168
  'VerifyPasswordLessOtp': grpc.unary_unary_rpc_method_handler(
169
169
  servicer.VerifyPasswordLessOtp,
170
- request_deserializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessRequest.FromString,
171
- response_serializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessResponse.SerializeToString,
170
+ request_deserializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpRequest.FromString,
171
+ response_serializer=scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpResponse.SerializeToString,
172
172
  ),
173
173
  'ResendPasswordless': grpc.unary_unary_rpc_method_handler(
174
174
  servicer.ResendPasswordless,
@@ -271,8 +271,8 @@ class AuthService(object):
271
271
  timeout=None,
272
272
  metadata=None):
273
273
  return grpc.experimental.unary_unary(request, target, '/scalekit.v1.auth.AuthService/VerifyPasswordLessOtp',
274
- scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessRequest.SerializeToString,
275
- scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessResponse.FromString,
274
+ scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpRequest.SerializeToString,
275
+ scalekit_dot_v1_dot_auth_dot_auth__pb2.VerifyPasswordLessOtpResponse.FromString,
276
276
  options, channel_credentials,
277
277
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
278
278
 
@@ -23,7 +23,7 @@ from scalekit.v1.commons import commons_pb2 as scalekit_dot_v1_dot_commons_dot_c
23
23
  from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
24
24
 
25
25
 
26
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#scalekit/v1/auth/passwordless.proto\x12\x1dscalekit.v1.auth.passwordless\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a!scalekit/v1/options/options.proto\"\xdb\x10\n\x17SendPasswordlessRequest\x12\xaf\x01\n\x05\x65mail\x18\x01 \x01(\tB\x98\x01\x92\x41\x85\x01\x32kEmail address where the passwordless authentication credentials will be sent. Must be a valid email format.J\x16\"john.doe@example.com\"\xbaH\x0cr\x07\x10\x01\x18\xc0\x02`\x01\xc8\x01\x01R\x05\x65mail\x12\xa6\x02\n\x08template\x18\x02 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB\xd7\x01\x92\x41\xcb\x01\x32\xbe\x01Specifies the authentication intent for the passwordless request. Use SIGNIN for existing users or SIGNUP for new user registration. This affects the email template and user experience flow.J\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x08template\x88\x01\x01\x12\xa9\x02\n\x12magiclink_auth_uri\x18\x03 \x01(\tB\xf5\x01\x92\x41\xe4\x01\x32\xaf\x01Your application\'s callback URL where users will be redirected after clicking the magic link in their email. The link token will be appended as a query parameter as link_tokenJ0\"https://yourapp.com/auth/passwordless/callback\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x01R\x10magiclinkAuthUri\x88\x01\x01\x12\x9b\x02\n\x05state\x18\x04 \x01(\tB\xff\x01\x92\x41\xee\x01\x32\xd9\x01\x43ustom state parameter that will be returned unchanged in the verification response. Use this to maintain application state between the authentication request and callback, such as the intended destination after loginJ\x10\"d62ivasry29lso\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x02R\x05state\x88\x01\x01\x12\xa6\x01\n\nexpires_in\x18\x05 \x01(\rB\x81\x01\x92\x41{2tTime in seconds until the passwordless authentication expires. If not specified, defaults to 300 seconds (5 minutes)J\x03\x33\x30\x30\xe0\x41\x01H\x03R\texpiresIn\x88\x01\x01\x12\xee\x05\n\x12template_variables\x18\x06 \x03(\x0b\x32M.scalekit.v1.auth.passwordless.SendPasswordlessRequest.TemplateVariablesEntryB\xef\x04\x92\x41\xcf\x04\x32\x9a\x04\x41 set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\xe0\x41\x01\xbaH\x16\x9a\x01\x13\x10\x1e\"\x06r\x04\x10\x03\x18\x19*\x07r\x05\x10\x01\x18\x80\x02R\x11templateVariables\x1a\x44\n\x16TemplateVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0b\n\t_templateB\x15\n\x13_magiclink_auth_uriB\x08\n\x06_stateB\r\n\x0b_expires_in\"\x9c\x07\n\x18SendPasswordlessResponse\x12\xc5\x01\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\x9c\x01\x92\x41\x95\x01\x32]Unique identifier for this passwordless authentication request. Use this ID to resend emails.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xe0\x41\x03R\rauthRequestId\x12\xcc\x01\n\nexpires_at\x18\x02 \x01(\x03\x42\xac\x01\x92\x41\xa5\x01\x32\x96\x01Unix timestamp (seconds since epoch) when the passwordless authentication will expire. After this time, the OTP or magic link will no longer be valid.J\n1748696575\xe0\x41\x03R\texpiresAt\x12\xbe\x01\n\nexpires_in\x18\x03 \x01(\rB\x9e\x01\x92\x41\x97\x01\x32\x8f\x01Number of seconds from now until the passwordless authentication expires. This is a convenience field calculated from the expires_at timestamp.J\x03\x33\x30\x30\xe0\x41\x03R\texpiresIn\x12\xa7\x02\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\xc8\x01\x92\x41\xbc\x01\x32\xb2\x01Type of passwordless authentication that was sent via email. OTP sends a numeric code, LINK sends a clickable magic link, and LINK_OTP provides both options for user convenience.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessType\"\xb4\x06\n\x19VerifyPasswordLessRequest\x12\xbd\x01\n\x04\x63ode\x18\x01 \x01(\tB\xa6\x01\x92\x41\x99\x01\x32\x8c\x01The Verification Code (OTP) received via email. This is typically a 6-digit numeric code that users enter manually to verify their identity.J\x08\"123456\"\xbaH\x06r\x04\x10\x01\x18\x14H\x00R\x04\x63ode\x12\x8a\x02\n\nlink_token\x18\x02 \x01(\tB\xe8\x01\x92\x41\xdb\x01\x32\xb0\x01The unique token from the magic link URL received via email. Extract this token when users click the magic link and are redirected to your application to later verify the user.J&\"afe9d61c-d80d-4020-a8ee-61765ab71cb3\"\xbaH\x06r\x04\x10\x01\x18\x64H\x00R\tlinkToken\x12\xa2\x02\n\x0f\x61uth_request_id\x18\x03 \x01(\tB\xf4\x01\x92\x41\xe8\x01\x32\xaf\x01The authentication request identifier returned from the send passwordless email endpoint. Required when verifying OTP codes to link the verification with the original request.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\x05r\x03\x18\xc8\x01H\x01R\rauthRequestId\x88\x01\x01\x42\x11\n\x0f\x61uth_credentialB\x12\n\x10_auth_request_id\"\xc1\x02\n\x19ResendPasswordlessRequest\x12\xa3\x02\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\xfa\x01\x92\x41\xe9\x01\x32\xb0\x01The authentication request identifier from the original send passwordless email request. Use this to resend the Verification Code (OTP) or Magic Link to the same email address.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\nr\x05\x10\x01\x18\xc8\x01\xc8\x01\x01R\rauthRequestId\"\x94\x07\n\x1aVerifyPasswordLessResponse\x12\xbc\x01\n\x05\x65mail\x18\x01 \x01(\tB\xa5\x01\x92\x41\x9e\x01\x32\x83\x01\x45mail address of the successfully authenticated user. This confirms which email account was verified through the passwordless flow.J\x16\"john.doe@example.com\"\xe0\x41\x03R\x05\x65mail\x12\xe8\x01\n\x05state\x18\x02 \x01(\tB\xcc\x01\x92\x41\xc5\x01\x32\xad\x01The custom state parameter that was provided in the original authentication request, returned unchanged. Use this to restore your application\'s context after authentication.J\x13\"kdt7yiag28t341fr1\"\xe0\x41\x03H\x00R\x05state\x88\x01\x01\x12\xcb\x01\n\x08template\x18\x03 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB}\x92\x41r2fSpecifies which email template to choose. For User Signin choose SIGNIN and for User Signup use SIGNUPJ\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x08template\x88\x01\x01\x12\xe6\x01\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\x87\x01\x92\x41|2sThe type of passwordless authentication that was successfully verified, confirming which method the user completed.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessTypeB\x08\n\x06_stateB\x0b\n\t_template*7\n\x0cTemplateType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SIGNIN\x10\x01\x12\n\n\x06SIGNUP\x10\x02*V\n\x10PasswordlessType\x12!\n\x1dPASSWORDLESS_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03OTP\x10\x01\x12\x08\n\x04LINK\x10\x02\x12\x0c\n\x08LINK_OTP\x10\x03\x32\xac\x0e\n\x13PasswordlessService\x12\xb4\x04\n\x15SendPasswordlessEmail\x12\x36.scalekit.v1.auth.passwordless.SendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\xa9\x03\x92\x41\xf5\x02\n\x11Passwordless Auth\x12\x17Send passwordless email\x1atSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\xd0\x01\n\x03\x32\x30\x30\x12\xc8\x01\n\x8d\x01Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\x12\x36\n4\x1a\x32#/definitions/passwordlessSendPasswordlessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/passwordless/email/send:\x01*\x12\xd9\x03\n\x17VerifyPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.VerifyPasswordLessRequest\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\"\xc8\x02\x92\x41\x92\x02\n\x11Passwordless Auth\x12\x19Verify passwordless email\x1aMVerify a user\'s identity using either a verification code or magic link tokenJ\x92\x01\n\x03\x32\x30\x30\x12\x8a\x01\nISuccessfully verified the passwordless authentication. Returns user email\x12=\n;\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/verify:\x01*\x12\xa5\x04\n\x17ResendPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.ResendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\x96\x03\x92\x41\xe0\x02\n\x11Passwordless Auth\x12\x19Resend passwordless email\x1a\x62Resend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\xcb\x01\n\x03\x32\x30\x30\x12\xc3\x01\n\x83\x01Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\x12;\n9\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/resend:\x01*\x1a\xd9\x01\x92\x41\xd5\x01\n\x11Passwordless Auth\x12\xbf\x01\x45ndpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.B=Z;github.com/scalekit-inc/scalekit/pkg/grpc/auth/passwordlessb\x06proto3')
26
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#scalekit/v1/auth/passwordless.proto\x12\x1dscalekit.v1.auth.passwordless\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a!scalekit/v1/commons/commons.proto\x1a!scalekit/v1/options/options.proto\"\xd9\x10\n\x17SendPasswordlessRequest\x12\xaf\x01\n\x05\x65mail\x18\x01 \x01(\tB\x98\x01\x92\x41\x85\x01\x32kEmail address where the passwordless authentication credentials will be sent. Must be a valid email format.J\x16\"john.doe@example.com\"\xbaH\x0cr\x07\x10\x01\x18\xc0\x02`\x01\xc8\x01\x01R\x05\x65mail\x12\xa6\x02\n\x08template\x18\x02 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB\xd7\x01\x92\x41\xcb\x01\x32\xbe\x01Specifies the authentication intent for the passwordless request. Use SIGNIN for existing users or SIGNUP for new user registration. This affects the email template and user experience flow.J\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x00R\x08template\x88\x01\x01\x12\xa9\x02\n\x12magiclink_auth_uri\x18\x03 \x01(\tB\xf5\x01\x92\x41\xe4\x01\x32\xaf\x01Your application\'s callback URL where users will be redirected after clicking the magic link in their email. The link token will be appended as a query parameter as link_tokenJ0\"https://yourapp.com/auth/passwordless/callback\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x01R\x10magiclinkAuthUri\x88\x01\x01\x12\x9b\x02\n\x05state\x18\x04 \x01(\tB\xff\x01\x92\x41\xee\x01\x32\xd9\x01\x43ustom state parameter that will be returned unchanged in the verification response. Use this to maintain application state between the authentication request and callback, such as the intended destination after loginJ\x10\"d62ivasry29lso\"\xe0\x41\x01\xbaH\x07r\x05\x10\x01\x18\xe8\x07H\x02R\x05state\x88\x01\x01\x12\xa6\x01\n\nexpires_in\x18\x05 \x01(\rB\x81\x01\x92\x41{2tTime in seconds until the passwordless authentication expires. If not specified, defaults to 300 seconds (5 minutes)J\x03\x33\x30\x30\xe0\x41\x01H\x03R\texpiresIn\x88\x01\x01\x12\xec\x05\n\x12template_variables\x18\x06 \x03(\x0b\x32M.scalekit.v1.auth.passwordless.SendPasswordlessRequest.TemplateVariablesEntryB\xed\x04\x92\x41\xcf\x04\x32\x9a\x04\x41 set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\xe0\x41\x01\xbaH\x14\x9a\x01\x11\x10\x1e\"\x06r\x04\x10\x02\x18\x19*\x05r\x03\x18\x80\x02R\x11templateVariables\x1a\x44\n\x16TemplateVariablesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\x42\x0b\n\t_templateB\x15\n\x13_magiclink_auth_uriB\x08\n\x06_stateB\r\n\x0b_expires_in\"\x9c\x07\n\x18SendPasswordlessResponse\x12\xc5\x01\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\x9c\x01\x92\x41\x95\x01\x32]Unique identifier for this passwordless authentication request. Use this ID to resend emails.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xe0\x41\x03R\rauthRequestId\x12\xcc\x01\n\nexpires_at\x18\x02 \x01(\x03\x42\xac\x01\x92\x41\xa5\x01\x32\x96\x01Unix timestamp (seconds since epoch) when the passwordless authentication will expire. After this time, the OTP or magic link will no longer be valid.J\n1748696575\xe0\x41\x03R\texpiresAt\x12\xbe\x01\n\nexpires_in\x18\x03 \x01(\rB\x9e\x01\x92\x41\x97\x01\x32\x8f\x01Number of seconds from now until the passwordless authentication expires. This is a convenience field calculated from the expires_at timestamp.J\x03\x33\x30\x30\xe0\x41\x03R\texpiresIn\x12\xa7\x02\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\xc8\x01\x92\x41\xbc\x01\x32\xb2\x01Type of passwordless authentication that was sent via email. OTP sends a numeric code, LINK sends a clickable magic link, and LINK_OTP provides both options for user convenience.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessType\"\xb4\x06\n\x19VerifyPasswordLessRequest\x12\xbd\x01\n\x04\x63ode\x18\x01 \x01(\tB\xa6\x01\x92\x41\x99\x01\x32\x8c\x01The Verification Code (OTP) received via email. This is typically a 6-digit numeric code that users enter manually to verify their identity.J\x08\"123456\"\xbaH\x06r\x04\x10\x01\x18\x14H\x00R\x04\x63ode\x12\x8a\x02\n\nlink_token\x18\x02 \x01(\tB\xe8\x01\x92\x41\xdb\x01\x32\xb0\x01The unique token from the magic link URL received via email. Extract this token when users click the magic link and are redirected to your application to later verify the user.J&\"afe9d61c-d80d-4020-a8ee-61765ab71cb3\"\xbaH\x06r\x04\x10\x01\x18\x64H\x00R\tlinkToken\x12\xa2\x02\n\x0f\x61uth_request_id\x18\x03 \x01(\tB\xf4\x01\x92\x41\xe8\x01\x32\xaf\x01The authentication request identifier returned from the send passwordless email endpoint. Required when verifying OTP codes to link the verification with the original request.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\x05r\x03\x18\xc8\x01H\x01R\rauthRequestId\x88\x01\x01\x42\x11\n\x0f\x61uth_credentialB\x12\n\x10_auth_request_id\"\xc1\x02\n\x19ResendPasswordlessRequest\x12\xa3\x02\n\x0f\x61uth_request_id\x18\x01 \x01(\tB\xfa\x01\x92\x41\xe9\x01\x32\xb0\x01The authentication request identifier from the original send passwordless email request. Use this to resend the Verification Code (OTP) or Magic Link to the same email address.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\xbaH\nr\x05\x10\x01\x18\xc8\x01\xc8\x01\x01R\rauthRequestId\"\x94\x07\n\x1aVerifyPasswordLessResponse\x12\xbc\x01\n\x05\x65mail\x18\x01 \x01(\tB\xa5\x01\x92\x41\x9e\x01\x32\x83\x01\x45mail address of the successfully authenticated user. This confirms which email account was verified through the passwordless flow.J\x16\"john.doe@example.com\"\xe0\x41\x03R\x05\x65mail\x12\xe8\x01\n\x05state\x18\x02 \x01(\tB\xcc\x01\x92\x41\xc5\x01\x32\xad\x01The custom state parameter that was provided in the original authentication request, returned unchanged. Use this to restore your application\'s context after authentication.J\x13\"kdt7yiag28t341fr1\"\xe0\x41\x03H\x00R\x05state\x88\x01\x01\x12\xcb\x01\n\x08template\x18\x03 \x01(\x0e\x32+.scalekit.v1.auth.passwordless.TemplateTypeB}\x92\x41r2fSpecifies which email template to choose. For User Signin choose SIGNIN and for User Signup use SIGNUPJ\x08\"SIGNIN\"\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x08template\x88\x01\x01\x12\xe6\x01\n\x11passwordless_type\x18\x04 \x01(\x0e\x32/.scalekit.v1.auth.passwordless.PasswordlessTypeB\x87\x01\x92\x41|2sThe type of passwordless authentication that was successfully verified, confirming which method the user completed.J\x05\"OTP\"\xbaH\x05\x82\x01\x02\x10\x01R\x10passwordlessTypeB\x08\n\x06_stateB\x0b\n\t_template*7\n\x0cTemplateType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06SIGNIN\x10\x01\x12\n\n\x06SIGNUP\x10\x02*V\n\x10PasswordlessType\x12!\n\x1dPASSWORDLESS_TYPE_UNSPECIFIED\x10\x00\x12\x07\n\x03OTP\x10\x01\x12\x08\n\x04LINK\x10\x02\x12\x0c\n\x08LINK_OTP\x10\x03\x32\xa8\x0e\n\x13PasswordlessService\x12\xb3\x04\n\x15SendPasswordlessEmail\x12\x36.scalekit.v1.auth.passwordless.SendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\xa8\x03\x92\x41\xf4\x02\n\x10Magic link & OTP\x12\x17Send passwordless email\x1atSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\xd0\x01\n\x03\x32\x30\x30\x12\xc8\x01\n\x8d\x01Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\x12\x36\n4\x1a\x32#/definitions/passwordlessSendPasswordlessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02$\"\x1f/api/v1/passwordless/email/send:\x01*\x12\xd8\x03\n\x17VerifyPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.VerifyPasswordLessRequest\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\"\xc7\x02\x92\x41\x91\x02\n\x10Magic link & OTP\x12\x19Verify passwordless email\x1aMVerify a user\'s identity using either a verification code or magic link tokenJ\x92\x01\n\x03\x32\x30\x30\x12\x8a\x01\nISuccessfully verified the passwordless authentication. Returns user email\x12=\n;\x1a\x39.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/verify:\x01*\x12\xa4\x04\n\x17ResendPasswordlessEmail\x12\x38.scalekit.v1.auth.passwordless.ResendPasswordlessRequest\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\"\x95\x03\x92\x41\xdf\x02\n\x10Magic link & OTP\x12\x19Resend passwordless email\x1a\x62Resend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\xcb\x01\n\x03\x32\x30\x30\x12\xc3\x01\n\x83\x01Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\x12;\n9\x1a\x37.scalekit.v1.auth.passwordless.SendPasswordlessResponse\x82\xb5\x18\x02\x18\x04\x82\xd3\xe4\x93\x02&\"!/api/v1/passwordless/email/resend:\x01*\x1a\xd8\x01\x92\x41\xd4\x01\n\x10Magic link & OTP\x12\xbf\x01\x45ndpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.B=Z;github.com/scalekit-inc/scalekit/pkg/grpc/auth/passwordlessb\x06proto3')
27
27
 
28
28
  _globals = globals()
29
29
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -44,7 +44,7 @@ if not _descriptor._USE_C_DESCRIPTORS:
44
44
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['expires_in']._loaded_options = None
45
45
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['expires_in']._serialized_options = b'\222A{2tTime in seconds until the passwordless authentication expires. If not specified, defaults to 300 seconds (5 minutes)J\003300\340A\001'
46
46
  _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template_variables']._loaded_options = None
47
- _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template_variables']._serialized_options = b'\222A\317\0042\232\004A set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\340A\001\272H\026\232\001\023\020\036\"\006r\004\020\003\030\031*\007r\005\020\001\030\200\002'
47
+ _globals['_SENDPASSWORDLESSREQUEST'].fields_by_name['template_variables']._serialized_options = b'\222A\317\0042\232\004A set of key-value pairs to personalize the email template.\n\n* You may include up to 30 key-value pairs.\n* The following variable names are reserved by the system and cannot be supplied: `otp`, `expiry_time_relative`, `link`, `expire_time`, `expiry_time`.\n* Every variable referenced in your email template must be included as a key-value pair.\n\nUse these variables to insert custom information, such as a team name, URL or the user\'s employee ID. All variables are interpolated before the email is sent, regardless of the email provider.J0{\"custom_variable_key\": \"custom_variable_value\"}\340A\001\272H\024\232\001\021\020\036\"\006r\004\020\002\030\031*\005r\003\030\200\002'
48
48
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['auth_request_id']._loaded_options = None
49
49
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['auth_request_id']._serialized_options = b'\222A\225\0012]Unique identifier for this passwordless authentication request. Use this ID to resend emails.J4\"h5Y8kT5RVwaea5WEgW4n-6C-aO_-fuTUW7Vb9-Rh3AcY9qxZqQ\"\340A\003'
50
50
  _globals['_SENDPASSWORDLESSRESPONSE'].fields_by_name['expires_at']._loaded_options = None
@@ -70,29 +70,29 @@ if not _descriptor._USE_C_DESCRIPTORS:
70
70
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._loaded_options = None
71
71
  _globals['_VERIFYPASSWORDLESSRESPONSE'].fields_by_name['passwordless_type']._serialized_options = b'\222A|2sThe type of passwordless authentication that was successfully verified, confirming which method the user completed.J\005\"OTP\"\272H\005\202\001\002\020\001'
72
72
  _globals['_PASSWORDLESSSERVICE']._loaded_options = None
73
- _globals['_PASSWORDLESSSERVICE']._serialized_options = b'\222A\325\001\n\021Passwordless Auth\022\277\001Endpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.'
73
+ _globals['_PASSWORDLESSSERVICE']._serialized_options = b'\222A\324\001\n\020Magic link & OTP\022\277\001Endpoints for sending and verifying passwordless authentication emails. These APIs allow users to authenticate without passwords by receiving a verification code or magic link in their email.'
74
74
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['SendPasswordlessEmail']._loaded_options = None
75
- _globals['_PASSWORDLESSSERVICE'].methods_by_name['SendPasswordlessEmail']._serialized_options = b'\222A\365\002\n\021Passwordless Auth\022\027Send passwordless email\032tSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\320\001\n\003200\022\310\001\n\215\001Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\0226\n4\0322#/definitions/passwordlessSendPasswordlessResponse\202\265\030\002\030\004\202\323\344\223\002$\"\037/api/v1/passwordless/email/send:\001*'
75
+ _globals['_PASSWORDLESSSERVICE'].methods_by_name['SendPasswordlessEmail']._serialized_options = b'\222A\364\002\n\020Magic link & OTP\022\027Send passwordless email\032tSend a verification email containing either a verification code (OTP), magic link, or both to a user\'s email addressJ\320\001\n\003200\022\310\001\n\215\001Successfully sent passwordless authentication email. Returns the authentication request details including expiration time and auth request ID\0226\n4\0322#/definitions/passwordlessSendPasswordlessResponse\202\265\030\002\030\004\202\323\344\223\002$\"\037/api/v1/passwordless/email/send:\001*'
76
76
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['VerifyPasswordlessEmail']._loaded_options = None
77
- _globals['_PASSWORDLESSSERVICE'].methods_by_name['VerifyPasswordlessEmail']._serialized_options = b'\222A\222\002\n\021Passwordless Auth\022\031Verify passwordless email\032MVerify a user\'s identity using either a verification code or magic link tokenJ\222\001\n\003200\022\212\001\nISuccessfully verified the passwordless authentication. Returns user email\022=\n;\0329.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/verify:\001*'
77
+ _globals['_PASSWORDLESSSERVICE'].methods_by_name['VerifyPasswordlessEmail']._serialized_options = b'\222A\221\002\n\020Magic link & OTP\022\031Verify passwordless email\032MVerify a user\'s identity using either a verification code or magic link tokenJ\222\001\n\003200\022\212\001\nISuccessfully verified the passwordless authentication. Returns user email\022=\n;\0329.scalekit.v1.auth.passwordless.VerifyPasswordLessResponse\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/verify:\001*'
78
78
  _globals['_PASSWORDLESSSERVICE'].methods_by_name['ResendPasswordlessEmail']._loaded_options = None
79
- _globals['_PASSWORDLESSSERVICE'].methods_by_name['ResendPasswordlessEmail']._serialized_options = b'\222A\340\002\n\021Passwordless Auth\022\031Resend passwordless email\032bResend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\313\001\n\003200\022\303\001\n\203\001Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\022;\n9\0327.scalekit.v1.auth.passwordless.SendPasswordlessResponse\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/resend:\001*'
80
- _globals['_TEMPLATETYPE']._serialized_start=5507
81
- _globals['_TEMPLATETYPE']._serialized_end=5562
82
- _globals['_PASSWORDLESSTYPE']._serialized_start=5564
83
- _globals['_PASSWORDLESSTYPE']._serialized_end=5650
79
+ _globals['_PASSWORDLESSSERVICE'].methods_by_name['ResendPasswordlessEmail']._serialized_options = b'\222A\337\002\n\020Magic link & OTP\022\031Resend passwordless email\032bResend a verification email if the user didn\'t receive it or if the previous code/link has expiredJ\313\001\n\003200\022\303\001\n\203\001Successfully resent the passwordless authentication email. Returns updated authentication request details with new expiration time.\022;\n9\0327.scalekit.v1.auth.passwordless.SendPasswordlessResponse\202\265\030\002\030\004\202\323\344\223\002&\"!/api/v1/passwordless/email/resend:\001*'
80
+ _globals['_TEMPLATETYPE']._serialized_start=5505
81
+ _globals['_TEMPLATETYPE']._serialized_end=5560
82
+ _globals['_PASSWORDLESSTYPE']._serialized_start=5562
83
+ _globals['_PASSWORDLESSTYPE']._serialized_end=5648
84
84
  _globals['_SENDPASSWORDLESSREQUEST']._serialized_start=373
85
- _globals['_SENDPASSWORDLESSREQUEST']._serialized_end=2512
86
- _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_start=2383
87
- _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_end=2451
88
- _globals['_SENDPASSWORDLESSRESPONSE']._serialized_start=2515
89
- _globals['_SENDPASSWORDLESSRESPONSE']._serialized_end=3439
90
- _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_start=3442
91
- _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_end=4262
92
- _globals['_RESENDPASSWORDLESSREQUEST']._serialized_start=4265
93
- _globals['_RESENDPASSWORDLESSREQUEST']._serialized_end=4586
94
- _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_start=4589
95
- _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_end=5505
96
- _globals['_PASSWORDLESSSERVICE']._serialized_start=5653
97
- _globals['_PASSWORDLESSSERVICE']._serialized_end=7489
85
+ _globals['_SENDPASSWORDLESSREQUEST']._serialized_end=2510
86
+ _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_start=2381
87
+ _globals['_SENDPASSWORDLESSREQUEST_TEMPLATEVARIABLESENTRY']._serialized_end=2449
88
+ _globals['_SENDPASSWORDLESSRESPONSE']._serialized_start=2513
89
+ _globals['_SENDPASSWORDLESSRESPONSE']._serialized_end=3437
90
+ _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_start=3440
91
+ _globals['_VERIFYPASSWORDLESSREQUEST']._serialized_end=4260
92
+ _globals['_RESENDPASSWORDLESSREQUEST']._serialized_start=4263
93
+ _globals['_RESENDPASSWORDLESSREQUEST']._serialized_end=4584
94
+ _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_start=4587
95
+ _globals['_VERIFYPASSWORDLESSRESPONSE']._serialized_end=5503
96
+ _globals['_PASSWORDLESSSERVICE']._serialized_start=5651
97
+ _globals['_PASSWORDLESSSERVICE']._serialized_end=7483
98
98
  # @@protoc_insertion_point(module_scope)