scalekit-sdk-python 2.0.1__tar.gz → 2.2.1__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 (125) hide show
  1. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/PKG-INFO +1 -1
  2. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/client.py +3 -1
  3. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/core.py +2 -2
  4. scalekit_sdk_python-2.2.1/scalekit/role.py +137 -0
  5. scalekit_sdk_python-2.2.1/scalekit/v1/auditlogs/auditlogs_pb2.py +39 -0
  6. scalekit_sdk_python-2.2.1/scalekit/v1/auditlogs/auditlogs_pb2.pyi +58 -0
  7. scalekit_sdk_python-2.2.1/scalekit/v1/auditlogs/auditlogs_pb2_grpc.py +66 -0
  8. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/auth_pb2.py +5 -5
  9. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/auth_pb2.pyi +26 -4
  10. scalekit_sdk_python-2.2.1/scalekit/v1/clients/clients_pb2.py +618 -0
  11. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/clients/clients_pb2.pyi +147 -102
  12. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/clients/clients_pb2_grpc.py +111 -78
  13. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/commons/commons_pb2.py +30 -20
  14. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/commons/commons_pb2.pyi +8 -6
  15. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/connections/connections_pb2.py +74 -72
  16. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/connections/connections_pb2.pyi +4 -2
  17. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/domains/domains_pb2.py +32 -30
  18. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/domains/domains_pb2.pyi +17 -4
  19. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/environments/environments_pb2.py +26 -26
  20. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/environments/environments_pb2.pyi +6 -4
  21. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/events/events_pb2.py +16 -16
  22. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/events/events_pb2.pyi +18 -2
  23. scalekit_sdk_python-2.2.1/scalekit/v1/roles/roles_pb2.py +217 -0
  24. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/roles/roles_pb2.pyi +64 -10
  25. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/roles/roles_pb2_grpc.py +66 -0
  26. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/users/users_pb2.py +58 -58
  27. scalekit_sdk_python-2.2.1/scalekit/v1/workspaces/__init__.py +0 -0
  28. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit_sdk_python.egg-info/PKG-INFO +1 -1
  29. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit_sdk_python.egg-info/SOURCES.txt +5 -0
  30. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/setup.py +1 -1
  31. scalekit_sdk_python-2.0.1/scalekit/v1/clients/clients_pb2.py +0 -575
  32. scalekit_sdk_python-2.0.1/scalekit/v1/roles/roles_pb2.py +0 -169
  33. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/LICENSE +0 -0
  34. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/README.md +0 -0
  35. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/__init__.py +0 -0
  36. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/__init__.py +0 -0
  37. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/expression_pb2.py +0 -0
  38. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/expression_pb2.pyi +0 -0
  39. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/expression_pb2_grpc.py +0 -0
  40. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/priv/__init__.py +0 -0
  41. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/priv/private_pb2.py +0 -0
  42. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/priv/private_pb2.pyi +0 -0
  43. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/priv/private_pb2_grpc.py +0 -0
  44. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/validate_pb2.py +0 -0
  45. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/validate_pb2.pyi +0 -0
  46. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/buf/validate/validate_pb2_grpc.py +0 -0
  47. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/__init__.py +0 -0
  48. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/common/__init__.py +0 -0
  49. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/common/scalekit.py +0 -0
  50. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/common/user.py +0 -0
  51. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/connection.py +0 -0
  52. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/constants/__init__.py +0 -0
  53. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/constants/user.py +0 -0
  54. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/directory.py +0 -0
  55. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/domain.py +0 -0
  56. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/m2m_client.py +0 -0
  57. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/organization.py +0 -0
  58. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/users.py +0 -0
  59. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/utils/__init__.py +0 -0
  60. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/utils/directory.py +0 -0
  61. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/__init__.py +0 -0
  62. {scalekit_sdk_python-2.0.1/scalekit/v1/auth → scalekit_sdk_python-2.2.1/scalekit/v1/auditlogs}/__init__.py +0 -0
  63. {scalekit_sdk_python-2.0.1/scalekit/v1/clients → scalekit_sdk_python-2.2.1/scalekit/v1/auth}/__init__.py +0 -0
  64. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/auth_pb2_grpc.py +0 -0
  65. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/passwordless_pb2.py +0 -0
  66. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/passwordless_pb2.pyi +0 -0
  67. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/auth/passwordless_pb2_grpc.py +0 -0
  68. {scalekit_sdk_python-2.0.1/scalekit/v1/commons → scalekit_sdk_python-2.2.1/scalekit/v1/clients}/__init__.py +0 -0
  69. {scalekit_sdk_python-2.0.1/scalekit/v1/connections → scalekit_sdk_python-2.2.1/scalekit/v1/commons}/__init__.py +0 -0
  70. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/commons/commons_pb2_grpc.py +0 -0
  71. {scalekit_sdk_python-2.0.1/scalekit/v1/directories → scalekit_sdk_python-2.2.1/scalekit/v1/connections}/__init__.py +0 -0
  72. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/connections/connections_pb2_grpc.py +0 -0
  73. {scalekit_sdk_python-2.0.1/scalekit/v1/domains → scalekit_sdk_python-2.2.1/scalekit/v1/directories}/__init__.py +0 -0
  74. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/directories/directories_pb2.py +0 -0
  75. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/directories/directories_pb2.pyi +0 -0
  76. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/directories/directories_pb2_grpc.py +0 -0
  77. {scalekit_sdk_python-2.0.1/scalekit/v1/emails → scalekit_sdk_python-2.2.1/scalekit/v1/domains}/__init__.py +0 -0
  78. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/domains/domains_pb2_grpc.py +0 -0
  79. {scalekit_sdk_python-2.0.1/scalekit/v1/environments → scalekit_sdk_python-2.2.1/scalekit/v1/emails}/__init__.py +0 -0
  80. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/emails/emails_pb2.py +0 -0
  81. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/emails/emails_pb2.pyi +0 -0
  82. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/emails/emails_pb2_grpc.py +0 -0
  83. {scalekit_sdk_python-2.0.1/scalekit/v1/errdetails → scalekit_sdk_python-2.2.1/scalekit/v1/environments}/__init__.py +0 -0
  84. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/environments/environments_pb2_grpc.py +0 -0
  85. {scalekit_sdk_python-2.0.1/scalekit/v1/events → scalekit_sdk_python-2.2.1/scalekit/v1/errdetails}/__init__.py +0 -0
  86. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/errdetails/errdetails_pb2.py +0 -0
  87. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/errdetails/errdetails_pb2.pyi +0 -0
  88. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/errdetails/errdetails_pb2_grpc.py +0 -0
  89. {scalekit_sdk_python-2.0.1/scalekit/v1/members → scalekit_sdk_python-2.2.1/scalekit/v1/events}/__init__.py +0 -0
  90. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/events/events_pb2_grpc.py +0 -0
  91. {scalekit_sdk_python-2.0.1/scalekit/v1/migrations → scalekit_sdk_python-2.2.1/scalekit/v1/members}/__init__.py +0 -0
  92. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/members/members_pb2.py +0 -0
  93. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/members/members_pb2.pyi +0 -0
  94. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/members/members_pb2_grpc.py +0 -0
  95. {scalekit_sdk_python-2.0.1/scalekit/v1/options → scalekit_sdk_python-2.2.1/scalekit/v1/migrations}/__init__.py +0 -0
  96. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/migrations/migrations_pb2.py +0 -0
  97. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/migrations/migrations_pb2.pyi +0 -0
  98. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/migrations/migrations_pb2_grpc.py +0 -0
  99. {scalekit_sdk_python-2.0.1/scalekit/v1/organizations → scalekit_sdk_python-2.2.1/scalekit/v1/options}/__init__.py +0 -0
  100. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/options/options_pb2.py +0 -0
  101. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/options/options_pb2.pyi +0 -0
  102. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/options/options_pb2_grpc.py +0 -0
  103. {scalekit_sdk_python-2.0.1/scalekit/v1/roles → scalekit_sdk_python-2.2.1/scalekit/v1/organizations}/__init__.py +0 -0
  104. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/organizations/organizations_pb2.py +0 -0
  105. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/organizations/organizations_pb2.pyi +0 -0
  106. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/organizations/organizations_pb2_grpc.py +0 -0
  107. {scalekit_sdk_python-2.0.1/scalekit/v1/user_attributes → scalekit_sdk_python-2.2.1/scalekit/v1/roles}/__init__.py +0 -0
  108. {scalekit_sdk_python-2.0.1/scalekit/v1/users → scalekit_sdk_python-2.2.1/scalekit/v1/user_attributes}/__init__.py +0 -0
  109. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/user_attributes/user_attributes_pb2.py +0 -0
  110. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/user_attributes/user_attributes_pb2.pyi +0 -0
  111. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/user_attributes/user_attributes_pb2_grpc.py +0 -0
  112. {scalekit_sdk_python-2.0.1/scalekit/v1/webhooks → scalekit_sdk_python-2.2.1/scalekit/v1/users}/__init__.py +0 -0
  113. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/users/users_pb2.pyi +0 -0
  114. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/users/users_pb2_grpc.py +0 -0
  115. {scalekit_sdk_python-2.0.1/scalekit/v1/workspaces → scalekit_sdk_python-2.2.1/scalekit/v1/webhooks}/__init__.py +0 -0
  116. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/webhooks/webhooks_pb2.py +0 -0
  117. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/webhooks/webhooks_pb2.pyi +0 -0
  118. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/webhooks/webhooks_pb2_grpc.py +0 -0
  119. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/workspaces/workspaces_pb2.py +0 -0
  120. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/workspaces/workspaces_pb2.pyi +0 -0
  121. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit/v1/workspaces/workspaces_pb2_grpc.py +0 -0
  122. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit_sdk_python.egg-info/dependency_links.txt +0 -0
  123. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit_sdk_python.egg-info/requires.txt +0 -0
  124. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/scalekit_sdk_python.egg-info/top_level.txt +0 -0
  125. {scalekit_sdk_python-2.0.1 → scalekit_sdk_python-2.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scalekit-sdk-python
3
- Version: 2.0.1
3
+ Version: 2.2.1
4
4
  Summary: Scalekit official Python SDK
5
5
  Home-page: https://github.com/scalekit-inc/scalekit-sdk-python
6
6
  Author: Team Scalekit
@@ -15,6 +15,7 @@ from scalekit.m2m_client import M2MClient
15
15
  from scalekit.organization import OrganizationClient
16
16
  from scalekit.directory import DirectoryClient
17
17
  from scalekit.users import UserClient
18
+ from scalekit.role import RoleClient
18
19
  from scalekit.common.scalekit import (
19
20
  AuthorizationUrlOptions,
20
21
  CodeAuthenticationOptions,
@@ -25,7 +26,7 @@ from scalekit.common.scalekit import (
25
26
  from scalekit.constants.user import id_token_claim_to_user_map
26
27
 
27
28
  AUTHORIZE_ENDPOINT = "oauth/authorize"
28
- LOGOUT_ENDPOINT = "end_session"
29
+ LOGOUT_ENDPOINT = "oidc/logout"
29
30
  webhook_tolerance_in_seconds = timedelta(minutes=5)
30
31
  webhook_signature_version = "v1"
31
32
 
@@ -61,6 +62,7 @@ class ScalekitClient:
61
62
  self.directory = DirectoryClient(self.core_client)
62
63
  self.m2m_client = M2MClient(self.core_client)
63
64
  self.users = UserClient(self.core_client)
65
+ self.roles = RoleClient(self.core_client)
64
66
  except Exception as exp:
65
67
  raise exp
66
68
 
@@ -27,8 +27,8 @@ class WithCall(Protocol):
27
27
  class CoreClient:
28
28
  """Class definition for Core Client"""
29
29
 
30
- sdk_version = "Scalekit-Python/2.0.1"
31
- api_version = "20250417"
30
+ sdk_version = "Scalekit-Python/2.2.1"
31
+ api_version = "20250710"
32
32
  user_agent = f"{sdk_version} Python/{platform.python_version()} ({platform.system()}; {platform.architecture()}"
33
33
 
34
34
  def __init__(self, env_url, client_id, client_secret):
@@ -0,0 +1,137 @@
1
+ from typing import Optional
2
+
3
+ from scalekit.core import CoreClient
4
+ from scalekit.v1.roles.roles_pb2 import *
5
+ from scalekit.v1.roles.roles_pb2_grpc import RolesServiceStub
6
+
7
+
8
+ class RoleClient:
9
+ """Class definition for Role Client"""
10
+
11
+ def __init__(self, core_client: CoreClient):
12
+ """
13
+ Initializer for Role Client
14
+
15
+ :param core_client : CoreClient Object
16
+ :type : ``` obj ```
17
+ :returns
18
+ None
19
+ """
20
+ self.core_client = core_client
21
+ self.role_service = RolesServiceStub(
22
+ self.core_client.grpc_secure_channel
23
+ )
24
+
25
+ def create_role(
26
+ self,
27
+ role: CreateRole
28
+ ) -> CreateRoleResponse:
29
+ """
30
+ Method to create a new role
31
+
32
+ :param role : CreateRole object with expected values for role creation
33
+ :type : ``` obj ```
34
+
35
+ :returns:
36
+ Create Role Response
37
+ """
38
+ return self.core_client.grpc_exec(
39
+ self.role_service.CreateRole.with_call,
40
+ CreateRoleRequest(role=role),
41
+ )
42
+
43
+ def get_role(self, role_id: str) -> GetRoleResponse:
44
+ """
45
+ Method to get role by ID
46
+
47
+ :param role_id : Role id to get role details
48
+ :type : ``` str ```
49
+
50
+ :returns:
51
+ Get Role Response
52
+ """
53
+ return self.core_client.grpc_exec(
54
+ self.role_service.GetRole.with_call,
55
+ GetRoleRequest(id=role_id),
56
+ )
57
+
58
+ def list_roles(self) -> ListRolesResponse:
59
+ """
60
+ Method to list all roles
61
+
62
+ :returns:
63
+ List Roles Response
64
+ """
65
+ return self.core_client.grpc_exec(
66
+ self.role_service.ListRoles.with_call,
67
+ ListRolesRequest(),
68
+ )
69
+
70
+ def update_role(
71
+ self,
72
+ role_id: str,
73
+ role: UpdateRole
74
+ ) -> UpdateRoleResponse:
75
+ """
76
+ Method to update an existing role by ID
77
+
78
+ :param role_id : Role id to update
79
+ :type : ``` str ```
80
+ :param role : UpdateRole object with expected values for role update
81
+ :type : ``` obj ```
82
+
83
+ :returns:
84
+ Update Role Response
85
+ """
86
+ return self.core_client.grpc_exec(
87
+ self.role_service.UpdateRole.with_call,
88
+ UpdateRoleRequest(
89
+ id=role_id,
90
+ role=role
91
+ ),
92
+ )
93
+
94
+ def delete_role(
95
+ self,
96
+ role_id: str,
97
+ reassign_role_id: Optional[str] = None
98
+ ):
99
+ """
100
+ Method to delete role by ID
101
+
102
+ :param role_id : Role id to be deleted
103
+ :type : ``` str ```
104
+ :param reassign_role_id: Role ID to reassign users to when deleting this role
105
+ :type : ``` str ```
106
+
107
+ :returns:
108
+ None
109
+ """
110
+ request = DeleteRoleRequest(id=role_id)
111
+ if reassign_role_id:
112
+ request.reassign_role_id = reassign_role_id
113
+
114
+ return self.core_client.grpc_exec(
115
+ self.role_service.DeleteRole.with_call,
116
+ request,
117
+ )
118
+
119
+ def get_role_users_count(
120
+ self,
121
+ role_id: str
122
+ ) -> GetRoleUsersCountResponse:
123
+ """
124
+ Method to get the count of users associated with a role
125
+
126
+ :param role_id : Role id to get user count for
127
+ :type : ``` str ```
128
+
129
+ :returns:
130
+ Get Role Users Count Response
131
+ """
132
+ return self.core_client.grpc_exec(
133
+ self.role_service.GetRoleUsersCount.with_call,
134
+ GetRoleUsersCountRequest(id=role_id),
135
+ )
136
+
137
+
@@ -0,0 +1,39 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: scalekit/v1/auditlogs/auditlogs.proto
4
+ # Protobuf Python Version: 5.26.1
5
+ """Generated protocol buffer code."""
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ from google.protobuf.internal import builder as _builder
10
+ # @@protoc_insertion_point(imports)
11
+
12
+ _sym_db = _symbol_database.Default()
13
+
14
+
15
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
16
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
17
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
18
+ from scalekit.v1.options import options_pb2 as scalekit_dot_v1_dot_options_dot_options__pb2
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n%scalekit/v1/auditlogs/auditlogs.proto\x12\x15scalekit.v1.auditlogs\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a!scalekit/v1/options/options.proto\"\xf0\x01\n\x12ListAuthLogRequest\x12\x1b\n\tpage_size\x18\x01 \x01(\rR\x08pageSize\x12\x1d\n\npage_token\x18\x02 \x01(\tR\tpageToken\x12\x14\n\x05\x65mail\x18\x03 \x01(\tR\x05\x65mail\x12\x16\n\x06status\x18\x04 \x01(\tR\x06status\x12\x39\n\nstart_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tstartTime\x12\x35\n\x08\x65nd_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65ndTime\"\xa7\x01\n\x13ListAuthLogResponse\x12&\n\x0fnext_page_token\x18\x01 \x01(\tR\rnextPageToken\x12\x1d\n\ntotal_size\x18\x02 \x01(\rR\ttotalSize\x12I\n\x0c\x61uthRequests\x18\x03 \x03(\x0b\x32%.scalekit.v1.auditlogs.AuthLogRequestR\x0c\x61uthRequests\"\xd3\x02\n\x0e\x41uthLogRequest\x12\'\n\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12%\n\x0e\x65nvironment_id\x18\x02 \x01(\tR\renvironmentId\x12#\n\rconnection_id\x18\x03 \x01(\tR\x0c\x63onnectionId\x12&\n\x0f\x61uth_request_id\x18\x04 \x01(\tR\rauthRequestId\x12\x14\n\x05\x65mail\x18\x05 \x01(\tR\x05\x65mail\x12\'\n\x0f\x63onnection_type\x18\x06 \x01(\tR\x0e\x63onnectionType\x12/\n\x13\x63onnection_provider\x18\x07 \x01(\tR\x12\x63onnectionProvider\x12\x16\n\x06status\x18\x08 \x01(\tR\x06status\x12\x1c\n\ttimestamp\x18\t \x01(\tR\ttimestamp2\xb2\x01\n\x10\x41uditLogsService\x12\x9d\x01\n\x10ListAuthRequests\x12).scalekit.v1.auditlogs.ListAuthLogRequest\x1a*.scalekit.v1.auditlogs.ListAuthLogResponse\"2\x82\xb5\x18\x02\x18T\x82\xd3\xe4\x93\x02&\x12$/api/v1/logs/authentication/requestsB5Z3github.com/scalekit-inc/scalekit/pkg/grpc/auditlogsb\x06proto3')
22
+
23
+ _globals = globals()
24
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
25
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'scalekit.v1.auditlogs.auditlogs_pb2', _globals)
26
+ if not _descriptor._USE_C_DESCRIPTORS:
27
+ _globals['DESCRIPTOR']._loaded_options = None
28
+ _globals['DESCRIPTOR']._serialized_options = b'Z3github.com/scalekit-inc/scalekit/pkg/grpc/auditlogs'
29
+ _globals['_AUDITLOGSSERVICE'].methods_by_name['ListAuthRequests']._loaded_options = None
30
+ _globals['_AUDITLOGSSERVICE'].methods_by_name['ListAuthRequests']._serialized_options = b'\202\265\030\002\030T\202\323\344\223\002&\022$/api/v1/logs/authentication/requests'
31
+ _globals['_LISTAUTHLOGREQUEST']._serialized_start=192
32
+ _globals['_LISTAUTHLOGREQUEST']._serialized_end=432
33
+ _globals['_LISTAUTHLOGRESPONSE']._serialized_start=435
34
+ _globals['_LISTAUTHLOGRESPONSE']._serialized_end=602
35
+ _globals['_AUTHLOGREQUEST']._serialized_start=605
36
+ _globals['_AUTHLOGREQUEST']._serialized_end=944
37
+ _globals['_AUDITLOGSSERVICE']._serialized_start=947
38
+ _globals['_AUDITLOGSSERVICE']._serialized_end=1125
39
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,58 @@
1
+ from buf.validate import validate_pb2 as _validate_pb2
2
+ from google.api import annotations_pb2 as _annotations_pb2
3
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
4
+ from scalekit.v1.options import options_pb2 as _options_pb2
5
+ from google.protobuf.internal import containers as _containers
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import message as _message
8
+ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union
9
+
10
+ DESCRIPTOR: _descriptor.FileDescriptor
11
+
12
+ class ListAuthLogRequest(_message.Message):
13
+ __slots__ = ("page_size", "page_token", "email", "status", "start_time", "end_time")
14
+ PAGE_SIZE_FIELD_NUMBER: _ClassVar[int]
15
+ PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
16
+ EMAIL_FIELD_NUMBER: _ClassVar[int]
17
+ STATUS_FIELD_NUMBER: _ClassVar[int]
18
+ START_TIME_FIELD_NUMBER: _ClassVar[int]
19
+ END_TIME_FIELD_NUMBER: _ClassVar[int]
20
+ page_size: int
21
+ page_token: str
22
+ email: str
23
+ status: str
24
+ start_time: _timestamp_pb2.Timestamp
25
+ end_time: _timestamp_pb2.Timestamp
26
+ def __init__(self, page_size: _Optional[int] = ..., page_token: _Optional[str] = ..., email: _Optional[str] = ..., status: _Optional[str] = ..., start_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., end_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
27
+
28
+ class ListAuthLogResponse(_message.Message):
29
+ __slots__ = ("next_page_token", "total_size", "authRequests")
30
+ NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int]
31
+ TOTAL_SIZE_FIELD_NUMBER: _ClassVar[int]
32
+ AUTHREQUESTS_FIELD_NUMBER: _ClassVar[int]
33
+ next_page_token: str
34
+ total_size: int
35
+ authRequests: _containers.RepeatedCompositeFieldContainer[AuthLogRequest]
36
+ def __init__(self, next_page_token: _Optional[str] = ..., total_size: _Optional[int] = ..., authRequests: _Optional[_Iterable[_Union[AuthLogRequest, _Mapping]]] = ...) -> None: ...
37
+
38
+ class AuthLogRequest(_message.Message):
39
+ __slots__ = ("organization_id", "environment_id", "connection_id", "auth_request_id", "email", "connection_type", "connection_provider", "status", "timestamp")
40
+ ORGANIZATION_ID_FIELD_NUMBER: _ClassVar[int]
41
+ ENVIRONMENT_ID_FIELD_NUMBER: _ClassVar[int]
42
+ CONNECTION_ID_FIELD_NUMBER: _ClassVar[int]
43
+ AUTH_REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
44
+ EMAIL_FIELD_NUMBER: _ClassVar[int]
45
+ CONNECTION_TYPE_FIELD_NUMBER: _ClassVar[int]
46
+ CONNECTION_PROVIDER_FIELD_NUMBER: _ClassVar[int]
47
+ STATUS_FIELD_NUMBER: _ClassVar[int]
48
+ TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
49
+ organization_id: str
50
+ environment_id: str
51
+ connection_id: str
52
+ auth_request_id: str
53
+ email: str
54
+ connection_type: str
55
+ connection_provider: str
56
+ status: str
57
+ timestamp: str
58
+ def __init__(self, organization_id: _Optional[str] = ..., environment_id: _Optional[str] = ..., connection_id: _Optional[str] = ..., auth_request_id: _Optional[str] = ..., email: _Optional[str] = ..., connection_type: _Optional[str] = ..., connection_provider: _Optional[str] = ..., status: _Optional[str] = ..., timestamp: _Optional[str] = ...) -> None: ...
@@ -0,0 +1,66 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from scalekit.v1.auditlogs import auditlogs_pb2 as scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2
6
+
7
+
8
+ class AuditLogsServiceStub(object):
9
+ """Missing associated documentation comment in .proto file."""
10
+
11
+ def __init__(self, channel):
12
+ """Constructor.
13
+
14
+ Args:
15
+ channel: A grpc.Channel.
16
+ """
17
+ self.ListAuthRequests = channel.unary_unary(
18
+ '/scalekit.v1.auditlogs.AuditLogsService/ListAuthRequests',
19
+ request_serializer=scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogRequest.SerializeToString,
20
+ response_deserializer=scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogResponse.FromString,
21
+ )
22
+
23
+
24
+ class AuditLogsServiceServicer(object):
25
+ """Missing associated documentation comment in .proto file."""
26
+
27
+ def ListAuthRequests(self, request, context):
28
+ """Missing associated documentation comment in .proto file."""
29
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
30
+ context.set_details('Method not implemented!')
31
+ raise NotImplementedError('Method not implemented!')
32
+
33
+
34
+ def add_AuditLogsServiceServicer_to_server(servicer, server):
35
+ rpc_method_handlers = {
36
+ 'ListAuthRequests': grpc.unary_unary_rpc_method_handler(
37
+ servicer.ListAuthRequests,
38
+ request_deserializer=scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogRequest.FromString,
39
+ response_serializer=scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogResponse.SerializeToString,
40
+ ),
41
+ }
42
+ generic_handler = grpc.method_handlers_generic_handler(
43
+ 'scalekit.v1.auditlogs.AuditLogsService', rpc_method_handlers)
44
+ server.add_generic_rpc_handlers((generic_handler,))
45
+
46
+
47
+ # This class is part of an EXPERIMENTAL API.
48
+ class AuditLogsService(object):
49
+ """Missing associated documentation comment in .proto file."""
50
+
51
+ @staticmethod
52
+ def ListAuthRequests(request,
53
+ target,
54
+ options=(),
55
+ channel_credentials=None,
56
+ call_credentials=None,
57
+ insecure=False,
58
+ compression=None,
59
+ wait_for_ready=None,
60
+ timeout=None,
61
+ metadata=None):
62
+ return grpc.experimental.unary_unary(request, target, '/scalekit.v1.auditlogs.AuditLogsService/ListAuthRequests',
63
+ scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogRequest.SerializeToString,
64
+ scalekit_dot_v1_dot_auditlogs_dot_auditlogs__pb2.ListAuthLogResponse.FromString,
65
+ options, channel_credentials,
66
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
@@ -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\"Z\n\x17ListAuthMethodsResponse\x12?\n\x0c\x61uth_methods\x18\x01 \x03(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\x0b\x61uthMethods\"\xc1\x05\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\x12G\n\x08provider\x18\x03 \x01(\x0e\x32+.scalekit.v1.connections.ConnectionProviderR\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\x42\x14\n\x12_passwordless_typeB\x18\n\x16_code_challenge_length\"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\"_\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\"_\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*:\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\x0b\n\x07sign_in\x10\x01\x12\x0b\n\x07sign_up\x10\x02*u\n\tAuthState\x12\x12\n\x0e\x41UTHENTICATION\x10\x00\x12\x19\n\x15ORGANIZATION_SWITCHER\x10\x01\x12 \n\x1cORGANIZATION_SWITCHER_SIGNUP\x10\x02\x12\x17\n\x13ORGANIZATION_SIGNUP\x10\x03\x32\xa7\x0e\n\x0b\x41uthService\x12w\n\x0fListAuthMethods\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.ListAuthMethodsResponse\"!\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/authmethods\x12\xab\x01\n\x13\x44iscoveryAuthMethod\x12,.scalekit.v1.auth.DiscoveryAuthMethodRequest\x1a-.scalekit.v1.auth.DiscoveryAuthMethodResponse\"7\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02+\"\x16/api/v1/auth:discovery:\x11\x64iscovery_request\x12\xab\x01\n\x15VerifyPasswordLessOtp\x12+.scalekit.v1.auth.VerifyPasswordLessRequest\x1a,.scalekit.v1.auth.VerifyPasswordLessResponse\"7\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02+\" /api/v1/auth/passwordless:verify:\x07otp_req\x12t\n\x12ResendPasswordless\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\".\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\"\" /api/v1/auth/passwordless:resend\x12\x8a\x01\n\x15ListUserOrganizations\x12\x16.google.protobuf.Empty\x1a/.scalekit.v1.auth.ListUserOrganizationsResponse\"(\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/auth:organizations\x12\x95\x01\n\x12SignupOrganization\x12+.scalekit.v1.auth.SignupOrganizationRequest\x1a,.scalekit.v1.auth.SignupOrganizationResponse\"$\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/auth:signup:\x01*\x12p\n\x0cGetAuthState\x12\x16.google.protobuf.Empty\x1a&.scalekit.v1.auth.GetAuthStateResponse\" \x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/auth/state\x12[\n\x06Logout\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"!\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x15\"\x13/api/v1/auth/logout\x12h\n\x10GetActiveSession\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"$\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/session:active\x12\xa3\x01\n\x15GetAuthCustomizations\x12..scalekit.v1.auth.GetAuthCustomizationsRequest\x1a/.scalekit.v1.auth.GetAuthCustomizationsResponse\")\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/auth:customizations\x12y\n\x0fGetAuthFeatures\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.GetAuthFeaturesResponse\"#\x82\xb5\x18\x02\x18\x01\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\"Z\n\x17ListAuthMethodsResponse\x12?\n\x0c\x61uth_methods\x18\x01 \x03(\x0b\x32\x1c.scalekit.v1.auth.AuthMethodR\x0b\x61uthMethods\"\xc1\x05\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\x12G\n\x08provider\x18\x03 \x01(\x0e\x32+.scalekit.v1.connections.ConnectionProviderR\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\x42\x14\n\x12_passwordless_typeB\x18\n\x16_code_challenge_length\"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\"_\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\"_\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*:\n\x06Intent\x12\x16\n\x12INTENT_UNSPECIFIED\x10\x00\x12\x0b\n\x07sign_in\x10\x01\x12\x0b\n\x07sign_up\x10\x02*\x9e\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\x32\xa7\x0e\n\x0b\x41uthService\x12w\n\x0fListAuthMethods\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.ListAuthMethodsResponse\"!\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x15\x12\x13/api/v1/authmethods\x12\xab\x01\n\x13\x44iscoveryAuthMethod\x12,.scalekit.v1.auth.DiscoveryAuthMethodRequest\x1a-.scalekit.v1.auth.DiscoveryAuthMethodResponse\"7\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02+\"\x16/api/v1/auth:discovery:\x11\x64iscovery_request\x12\xab\x01\n\x15VerifyPasswordLessOtp\x12+.scalekit.v1.auth.VerifyPasswordLessRequest\x1a,.scalekit.v1.auth.VerifyPasswordLessResponse\"7\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02+\" /api/v1/auth/passwordless:verify:\x07otp_req\x12t\n\x12ResendPasswordless\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\".\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\"\" /api/v1/auth/passwordless:resend\x12\x8a\x01\n\x15ListUserOrganizations\x12\x16.google.protobuf.Empty\x1a/.scalekit.v1.auth.ListUserOrganizationsResponse\"(\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x1c\x12\x1a/api/v1/auth:organizations\x12\x95\x01\n\x12SignupOrganization\x12+.scalekit.v1.auth.SignupOrganizationRequest\x1a,.scalekit.v1.auth.SignupOrganizationResponse\"$\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x18\"\x13/api/v1/auth:signup:\x01*\x12p\n\x0cGetAuthState\x12\x16.google.protobuf.Empty\x1a&.scalekit.v1.auth.GetAuthStateResponse\" \x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x14\x12\x12/api/v1/auth/state\x12[\n\x06Logout\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"!\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x15\"\x13/api/v1/auth/logout\x12h\n\x10GetActiveSession\x12\x16.google.protobuf.Empty\x1a\x16.google.protobuf.Empty\"$\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/session:active\x12\xa3\x01\n\x15GetAuthCustomizations\x12..scalekit.v1.auth.GetAuthCustomizationsRequest\x1a/.scalekit.v1.auth.GetAuthCustomizationsResponse\")\x82\xb5\x18\x02\x18\x01\x82\xd3\xe4\x93\x02\x1d\x12\x1b/api/v1/auth:customizations\x12y\n\x0fGetAuthFeatures\x12\x16.google.protobuf.Empty\x1a).scalekit.v1.auth.GetAuthFeaturesResponse\"#\x82\xb5\x18\x02\x18\x01\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)
@@ -107,8 +107,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
107
107
  _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'
108
108
  _globals['_INTENT']._serialized_start=4764
109
109
  _globals['_INTENT']._serialized_end=4822
110
- _globals['_AUTHSTATE']._serialized_start=4824
111
- _globals['_AUTHSTATE']._serialized_end=4941
110
+ _globals['_AUTHSTATE']._serialized_start=4825
111
+ _globals['_AUTHSTATE']._serialized_end=5239
112
112
  _globals['_LISTAUTHMETHODSRESPONSE']._serialized_start=423
113
113
  _globals['_LISTAUTHMETHODSRESPONSE']._serialized_end=513
114
114
  _globals['_AUTHMETHOD']._serialized_start=516
@@ -147,6 +147,6 @@ if not _descriptor._USE_C_DESCRIPTORS:
147
147
  _globals['_USER']._serialized_end=4678
148
148
  _globals['_GETAUTHSTATERESPONSE']._serialized_start=4680
149
149
  _globals['_GETAUTHSTATERESPONSE']._serialized_end=4762
150
- _globals['_AUTHSERVICE']._serialized_start=4944
151
- _globals['_AUTHSERVICE']._serialized_end=6775
150
+ _globals['_AUTHSERVICE']._serialized_start=5242
151
+ _globals['_AUTHSERVICE']._serialized_end=7073
152
152
  # @@protoc_insertion_point(module_scope)
@@ -25,17 +25,39 @@ class Intent(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
25
25
 
26
26
  class AuthState(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
27
27
  __slots__ = ()
28
- AUTHENTICATION: _ClassVar[AuthState]
28
+ AUTH_STATE_UNSPECIFIED: _ClassVar[AuthState]
29
+ AUTHENTICATION_IN_PROGRESS: _ClassVar[AuthState]
29
30
  ORGANIZATION_SWITCHER: _ClassVar[AuthState]
30
- ORGANIZATION_SWITCHER_SIGNUP: _ClassVar[AuthState]
31
+ ORGANIZATION_SELECTED: _ClassVar[AuthState]
31
32
  ORGANIZATION_SIGNUP: _ClassVar[AuthState]
33
+ ORGANIZATION_SWITCHER_SIGNUP: _ClassVar[AuthState]
34
+ OTP_VERIFICATION_PENDING: _ClassVar[AuthState]
35
+ MAGIC_LINK_SENT: _ClassVar[AuthState]
36
+ LINK_SENT_OTP_VERIFICATION_PENDING: _ClassVar[AuthState]
37
+ OTP_VERIFIED: _ClassVar[AuthState]
38
+ LINK_VERIFIED: _ClassVar[AuthState]
39
+ SSO_AUTHENTICATED: _ClassVar[AuthState]
40
+ ORG_USER_CREATED: _ClassVar[AuthState]
41
+ AUTHENTICATION_COMPLETED: _ClassVar[AuthState]
42
+ AUTHENTICATION_FAILED: _ClassVar[AuthState]
32
43
  INTENT_UNSPECIFIED: Intent
33
44
  sign_in: Intent
34
45
  sign_up: Intent
35
- AUTHENTICATION: AuthState
46
+ AUTH_STATE_UNSPECIFIED: AuthState
47
+ AUTHENTICATION_IN_PROGRESS: AuthState
36
48
  ORGANIZATION_SWITCHER: AuthState
37
- ORGANIZATION_SWITCHER_SIGNUP: AuthState
49
+ ORGANIZATION_SELECTED: AuthState
38
50
  ORGANIZATION_SIGNUP: AuthState
51
+ ORGANIZATION_SWITCHER_SIGNUP: AuthState
52
+ OTP_VERIFICATION_PENDING: AuthState
53
+ MAGIC_LINK_SENT: AuthState
54
+ LINK_SENT_OTP_VERIFICATION_PENDING: AuthState
55
+ OTP_VERIFIED: AuthState
56
+ LINK_VERIFIED: AuthState
57
+ SSO_AUTHENTICATED: AuthState
58
+ ORG_USER_CREATED: AuthState
59
+ AUTHENTICATION_COMPLETED: AuthState
60
+ AUTHENTICATION_FAILED: AuthState
39
61
 
40
62
  class ListAuthMethodsResponse(_message.Message):
41
63
  __slots__ = ("auth_methods",)