scalekit-sdk-python 2.7.3__tar.gz → 2.8.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/PKG-INFO +1 -1
  2. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/_version.py +1 -1
  3. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/actions.py +19 -8
  4. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/core.py +1 -1
  5. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/tools.py +8 -4
  6. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/auth_pb2.py +18 -14
  7. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/auth_pb2.pyi +8 -4
  8. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/totp_pb2.py +31 -30
  9. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/totp_pb2.pyi +1 -0
  10. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/clients/clients_pb2.py +81 -89
  11. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/clients/clients_pb2.pyi +4 -12
  12. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connected_accounts/connected_accounts_pb2.py +4 -4
  13. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connected_accounts/connected_accounts_pb2.pyi +2 -0
  14. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connections/connections_pb2.py +88 -86
  15. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connections/connections_pb2.pyi +6 -2
  16. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/domains/domains_pb2.py +14 -12
  17. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/domains/domains_pb2.pyi +4 -2
  18. scalekit_sdk_python-2.8.0/scalekit/v1/emails/emails_pb2.py +314 -0
  19. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/emails/emails_pb2.pyi +1 -0
  20. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/environments/environments_pb2.py +103 -97
  21. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/environments/environments_pb2.pyi +20 -0
  22. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/environments/environments_pb2_grpc.py +36 -0
  23. scalekit_sdk_python-2.8.0/scalekit/v1/errdetails/errdetails_pb2.py +53 -0
  24. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/errdetails/errdetails_pb2.pyi +3 -0
  25. scalekit_sdk_python-2.8.0/scalekit/v1/errdetails/errdetails_pb2_grpc.py +67 -0
  26. scalekit_sdk_python-2.8.0/scalekit/v1/members/members_pb2.py +115 -0
  27. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/members/members_pb2.pyi +1 -0
  28. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/organizations/organizations_pb2.py +86 -80
  29. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/organizations/organizations_pb2.pyi +12 -6
  30. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/providers/providers_pb2.py +38 -36
  31. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/providers/providers_pb2.pyi +4 -2
  32. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/roles/roles_pb2.py +3 -3
  33. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tools/tools_pb2.py +38 -30
  34. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tools/tools_pb2.pyi +10 -2
  35. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/users/users_pb2.py +78 -78
  36. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/workspaces/workspaces_pb2.py +4 -4
  37. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit_sdk_python.egg-info/PKG-INFO +1 -1
  38. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_actions.py +17 -0
  39. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_tools.py +61 -1
  40. scalekit_sdk_python-2.7.3/scalekit/v1/emails/emails_pb2.py +0 -313
  41. scalekit_sdk_python-2.7.3/scalekit/v1/errdetails/errdetails_pb2.py +0 -46
  42. scalekit_sdk_python-2.7.3/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -4
  43. scalekit_sdk_python-2.7.3/scalekit/v1/members/members_pb2.py +0 -114
  44. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/LICENSE +0 -0
  45. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/README.md +0 -0
  46. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/__init__.py +0 -0
  47. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/__init__.py +0 -0
  48. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/expression_pb2.py +0 -0
  49. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/expression_pb2.pyi +0 -0
  50. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/expression_pb2_grpc.py +0 -0
  51. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/priv/__init__.py +0 -0
  52. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/priv/private_pb2.py +0 -0
  53. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/priv/private_pb2.pyi +0 -0
  54. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/priv/private_pb2_grpc.py +0 -0
  55. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/validate_pb2.py +0 -0
  56. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/validate_pb2.pyi +0 -0
  57. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/buf/validate/validate_pb2_grpc.py +0 -0
  58. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/pyproject.toml +0 -0
  59. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/__init__.py +0 -0
  60. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/__init__.py +0 -0
  61. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/__init__.py +0 -0
  62. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/google_adk.py +0 -0
  63. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/langchain.py +0 -0
  64. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/types/__init__.py +0 -0
  65. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/types/google_adk_tool.py +0 -0
  66. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/frameworks/util.py +0 -0
  67. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/__init__.py +0 -0
  68. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/mcp_config.py +0 -0
  69. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/mcp_instance.py +0 -0
  70. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/requests/__init__.py +0 -0
  71. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/requests/create_connected_account_request.py +0 -0
  72. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/requests/mcp_request.py +0 -0
  73. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/requests/tool_request.py +0 -0
  74. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/requests/update_connected_account_request.py +0 -0
  75. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/__init__.py +0 -0
  76. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/create_connected_account_response.py +0 -0
  77. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/create_mcp_config_response.py +0 -0
  78. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/create_mcp_response.py +0 -0
  79. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/delete_connected_account_response.py +0 -0
  80. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/delete_mcp_config_response.py +0 -0
  81. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/delete_mcp_instance_response.py +0 -0
  82. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/ensure_mcp_instance_response.py +0 -0
  83. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/execute_tool_response.py +0 -0
  84. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/get_connected_account_auth_response.py +0 -0
  85. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/get_mcp_instance_auth_state_response.py +0 -0
  86. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/get_mcp_instance_response.py +0 -0
  87. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/get_mcp_response.py +0 -0
  88. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/list_connected_accounts_response.py +0 -0
  89. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/list_mcp_configs_response.py +0 -0
  90. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/list_mcp_instances_response.py +0 -0
  91. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/magic_link_response.py +0 -0
  92. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/update_connected_account_response.py +0 -0
  93. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/update_mcp_config_response.py +0 -0
  94. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/update_mcp_instance_response.py +0 -0
  95. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/responses/verify_connected_account_user_response.py +0 -0
  96. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/tool_input_output.py +0 -0
  97. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/models/tool_mapping.py +0 -0
  98. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/modifier.py +0 -0
  99. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/actions/types.py +0 -0
  100. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/auth.py +0 -0
  101. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/client.py +0 -0
  102. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/common/__init__.py +0 -0
  103. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/common/exceptions.py +0 -0
  104. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/common/scalekit.py +0 -0
  105. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/common/user.py +0 -0
  106. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/connected_accounts.py +0 -0
  107. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/connection.py +0 -0
  108. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/constants/__init__.py +0 -0
  109. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/constants/user.py +0 -0
  110. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/directory.py +0 -0
  111. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/domain.py +0 -0
  112. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/m2m_client.py +0 -0
  113. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/mcp.py +0 -0
  114. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/organization.py +0 -0
  115. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/passwordless.py +0 -0
  116. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/permissions.py +0 -0
  117. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/role.py +0 -0
  118. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/sessions.py +0 -0
  119. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/token.py +0 -0
  120. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/users.py +0 -0
  121. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/utils/__init__.py +0 -0
  122. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/utils/directory.py +0 -0
  123. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/__init__.py +0 -0
  124. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auditlogs/__init__.py +0 -0
  125. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auditlogs/auditlogs_pb2.py +0 -0
  126. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auditlogs/auditlogs_pb2.pyi +0 -0
  127. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +0 -0
  128. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/__init__.py +0 -0
  129. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/auth_pb2_grpc.py +0 -0
  130. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/passwordless_pb2.py +0 -0
  131. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
  132. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
  133. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/totp_pb2_grpc.py +0 -0
  134. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/webauthn_pb2.py +0 -0
  135. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/webauthn_pb2.pyi +0 -0
  136. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/auth/webauthn_pb2_grpc.py +0 -0
  137. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/clients/__init__.py +0 -0
  138. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/clients/clients_pb2_grpc.py +0 -0
  139. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/commons/__init__.py +0 -0
  140. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/commons/commons_pb2.py +0 -0
  141. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/commons/commons_pb2.pyi +0 -0
  142. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
  143. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connected_accounts/__init__.py +0 -0
  144. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connected_accounts/connected_accounts_pb2_grpc.py +0 -0
  145. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connections/__init__.py +0 -0
  146. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/connections/connections_pb2_grpc.py +0 -0
  147. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/directories/__init__.py +0 -0
  148. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/directories/directories_pb2.py +0 -0
  149. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/directories/directories_pb2.pyi +0 -0
  150. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
  151. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/domains/__init__.py +0 -0
  152. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
  153. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/emails/__init__.py +0 -0
  154. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
  155. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/environments/__init__.py +0 -0
  156. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/errdetails/__init__.py +0 -0
  157. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/events/__init__.py +0 -0
  158. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/events/events_pb2.py +0 -0
  159. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/events/events_pb2.pyi +0 -0
  160. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/events/events_pb2_grpc.py +0 -0
  161. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/interceptors/__init__.py +0 -0
  162. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/interceptors/interceptors_pb2.py +0 -0
  163. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/interceptors/interceptors_pb2.pyi +0 -0
  164. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/interceptors/interceptors_pb2_grpc.py +0 -0
  165. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/keys/__init__.py +0 -0
  166. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/keys/keys_pb2.py +0 -0
  167. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/keys/keys_pb2.pyi +0 -0
  168. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/keys/keys_pb2_grpc.py +0 -0
  169. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/mcp/__init__.py +0 -0
  170. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/mcp/mcp_pb2.py +0 -0
  171. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/mcp/mcp_pb2.pyi +0 -0
  172. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/mcp/mcp_pb2_grpc.py +0 -0
  173. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/members/__init__.py +0 -0
  174. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/members/members_pb2_grpc.py +0 -0
  175. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/migrations/__init__.py +0 -0
  176. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/migrations/migrations_pb2.py +0 -0
  177. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
  178. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
  179. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/options/__init__.py +0 -0
  180. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/options/options_pb2.py +0 -0
  181. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/options/options_pb2.pyi +0 -0
  182. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/options/options_pb2_grpc.py +0 -0
  183. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/organizations/__init__.py +0 -0
  184. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
  185. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/providers/__init__.py +0 -0
  186. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/providers/providers_pb2_grpc.py +0 -0
  187. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/roles/__init__.py +0 -0
  188. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/roles/roles_pb2.pyi +0 -0
  189. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/roles/roles_pb2_grpc.py +0 -0
  190. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/secrets/__init__.py +0 -0
  191. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/secrets/secrets_pb2.py +0 -0
  192. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/secrets/secrets_pb2.pyi +0 -0
  193. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/secrets/secrets_pb2_grpc.py +0 -0
  194. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/sessions/__init__.py +0 -0
  195. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/sessions/sessions_pb2.py +0 -0
  196. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/sessions/sessions_pb2.pyi +0 -0
  197. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/sessions/sessions_pb2_grpc.py +0 -0
  198. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tokens/__init__.py +0 -0
  199. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tokens/tokens_pb2.py +0 -0
  200. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tokens/tokens_pb2.pyi +0 -0
  201. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tokens/tokens_pb2_grpc.py +0 -0
  202. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tools/__init__.py +0 -0
  203. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/tools/tools_pb2_grpc.py +0 -0
  204. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/user_attributes/__init__.py +0 -0
  205. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
  206. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
  207. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
  208. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/users/__init__.py +0 -0
  209. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/users/users_pb2.pyi +0 -0
  210. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/users/users_pb2_grpc.py +0 -0
  211. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/webhooks/__init__.py +0 -0
  212. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
  213. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
  214. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
  215. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/workspaces/__init__.py +0 -0
  216. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/workspaces/workspaces_pb2.pyi +0 -0
  217. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +0 -0
  218. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit/webauthn.py +0 -0
  219. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit_sdk_python.egg-info/SOURCES.txt +0 -0
  220. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
  221. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit_sdk_python.egg-info/requires.txt +0 -0
  222. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
  223. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/setup.cfg +0 -0
  224. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/setup.py +0 -0
  225. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_connected_accounts.py +0 -0
  226. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_connection.py +0 -0
  227. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_directory.py +0 -0
  228. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_domain.py +0 -0
  229. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_m2m_client.py +0 -0
  230. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_mcp.py +0 -0
  231. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_org_roles.py +0 -0
  232. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_organization.py +0 -0
  233. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_passwordless.py +0 -0
  234. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_permissions.py +0 -0
  235. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_role_defaults_dependent.py +0 -0
  236. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_roles.py +0 -0
  237. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_sessions.py +0 -0
  238. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_tokens.py +0 -0
  239. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_user_roles_permissions.py +0 -0
  240. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_users.py +0 -0
  241. {scalekit_sdk_python-2.7.3 → scalekit_sdk_python-2.8.0}/tests/test_webauthn_credentials.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalekit-sdk-python
3
- Version: 2.7.3
3
+ Version: 2.8.0
4
4
  Summary: Scalekit official Python SDK
5
5
  Home-page: https://github.com/scalekit-inc/scalekit-sdk-python
6
6
  Author: Team Scalekit
@@ -1,3 +1,3 @@
1
1
  # Single source of truth for the SDK version.
2
2
  # Import this in setup.py and scalekit/core.py — never hardcode the version elsewhere.
3
- __version__ = "2.7.3"
3
+ __version__ = "2.8.0"
@@ -94,35 +94,46 @@ class ActionClient:
94
94
  identifier: Optional[str] = None,
95
95
  tool_request: Optional[ToolRequest] = None,
96
96
  connected_account_id: Optional[str] = None,
97
+ connection_name: Optional[str] = None,
97
98
  **kwargs
98
99
  ) -> ExecuteToolResponse:
99
100
  """
100
101
  Execute a tool with the given parameters.
101
-
102
+
102
103
  Args:
103
104
  tool_input: Input data for the tool execution (required)
104
105
  tool_name: Name of the tool to execute (required)
105
- identifier: Unique identifier for this execution (required)
106
- tool_request: Optional ToolRequest configuration object
107
- connected_account_id: Optional connected account ID string
108
106
  **kwargs: Additional optional parameters
109
-
107
+
108
+ Account resolution (one of the following combinations is required):
109
+ connected_account_id: ID of the connected account to use. Provide this
110
+ OR the (identifier + connection_name) pair — not both.
111
+ identifier + connection_name: Resolve the connected account by user
112
+ identifier (e.g. a user ID or email) together with the connection
113
+ name (e.g. 'slack-b1fqL2Dr', 'notion-arffP5Ff').
114
+
110
115
  Returns:
111
116
  ExecuteToolResponse containing execution results
117
+
118
+ Raises:
119
+ ValueError: If tool_name is not provided, or if neither
120
+ connected_account_id nor the (identifier, connection_name) pair
121
+ is supplied.
112
122
  """
113
123
  # Validate required parameters
114
124
  if not tool_name:
115
125
  raise ValueError("tool_name is required")
116
-
126
+
117
127
  # Apply pre-modifications to the input parameters
118
128
  modified_tool_input = apply_pre_modifiers(tool_name, tool_input, self._modifiers)
119
-
129
+
120
130
  # Call the existing tools.execute_tool which returns (response, metadata) tuple
121
131
  result_tuple = self.tools.execute_tool(
122
132
  tool_name=tool_name,
123
133
  identifier=identifier,
124
134
  params=modified_tool_input,
125
- connected_account_id=connected_account_id
135
+ connected_account_id=connected_account_id,
136
+ connection_name=connection_name
126
137
  )
127
138
 
128
139
  # Extract the response[0] (the actual ExecuteToolResponse proto object)
@@ -29,7 +29,7 @@ class CoreClient:
29
29
 
30
30
  sdk_version = f"Scalekit-Python/{_sdk_version}"
31
31
  # YYYYMMDD
32
- api_version = "20260403"
32
+ api_version = "20260421"
33
33
  user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
34
34
 
35
35
  def __init__(self, env_url, client_id, client_secret):
@@ -94,7 +94,8 @@ class ToolsClient:
94
94
  tool_name: str,
95
95
  identifier: str,
96
96
  params: Optional[dict] = None,
97
- connected_account_id: Optional[str] = None
97
+ connected_account_id: Optional[str] = None,
98
+ connection_name: Optional[str] = None
98
99
  ) -> ExecuteToolResponse:
99
100
  """
100
101
  Method to execute a tool using a connected account
@@ -107,23 +108,26 @@ class ToolsClient:
107
108
  :type : ``` dict ```
108
109
  :param connected_account_id : ID of the connected account to use for tool execution
109
110
  :type : ``` str ```
111
+ :param connection_name : Name of the connector/provider (e.g., 'Google Workspace', 'Slack')
112
+ :type : ``` str ```
110
113
 
111
114
  :returns:
112
115
  Execute Tool Response
113
116
  """
114
117
  from google.protobuf import struct_pb2
115
-
118
+
116
119
  params_struct = None
117
120
  if params:
118
121
  params_struct = struct_pb2.Struct()
119
122
  params_struct.update(params)
120
-
123
+
121
124
  return self.core_client.grpc_exec(
122
125
  self.tool_service.ExecuteTool.with_call,
123
126
  ExecuteToolRequest(
124
127
  tool_name=tool_name,
125
128
  identifier=identifier,
126
129
  params=params_struct,
127
- connected_account_id=connected_account_id
130
+ connected_account_id=connected_account_id,
131
+ connector=connection_name
128
132
  ),
129
133
  )
@@ -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\"\xab\x01\n\x0ePortalSettings\x12\x98\x01\n\x0f\x63ustom_branding\x18\x01 \x01(\x08\x42o\x92\x41l2dIndicates whether custom portal branding is enabled for this workspace based on billing subscriptionJ\x04trueR\x0e\x63ustomBranding\"\xb2\x01\n\x1dGetAuthCustomizationsResponse\x12N\n\x16\x63ustomization_settings\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x15\x63ustomizationSettings\x12\x41\n\x08settings\x18\x03 \x01(\x0b\x32 .scalekit.v1.auth.PortalSettingsB\x03\xe0\x41\x03R\x08settings\"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\"\xe1\r\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\x12\xb1\x01\n\x18organization_external_id\x18\x0f \x01(\tBr\x92\x41o2EIdentifier for the user\xe2\x80\x99s organization within the identity providerJ&\"132d085d-d89d-4a2e-95bb-49bde680d14f\"H\x00R\x16organizationExternalId\x88\x01\x01\x42\x1b\n\x19_organization_external_id\"\x85\x01\n\x14GetAuthStateResponse\x12:\n\nauth_state\x18\x01 \x01(\x0e\x32\x1b.scalekit.v1.auth.AuthStateR\tauthState\x12\x31\n\x04user\x18\x02 \x01(\x0b\x32\x1d.scalekit.v1.auth.UserDetailsR\x04user\"\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*\xb4\x04\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\x12 \n\x1cVERIFICATION_MAGIC_LINK_SENT\x10\x10\x12$\n VERIFICATION_MAGIC_LINK_OTP_SENT\x10\x11\x12\x19\n\x15VERIFICATION_OTP_SENT\x10\x12\x12\x1a\n\x16VERIFICATION_COMPLETED\x10\x13\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')
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\"\xab\x01\n\x0ePortalSettings\x12\x98\x01\n\x0f\x63ustom_branding\x18\x01 \x01(\x08\x42o\x92\x41l2dIndicates whether custom portal branding is enabled for this workspace based on billing subscriptionJ\x04trueR\x0e\x63ustomBranding\"\xb2\x01\n\x1dGetAuthCustomizationsResponse\x12N\n\x16\x63ustomization_settings\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructR\x15\x63ustomizationSettings\x12\x41\n\x08settings\x18\x03 \x01(\x0b\x32 .scalekit.v1.auth.PortalSettingsB\x03\xe0\x41\x03R\x08settings\"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\"\xb6\x0e\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\x12\xb1\x01\n\x18organization_external_id\x18\x0f \x01(\tBr\x92\x41o2EIdentifier for the user\xe2\x80\x99s organization within the identity providerJ&\"132d085d-d89d-4a2e-95bb-49bde680d14f\"H\x00R\x16organizationExternalId\x88\x01\x01\x12S\n\x05roles\x18\x10 \x03(\tB=\x92\x41:2#List of roles assigned to the user.J\x13[\"admin\", \"editor\"]R\x05rolesB\x1b\n\x19_organization_external_id\"\xb1\x02\n\x14GetAuthStateResponse\x12:\n\nauth_state\x18\x01 \x01(\x0e\x32\x1b.scalekit.v1.auth.AuthStateR\tauthState\x12\x31\n\x04user\x18\x02 \x01(\x0b\x32\x1d.scalekit.v1.auth.UserDetailsR\x04user\x12\xa9\x01\n\nlogin_hint\x18\x03 \x01(\tB\x89\x01\x92\x41\x85\x01\x32oLogin hint from the original authorize request. Typically an email address used to pre-fill the login UI input.J\x12\"user@example.com\"R\tloginHint\"\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*\xb4\x04\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\x12 \n\x1cVERIFICATION_MAGIC_LINK_SENT\x10\x10\x12$\n VERIFICATION_MAGIC_LINK_OTP_SENT\x10\x11\x12\x19\n\x15VERIFICATION_OTP_SENT\x10\x12\x12\x1a\n\x16VERIFICATION_COMPLETED\x10\x13\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)
@@ -93,6 +93,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
93
93
  _globals['_USER'].fields_by_name['custom_attributes']._serialized_options = b'\222A\247\0012mCustom attributes for the user, represented as a key-value map. Used for additional identity provider claims.J6{\"department\": \"Engineering\", \"employee_id\": \"E12345\"}'
94
94
  _globals['_USER'].fields_by_name['organization_external_id']._loaded_options = None
95
95
  _globals['_USER'].fields_by_name['organization_external_id']._serialized_options = b'\222Ao2EIdentifier for the user\342\200\231s organization within the identity providerJ&\"132d085d-d89d-4a2e-95bb-49bde680d14f\"'
96
+ _globals['_USER'].fields_by_name['roles']._loaded_options = None
97
+ _globals['_USER'].fields_by_name['roles']._serialized_options = b'\222A:2#List of roles assigned to the user.J\023[\"admin\", \"editor\"]'
98
+ _globals['_GETAUTHSTATERESPONSE'].fields_by_name['login_hint']._loaded_options = None
99
+ _globals['_GETAUTHSTATERESPONSE'].fields_by_name['login_hint']._serialized_options = b'\222A\205\0012oLogin hint from the original authorize request. Typically an email address used to pre-fill the login UI input.J\022\"user@example.com\"'
96
100
  _globals['_GETAUTHERRORREQUEST'].fields_by_name['error_id']._loaded_options = None
97
101
  _globals['_GETAUTHERRORREQUEST'].fields_by_name['error_id']._serialized_options = b'\222AH2.Unique identifier for the authentication errorJ\026\"err_1234567890abcdef\"\272H\014r\n\020\001\030@:\004err_'
98
102
  _globals['_AUTHSERVICE'].methods_by_name['ListAuthMethods']._loaded_options = None
@@ -119,10 +123,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
119
123
  _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'
120
124
  _globals['_AUTHSERVICE'].methods_by_name['UpdateLoginUserDetails']._loaded_options = None
121
125
  _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'
122
- _globals['_INTENT']._serialized_start=6442
123
- _globals['_INTENT']._serialized_end=6500
124
- _globals['_AUTHSTATE']._serialized_start=6503
125
- _globals['_AUTHSTATE']._serialized_end=7067
126
+ _globals['_INTENT']._serialized_start=6699
127
+ _globals['_INTENT']._serialized_end=6757
128
+ _globals['_AUTHSTATE']._serialized_start=6760
129
+ _globals['_AUTHSTATE']._serialized_end=7324
126
130
  _globals['_LISTAUTHMETHODSREQUEST']._serialized_start=423
127
131
  _globals['_LISTAUTHMETHODSREQUEST']._serialized_end=471
128
132
  _globals['_LISTAUTHMETHODSRESPONSE']._serialized_start=473
@@ -162,13 +166,13 @@ if not _descriptor._USE_C_DESCRIPTORS:
162
166
  _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_start=3964
163
167
  _globals['_UPDATELOGINUSERDETAILSREQUEST']._serialized_end=4306
164
168
  _globals['_USER']._serialized_start=4309
165
- _globals['_USER']._serialized_end=6070
166
- _globals['_GETAUTHSTATERESPONSE']._serialized_start=6073
167
- _globals['_GETAUTHSTATERESPONSE']._serialized_end=6206
168
- _globals['_GETAUTHERRORREQUEST']._serialized_start=6209
169
- _globals['_GETAUTHERRORREQUEST']._serialized_end=6349
170
- _globals['_GETAUTHERRORRESPONSE']._serialized_start=6351
171
- _globals['_GETAUTHERRORRESPONSE']._serialized_end=6440
172
- _globals['_AUTHSERVICE']._serialized_start=7070
173
- _globals['_AUTHSERVICE']._serialized_end=9157
169
+ _globals['_USER']._serialized_end=6155
170
+ _globals['_GETAUTHSTATERESPONSE']._serialized_start=6158
171
+ _globals['_GETAUTHSTATERESPONSE']._serialized_end=6463
172
+ _globals['_GETAUTHERRORREQUEST']._serialized_start=6466
173
+ _globals['_GETAUTHERRORREQUEST']._serialized_end=6606
174
+ _globals['_GETAUTHERRORRESPONSE']._serialized_start=6608
175
+ _globals['_GETAUTHERRORRESPONSE']._serialized_end=6697
176
+ _globals['_AUTHSERVICE']._serialized_start=7327
177
+ _globals['_AUTHSERVICE']._serialized_end=9414
174
178
  # @@protoc_insertion_point(module_scope)
@@ -234,7 +234,7 @@ class UpdateLoginUserDetailsRequest(_message.Message):
234
234
  def __init__(self, connection_id: _Optional[str] = ..., login_request_id: _Optional[str] = ..., user: _Optional[_Union[User, _Mapping]] = ...) -> None: ...
235
235
 
236
236
  class User(_message.Message):
237
- __slots__ = ("sub", "email", "given_name", "family_name", "email_verified", "phone_number", "phone_number_verified", "name", "preferred_username", "picture", "gender", "locale", "groups", "custom_attributes", "organization_external_id")
237
+ __slots__ = ("sub", "email", "given_name", "family_name", "email_verified", "phone_number", "phone_number_verified", "name", "preferred_username", "picture", "gender", "locale", "groups", "custom_attributes", "organization_external_id", "roles")
238
238
  SUB_FIELD_NUMBER: _ClassVar[int]
239
239
  EMAIL_FIELD_NUMBER: _ClassVar[int]
240
240
  GIVEN_NAME_FIELD_NUMBER: _ClassVar[int]
@@ -250,6 +250,7 @@ class User(_message.Message):
250
250
  GROUPS_FIELD_NUMBER: _ClassVar[int]
251
251
  CUSTOM_ATTRIBUTES_FIELD_NUMBER: _ClassVar[int]
252
252
  ORGANIZATION_EXTERNAL_ID_FIELD_NUMBER: _ClassVar[int]
253
+ ROLES_FIELD_NUMBER: _ClassVar[int]
253
254
  sub: str
254
255
  email: str
255
256
  given_name: str
@@ -265,15 +266,18 @@ class User(_message.Message):
265
266
  groups: _containers.RepeatedScalarFieldContainer[str]
266
267
  custom_attributes: _struct_pb2.Struct
267
268
  organization_external_id: str
268
- def __init__(self, sub: _Optional[str] = ..., email: _Optional[str] = ..., given_name: _Optional[str] = ..., family_name: _Optional[str] = ..., email_verified: bool = ..., phone_number: _Optional[str] = ..., phone_number_verified: bool = ..., name: _Optional[str] = ..., preferred_username: _Optional[str] = ..., picture: _Optional[str] = ..., gender: _Optional[str] = ..., locale: _Optional[str] = ..., groups: _Optional[_Iterable[str]] = ..., custom_attributes: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., organization_external_id: _Optional[str] = ...) -> None: ...
269
+ roles: _containers.RepeatedScalarFieldContainer[str]
270
+ def __init__(self, sub: _Optional[str] = ..., email: _Optional[str] = ..., given_name: _Optional[str] = ..., family_name: _Optional[str] = ..., email_verified: bool = ..., phone_number: _Optional[str] = ..., phone_number_verified: bool = ..., name: _Optional[str] = ..., preferred_username: _Optional[str] = ..., picture: _Optional[str] = ..., gender: _Optional[str] = ..., locale: _Optional[str] = ..., groups: _Optional[_Iterable[str]] = ..., custom_attributes: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., organization_external_id: _Optional[str] = ..., roles: _Optional[_Iterable[str]] = ...) -> None: ...
269
271
 
270
272
  class GetAuthStateResponse(_message.Message):
271
- __slots__ = ("auth_state", "user")
273
+ __slots__ = ("auth_state", "user", "login_hint")
272
274
  AUTH_STATE_FIELD_NUMBER: _ClassVar[int]
273
275
  USER_FIELD_NUMBER: _ClassVar[int]
276
+ LOGIN_HINT_FIELD_NUMBER: _ClassVar[int]
274
277
  auth_state: AuthState
275
278
  user: UserDetails
276
- def __init__(self, auth_state: _Optional[_Union[AuthState, str]] = ..., user: _Optional[_Union[UserDetails, _Mapping]] = ...) -> None: ...
279
+ login_hint: str
280
+ def __init__(self, auth_state: _Optional[_Union[AuthState, str]] = ..., user: _Optional[_Union[UserDetails, _Mapping]] = ..., login_hint: _Optional[str] = ...) -> None: ...
277
281
 
278
282
  class GetAuthErrorRequest(_message.Message):
279
283
  __slots__ = ("error_id",)
@@ -15,6 +15,7 @@ _sym_db = _symbol_database.Default()
15
15
  from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
16
16
  from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
17
17
  from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2
18
+ from google.api import visibility_pb2 as google_dot_api_dot_visibility__pb2
18
19
  from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
19
20
  from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
20
21
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
@@ -23,7 +24,7 @@ from scalekit.v1.commons import commons_pb2 as scalekit_dot_v1_dot_commons_dot_c
23
24
  from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
24
25
 
25
26
 
26
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bscalekit/v1/auth/totp.proto\x12\x15scalekit.v1.auth.totp\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\"t\n\x17TOTPRegistrationRequest\x12Y\n\x11totp_registration\x18\x01 \x01(\x0b\x32\'.scalekit.v1.auth.totp.TOTPRegistrationB\x03\xbaH\x00R\x10totpRegistration\"u\n\x18TOTPRegistrationResponse\x12Y\n\x11totp_registration\x18\x01 \x01(\x0b\x32\'.scalekit.v1.auth.totp.TOTPRegistrationB\x03\xbaH\x00R\x10totpRegistration\"\x84\x07\n\x10TOTPRegistration\x12{\n\x02id\x18\x01 \x01(\tBk\x92\x41h2MUnique scalekit-generated identifier that uniquely references an organizationJ\x17\"org_59615193906282635\"R\x02id\x12\x8c\x01\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBO\x92\x41I2+Timestamp when the organization was createdJ\x1a\"2025-02-15T06:23:44.560Z\"\xe0\x41\x02R\ncreateTime\x12\x8e\x01\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBQ\x92\x41N20Timestamp when the organization was last updatedJ\x1a\"2025-02-15T06:23:44.560Z\"R\nupdateTime\x12y\n\x07user_id\x18\x04 \x01(\tB^\x92\x41L21The user ID associated with the TOTP registrationJ\x17\"usr_59615193906282635\"\xbaH\x0cr\n\x10\x01\x18 :\x04usr_H\x00R\x06userId\x12|\n\x0c\x61\x63\x63ount_name\x18\x05 \x01(\tBW\x92\x41J26The account name associated with the TOTP registrationJ\x10\"me@example.com\"\xbaH\x07r\x05\x10\x01\x18\xe3\x02H\x00R\x0b\x61\x63\x63ountName\x12\xb2\x01\n\x0bqr_code_uri\x18\x06 \x01(\tB\x8c\x01\x92\x41|2+The URI for the QR code used to set up TOTPJM\"otpauth://totp/Scalekit:usr_59615193906282635?secret=ABC123&issuer=Scalekit\"\xe0\x41\x03\xbaH\x07r\x05\x10\x01\x18\x80\x08H\x01R\tqrCodeUri\x88\x01\x01\x42\x15\n\x13UserIdOrAccountNameB\x0e\n\x0c_qr_code_uri\"l\n\x1d\x45nableRegistrationTOTPRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"[\n\x1e\x45nableRegistrationTOTPResponse\x12\x16\n\x02id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x02id\x12!\n\x0c\x62\x61\x63kup_codes\x18\x03 \x03(\tR\x0b\x62\x61\x63kupCodes\"m\n\x1e\x44isableRegistrationTOTPRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"\x87\x01\n\x15GenerateQRCodeRequest\x12-\n\x0e\x65nvironment_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\renvironmentId\x12&\n\nidentifier\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nidentifier\x12\x17\n\x07is_user\x18\x03 \x01(\x08R\x06isUser\"1\n\x16GenerateQRCodeResponse\x12\x17\n\x07qr_code\x18\x01 \x01(\tR\x06qrCode\"T\n\x15VerifyUserCodeRequest\x12\x1f\n\x07user_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"*\n\x12VerifyCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"l\n\x1dVerifyRegistrationCodeRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode2\xdc\x06\n\x0bTOTPService\x12\xab\x01\n\x0cRegisterTOTP\x12..scalekit.v1.auth.totp.TOTPRegistrationRequest\x1a/.scalekit.v1.auth.totp.TOTPRegistrationResponse\":\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02.\"\x19/api/v1/totp/registration:\x11totp_registration\x12\xb1\x01\n\nEnableTOTP\x12\x34.scalekit.v1.auth.totp.EnableRegistrationTOTPRequest\x1a\x35.scalekit.v1.auth.totp.EnableRegistrationTOTPResponse\"6\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02*\"%/api/v1/totp/{registration_id}/enable:\x01*\x12\x9e\x01\n\x0eVerifyUserCode\x12,.scalekit.v1.auth.totp.VerifyUserCodeRequest\x1a).scalekit.v1.auth.totp.VerifyCodeResponse\"3\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02\'\"\"/api/v1/user/{user_id}/totp:verify:\x01*\x12\xb1\x01\n\x16VerifyRegistrationCode\x12\x34.scalekit.v1.auth.totp.VerifyRegistrationCodeRequest\x1a).scalekit.v1.auth.totp.VerifyCodeResponse\"6\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02*\"%/api/v1/totp/{registration_id}/verify:\x01*\x12\x95\x01\n\x0b\x44isableTOTP\x12\x35.scalekit.v1.auth.totp.DisableRegistrationTOTPRequest\x1a\x16.google.protobuf.Empty\"7\x82\xb5\x18\x02\x18@\x82\xd3\xe4\x93\x02+\"&/api/v1/totp/{registration_id}/disable:\x01*B5Z3github.com/scalekit-inc/scalekit/pkg/grpc/auth/totpb\x06proto3')
27
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bscalekit/v1/auth/totp.proto\x12\x15scalekit.v1.auth.totp\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/options/options.proto\"t\n\x17TOTPRegistrationRequest\x12Y\n\x11totp_registration\x18\x01 \x01(\x0b\x32\'.scalekit.v1.auth.totp.TOTPRegistrationB\x03\xbaH\x00R\x10totpRegistration\"u\n\x18TOTPRegistrationResponse\x12Y\n\x11totp_registration\x18\x01 \x01(\x0b\x32\'.scalekit.v1.auth.totp.TOTPRegistrationB\x03\xbaH\x00R\x10totpRegistration\"\x84\x07\n\x10TOTPRegistration\x12{\n\x02id\x18\x01 \x01(\tBk\x92\x41h2MUnique scalekit-generated identifier that uniquely references an organizationJ\x17\"org_59615193906282635\"R\x02id\x12\x8c\x01\n\x0b\x63reate_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBO\x92\x41I2+Timestamp when the organization was createdJ\x1a\"2025-02-15T06:23:44.560Z\"\xe0\x41\x02R\ncreateTime\x12\x8e\x01\n\x0bupdate_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBQ\x92\x41N20Timestamp when the organization was last updatedJ\x1a\"2025-02-15T06:23:44.560Z\"R\nupdateTime\x12y\n\x07user_id\x18\x04 \x01(\tB^\x92\x41L21The user ID associated with the TOTP registrationJ\x17\"usr_59615193906282635\"\xbaH\x0cr\n\x10\x01\x18 :\x04usr_H\x00R\x06userId\x12|\n\x0c\x61\x63\x63ount_name\x18\x05 \x01(\tBW\x92\x41J26The account name associated with the TOTP registrationJ\x10\"me@example.com\"\xbaH\x07r\x05\x10\x01\x18\xe3\x02H\x00R\x0b\x61\x63\x63ountName\x12\xb2\x01\n\x0bqr_code_uri\x18\x06 \x01(\tB\x8c\x01\x92\x41|2+The URI for the QR code used to set up TOTPJM\"otpauth://totp/Scalekit:usr_59615193906282635?secret=ABC123&issuer=Scalekit\"\xe0\x41\x03\xbaH\x07r\x05\x10\x01\x18\x80\x08H\x01R\tqrCodeUri\x88\x01\x01\x42\x15\n\x13UserIdOrAccountNameB\x0e\n\x0c_qr_code_uri\"l\n\x1d\x45nableRegistrationTOTPRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"[\n\x1e\x45nableRegistrationTOTPResponse\x12\x16\n\x02id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x02id\x12!\n\x0c\x62\x61\x63kup_codes\x18\x03 \x03(\tR\x0b\x62\x61\x63kupCodes\"m\n\x1e\x44isableRegistrationTOTPRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"\x87\x01\n\x15GenerateQRCodeRequest\x12-\n\x0e\x65nvironment_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\renvironmentId\x12&\n\nidentifier\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nidentifier\x12\x17\n\x07is_user\x18\x03 \x01(\x08R\x06isUser\"1\n\x16GenerateQRCodeResponse\x12\x17\n\x07qr_code\x18\x01 \x01(\tR\x06qrCode\"T\n\x15VerifyUserCodeRequest\x12\x1f\n\x07user_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode\"*\n\x12VerifyCodeResponse\x12\x14\n\x05valid\x18\x01 \x01(\x08R\x05valid\"l\n\x1dVerifyRegistrationCodeRequest\x12/\n\x0fregistration_id\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0eregistrationId\x12\x1a\n\x04\x63ode\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04\x63ode2\xa7\x07\n\x0bTOTPService\x12\xba\x01\n\x0cRegisterTOTP\x12..scalekit.v1.auth.totp.TOTPRegistrationRequest\x1a/.scalekit.v1.auth.totp.TOTPRegistrationResponse\"I\x82\xb5\x18\x02\x18\x44\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02.\"\x19/api/v1/totp/registration:\x11totp_registration\x12\xc0\x01\n\nEnableTOTP\x12\x34.scalekit.v1.auth.totp.EnableRegistrationTOTPRequest\x1a\x35.scalekit.v1.auth.totp.EnableRegistrationTOTPResponse\"E\x82\xb5\x18\x02\x18\x44\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02*\"%/api/v1/totp/{registration_id}/enable:\x01*\x12\xad\x01\n\x0eVerifyUserCode\x12,.scalekit.v1.auth.totp.VerifyUserCodeRequest\x1a).scalekit.v1.auth.totp.VerifyCodeResponse\"B\x82\xb5\x18\x02\x18\x44\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02\'\"\"/api/v1/user/{user_id}/totp:verify:\x01*\x12\xc0\x01\n\x16VerifyRegistrationCode\x12\x34.scalekit.v1.auth.totp.VerifyRegistrationCodeRequest\x1a).scalekit.v1.auth.totp.VerifyCodeResponse\"E\x82\xb5\x18\x02\x18\x44\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02*\"%/api/v1/totp/{registration_id}/verify:\x01*\x12\xa4\x01\n\x0b\x44isableTOTP\x12\x35.scalekit.v1.auth.totp.DisableRegistrationTOTPRequest\x1a\x16.google.protobuf.Empty\"F\x82\xb5\x18\x02\x18\x44\xfa\xd2\xe4\x93\x02\t\x12\x07PREVIEW\x82\xd3\xe4\x93\x02+\"&/api/v1/totp/{registration_id}/disable:\x01*B5Z3github.com/scalekit-inc/scalekit/pkg/grpc/auth/totpb\x06proto3')
27
28
 
28
29
  _globals = globals()
29
30
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -70,37 +71,37 @@ if not _descriptor._USE_C_DESCRIPTORS:
70
71
  _globals['_VERIFYREGISTRATIONCODEREQUEST'].fields_by_name['code']._loaded_options = None
71
72
  _globals['_VERIFYREGISTRATIONCODEREQUEST'].fields_by_name['code']._serialized_options = b'\272H\003\310\001\001'
72
73
  _globals['_TOTPSERVICE'].methods_by_name['RegisterTOTP']._loaded_options = None
73
- _globals['_TOTPSERVICE'].methods_by_name['RegisterTOTP']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002.\"\031/api/v1/totp/registration:\021totp_registration'
74
+ _globals['_TOTPSERVICE'].methods_by_name['RegisterTOTP']._serialized_options = b'\202\265\030\002\030D\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002.\"\031/api/v1/totp/registration:\021totp_registration'
74
75
  _globals['_TOTPSERVICE'].methods_by_name['EnableTOTP']._loaded_options = None
75
- _globals['_TOTPSERVICE'].methods_by_name['EnableTOTP']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002*\"%/api/v1/totp/{registration_id}/enable:\001*'
76
+ _globals['_TOTPSERVICE'].methods_by_name['EnableTOTP']._serialized_options = b'\202\265\030\002\030D\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002*\"%/api/v1/totp/{registration_id}/enable:\001*'
76
77
  _globals['_TOTPSERVICE'].methods_by_name['VerifyUserCode']._loaded_options = None
77
- _globals['_TOTPSERVICE'].methods_by_name['VerifyUserCode']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002\'\"\"/api/v1/user/{user_id}/totp:verify:\001*'
78
+ _globals['_TOTPSERVICE'].methods_by_name['VerifyUserCode']._serialized_options = b'\202\265\030\002\030D\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002\'\"\"/api/v1/user/{user_id}/totp:verify:\001*'
78
79
  _globals['_TOTPSERVICE'].methods_by_name['VerifyRegistrationCode']._loaded_options = None
79
- _globals['_TOTPSERVICE'].methods_by_name['VerifyRegistrationCode']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002*\"%/api/v1/totp/{registration_id}/verify:\001*'
80
+ _globals['_TOTPSERVICE'].methods_by_name['VerifyRegistrationCode']._serialized_options = b'\202\265\030\002\030D\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002*\"%/api/v1/totp/{registration_id}/verify:\001*'
80
81
  _globals['_TOTPSERVICE'].methods_by_name['DisableTOTP']._loaded_options = None
81
- _globals['_TOTPSERVICE'].methods_by_name['DisableTOTP']._serialized_options = b'\202\265\030\002\030@\202\323\344\223\002+\"&/api/v1/totp/{registration_id}/disable:\001*'
82
- _globals['_TOTPREGISTRATIONREQUEST']._serialized_start=356
83
- _globals['_TOTPREGISTRATIONREQUEST']._serialized_end=472
84
- _globals['_TOTPREGISTRATIONRESPONSE']._serialized_start=474
85
- _globals['_TOTPREGISTRATIONRESPONSE']._serialized_end=591
86
- _globals['_TOTPREGISTRATION']._serialized_start=594
87
- _globals['_TOTPREGISTRATION']._serialized_end=1494
88
- _globals['_ENABLEREGISTRATIONTOTPREQUEST']._serialized_start=1496
89
- _globals['_ENABLEREGISTRATIONTOTPREQUEST']._serialized_end=1604
90
- _globals['_ENABLEREGISTRATIONTOTPRESPONSE']._serialized_start=1606
91
- _globals['_ENABLEREGISTRATIONTOTPRESPONSE']._serialized_end=1697
92
- _globals['_DISABLEREGISTRATIONTOTPREQUEST']._serialized_start=1699
93
- _globals['_DISABLEREGISTRATIONTOTPREQUEST']._serialized_end=1808
94
- _globals['_GENERATEQRCODEREQUEST']._serialized_start=1811
95
- _globals['_GENERATEQRCODEREQUEST']._serialized_end=1946
96
- _globals['_GENERATEQRCODERESPONSE']._serialized_start=1948
97
- _globals['_GENERATEQRCODERESPONSE']._serialized_end=1997
98
- _globals['_VERIFYUSERCODEREQUEST']._serialized_start=1999
99
- _globals['_VERIFYUSERCODEREQUEST']._serialized_end=2083
100
- _globals['_VERIFYCODERESPONSE']._serialized_start=2085
101
- _globals['_VERIFYCODERESPONSE']._serialized_end=2127
102
- _globals['_VERIFYREGISTRATIONCODEREQUEST']._serialized_start=2129
103
- _globals['_VERIFYREGISTRATIONCODEREQUEST']._serialized_end=2237
104
- _globals['_TOTPSERVICE']._serialized_start=2240
105
- _globals['_TOTPSERVICE']._serialized_end=3100
82
+ _globals['_TOTPSERVICE'].methods_by_name['DisableTOTP']._serialized_options = b'\202\265\030\002\030D\372\322\344\223\002\t\022\007PREVIEW\202\323\344\223\002+\"&/api/v1/totp/{registration_id}/disable:\001*'
83
+ _globals['_TOTPREGISTRATIONREQUEST']._serialized_start=385
84
+ _globals['_TOTPREGISTRATIONREQUEST']._serialized_end=501
85
+ _globals['_TOTPREGISTRATIONRESPONSE']._serialized_start=503
86
+ _globals['_TOTPREGISTRATIONRESPONSE']._serialized_end=620
87
+ _globals['_TOTPREGISTRATION']._serialized_start=623
88
+ _globals['_TOTPREGISTRATION']._serialized_end=1523
89
+ _globals['_ENABLEREGISTRATIONTOTPREQUEST']._serialized_start=1525
90
+ _globals['_ENABLEREGISTRATIONTOTPREQUEST']._serialized_end=1633
91
+ _globals['_ENABLEREGISTRATIONTOTPRESPONSE']._serialized_start=1635
92
+ _globals['_ENABLEREGISTRATIONTOTPRESPONSE']._serialized_end=1726
93
+ _globals['_DISABLEREGISTRATIONTOTPREQUEST']._serialized_start=1728
94
+ _globals['_DISABLEREGISTRATIONTOTPREQUEST']._serialized_end=1837
95
+ _globals['_GENERATEQRCODEREQUEST']._serialized_start=1840
96
+ _globals['_GENERATEQRCODEREQUEST']._serialized_end=1975
97
+ _globals['_GENERATEQRCODERESPONSE']._serialized_start=1977
98
+ _globals['_GENERATEQRCODERESPONSE']._serialized_end=2026
99
+ _globals['_VERIFYUSERCODEREQUEST']._serialized_start=2028
100
+ _globals['_VERIFYUSERCODEREQUEST']._serialized_end=2112
101
+ _globals['_VERIFYCODERESPONSE']._serialized_start=2114
102
+ _globals['_VERIFYCODERESPONSE']._serialized_end=2156
103
+ _globals['_VERIFYREGISTRATIONCODEREQUEST']._serialized_start=2158
104
+ _globals['_VERIFYREGISTRATIONCODEREQUEST']._serialized_end=2266
105
+ _globals['_TOTPSERVICE']._serialized_start=2269
106
+ _globals['_TOTPSERVICE']._serialized_end=3204
106
107
  # @@protoc_insertion_point(module_scope)
@@ -1,6 +1,7 @@
1
1
  from buf.validate import validate_pb2 as _validate_pb2
2
2
  from google.api import annotations_pb2 as _annotations_pb2
3
3
  from google.api import field_behavior_pb2 as _field_behavior_pb2
4
+ from google.api import visibility_pb2 as _visibility_pb2
4
5
  from google.protobuf import empty_pb2 as _empty_pb2
5
6
  from google.protobuf import struct_pb2 as _struct_pb2
6
7
  from google.protobuf import timestamp_pb2 as _timestamp_pb2