workos 5.29.0__tar.gz → 5.30.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 (159) hide show
  1. {workos-5.29.0 → workos-5.30.0}/PKG-INFO +1 -1
  2. {workos-5.29.0 → workos-5.30.0}/tests/test_user_management.py +31 -0
  3. {workos-5.29.0 → workos-5.30.0}/workos/__about__.py +1 -1
  4. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/authenticate_with_common.py +1 -0
  5. {workos-5.29.0 → workos-5.30.0}/workos/user_management.py +6 -0
  6. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/PKG-INFO +1 -1
  7. {workos-5.29.0 → workos-5.30.0}/LICENSE +0 -0
  8. {workos-5.29.0 → workos-5.30.0}/README.md +0 -0
  9. {workos-5.29.0 → workos-5.30.0}/setup.cfg +0 -0
  10. {workos-5.29.0 → workos-5.30.0}/setup.py +0 -0
  11. {workos-5.29.0 → workos-5.30.0}/tests/test_async_http_client.py +0 -0
  12. {workos-5.29.0 → workos-5.30.0}/tests/test_audit_logs.py +0 -0
  13. {workos-5.29.0 → workos-5.30.0}/tests/test_client.py +0 -0
  14. {workos-5.29.0 → workos-5.30.0}/tests/test_directory_sync.py +0 -0
  15. {workos-5.29.0 → workos-5.30.0}/tests/test_events.py +0 -0
  16. {workos-5.29.0 → workos-5.30.0}/tests/test_fga.py +0 -0
  17. {workos-5.29.0 → workos-5.30.0}/tests/test_mfa.py +0 -0
  18. {workos-5.29.0 → workos-5.30.0}/tests/test_organization_domains.py +0 -0
  19. {workos-5.29.0 → workos-5.30.0}/tests/test_organizations.py +0 -0
  20. {workos-5.29.0 → workos-5.30.0}/tests/test_passwordless.py +0 -0
  21. {workos-5.29.0 → workos-5.30.0}/tests/test_portal.py +0 -0
  22. {workos-5.29.0 → workos-5.30.0}/tests/test_session.py +0 -0
  23. {workos-5.29.0 → workos-5.30.0}/tests/test_sso.py +0 -0
  24. {workos-5.29.0 → workos-5.30.0}/tests/test_sync_http_client.py +0 -0
  25. {workos-5.29.0 → workos-5.30.0}/tests/test_vault.py +0 -0
  26. {workos-5.29.0 → workos-5.30.0}/tests/test_webhooks.py +0 -0
  27. {workos-5.29.0 → workos-5.30.0}/tests/test_widgets.py +0 -0
  28. {workos-5.29.0 → workos-5.30.0}/workos/__init__.py +0 -0
  29. {workos-5.29.0 → workos-5.30.0}/workos/_base_client.py +0 -0
  30. {workos-5.29.0 → workos-5.30.0}/workos/_client_configuration.py +0 -0
  31. {workos-5.29.0 → workos-5.30.0}/workos/async_client.py +0 -0
  32. {workos-5.29.0 → workos-5.30.0}/workos/audit_logs.py +0 -0
  33. {workos-5.29.0 → workos-5.30.0}/workos/client.py +0 -0
  34. {workos-5.29.0 → workos-5.30.0}/workos/directory_sync.py +0 -0
  35. {workos-5.29.0 → workos-5.30.0}/workos/events.py +0 -0
  36. {workos-5.29.0 → workos-5.30.0}/workos/exceptions.py +0 -0
  37. {workos-5.29.0 → workos-5.30.0}/workos/fga.py +0 -0
  38. {workos-5.29.0 → workos-5.30.0}/workos/mfa.py +0 -0
  39. {workos-5.29.0 → workos-5.30.0}/workos/organization_domains.py +0 -0
  40. {workos-5.29.0 → workos-5.30.0}/workos/organizations.py +0 -0
  41. {workos-5.29.0 → workos-5.30.0}/workos/passwordless.py +0 -0
  42. {workos-5.29.0 → workos-5.30.0}/workos/portal.py +0 -0
  43. {workos-5.29.0 → workos-5.30.0}/workos/py.typed +0 -0
  44. {workos-5.29.0 → workos-5.30.0}/workos/session.py +0 -0
  45. {workos-5.29.0 → workos-5.30.0}/workos/sso.py +0 -0
  46. {workos-5.29.0 → workos-5.30.0}/workos/types/__init__.py +0 -0
  47. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/__init__.py +0 -0
  48. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_event.py +0 -0
  49. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_event_actor.py +0 -0
  50. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_event_context.py +0 -0
  51. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_event_target.py +0 -0
  52. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_export.py +0 -0
  53. {workos-5.29.0 → workos-5.30.0}/workos/types/audit_logs/audit_log_metadata.py +0 -0
  54. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/__init__.py +0 -0
  55. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/directory.py +0 -0
  56. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/directory_group.py +0 -0
  57. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/directory_state.py +0 -0
  58. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/directory_type.py +0 -0
  59. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/directory_user.py +0 -0
  60. {workos-5.29.0 → workos-5.30.0}/workos/types/directory_sync/list_filters.py +0 -0
  61. {workos-5.29.0 → workos-5.30.0}/workos/types/events/__init__.py +0 -0
  62. {workos-5.29.0 → workos-5.30.0}/workos/types/events/authentication_payload.py +0 -0
  63. {workos-5.29.0 → workos-5.30.0}/workos/types/events/connection_payload_with_legacy_fields.py +0 -0
  64. {workos-5.29.0 → workos-5.30.0}/workos/types/events/directory_group_membership_payload.py +0 -0
  65. {workos-5.29.0 → workos-5.30.0}/workos/types/events/directory_group_with_previous_attributes.py +0 -0
  66. {workos-5.29.0 → workos-5.30.0}/workos/types/events/directory_payload.py +0 -0
  67. {workos-5.29.0 → workos-5.30.0}/workos/types/events/directory_payload_with_legacy_fields.py +0 -0
  68. {workos-5.29.0 → workos-5.30.0}/workos/types/events/directory_user_with_previous_attributes.py +0 -0
  69. {workos-5.29.0 → workos-5.30.0}/workos/types/events/event.py +0 -0
  70. {workos-5.29.0 → workos-5.30.0}/workos/types/events/event_model.py +0 -0
  71. {workos-5.29.0 → workos-5.30.0}/workos/types/events/event_type.py +0 -0
  72. {workos-5.29.0 → workos-5.30.0}/workos/types/events/list_filters.py +0 -0
  73. {workos-5.29.0 → workos-5.30.0}/workos/types/events/organization_domain_verification_failed_payload.py +0 -0
  74. {workos-5.29.0 → workos-5.30.0}/workos/types/events/previous_attributes.py +0 -0
  75. {workos-5.29.0 → workos-5.30.0}/workos/types/events/session_created_payload.py +0 -0
  76. {workos-5.29.0 → workos-5.30.0}/workos/types/feature_flags/__init__.py +0 -0
  77. {workos-5.29.0 → workos-5.30.0}/workos/types/feature_flags/feature_flag.py +0 -0
  78. {workos-5.29.0 → workos-5.30.0}/workos/types/feature_flags/list_filters.py +0 -0
  79. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/__init__.py +0 -0
  80. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/authorization_resource_types.py +0 -0
  81. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/authorization_resources.py +0 -0
  82. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/check.py +0 -0
  83. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/list_filters.py +0 -0
  84. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/warnings.py +0 -0
  85. {workos-5.29.0 → workos-5.30.0}/workos/types/fga/warrant.py +0 -0
  86. {workos-5.29.0 → workos-5.30.0}/workos/types/list_resource.py +0 -0
  87. {workos-5.29.0 → workos-5.30.0}/workos/types/metadata.py +0 -0
  88. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/__init__.py +0 -0
  89. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/authentication_challenge.py +0 -0
  90. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/authentication_challenge_verification_response.py +0 -0
  91. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/authentication_factor.py +0 -0
  92. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/authentication_factor_totp_and_challenge_response.py +0 -0
  93. {workos-5.29.0 → workos-5.30.0}/workos/types/mfa/enroll_authentication_factor_type.py +0 -0
  94. {workos-5.29.0 → workos-5.30.0}/workos/types/organization_domains/__init__.py +0 -0
  95. {workos-5.29.0 → workos-5.30.0}/workos/types/organization_domains/organization_domain.py +0 -0
  96. {workos-5.29.0 → workos-5.30.0}/workos/types/organizations/__init__.py +0 -0
  97. {workos-5.29.0 → workos-5.30.0}/workos/types/organizations/domain_data_input.py +0 -0
  98. {workos-5.29.0 → workos-5.30.0}/workos/types/organizations/list_filters.py +0 -0
  99. {workos-5.29.0 → workos-5.30.0}/workos/types/organizations/organization.py +0 -0
  100. {workos-5.29.0 → workos-5.30.0}/workos/types/organizations/organization_common.py +0 -0
  101. {workos-5.29.0 → workos-5.30.0}/workos/types/passwordless/__init__.py +0 -0
  102. {workos-5.29.0 → workos-5.30.0}/workos/types/passwordless/passwordless_session.py +0 -0
  103. {workos-5.29.0 → workos-5.30.0}/workos/types/passwordless/passwordless_session_type.py +0 -0
  104. {workos-5.29.0 → workos-5.30.0}/workos/types/portal/__init__.py +0 -0
  105. {workos-5.29.0 → workos-5.30.0}/workos/types/portal/portal_link.py +0 -0
  106. {workos-5.29.0 → workos-5.30.0}/workos/types/portal/portal_link_intent.py +0 -0
  107. {workos-5.29.0 → workos-5.30.0}/workos/types/portal/portal_link_intent_options.py +0 -0
  108. {workos-5.29.0 → workos-5.30.0}/workos/types/roles/__init__.py +0 -0
  109. {workos-5.29.0 → workos-5.30.0}/workos/types/roles/role.py +0 -0
  110. {workos-5.29.0 → workos-5.30.0}/workos/types/sso/__init__.py +0 -0
  111. {workos-5.29.0 → workos-5.30.0}/workos/types/sso/connection.py +0 -0
  112. {workos-5.29.0 → workos-5.30.0}/workos/types/sso/connection_domain.py +0 -0
  113. {workos-5.29.0 → workos-5.30.0}/workos/types/sso/profile.py +0 -0
  114. {workos-5.29.0 → workos-5.30.0}/workos/types/sso/sso_provider_type.py +0 -0
  115. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/__init__.py +0 -0
  116. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/authentication_response.py +0 -0
  117. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/email_verification.py +0 -0
  118. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/impersonator.py +0 -0
  119. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/invitation.py +0 -0
  120. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/list_filters.py +0 -0
  121. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/magic_auth.py +0 -0
  122. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/oauth_tokens.py +0 -0
  123. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/organization_membership.py +0 -0
  124. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/password_hash_type.py +0 -0
  125. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/password_reset.py +0 -0
  126. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/screen_hint.py +0 -0
  127. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/session.py +0 -0
  128. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/user.py +0 -0
  129. {workos-5.29.0 → workos-5.30.0}/workos/types/user_management/user_management_provider_type.py +0 -0
  130. {workos-5.29.0 → workos-5.30.0}/workos/types/vault/__init__.py +0 -0
  131. {workos-5.29.0 → workos-5.30.0}/workos/types/vault/key.py +0 -0
  132. {workos-5.29.0 → workos-5.30.0}/workos/types/vault/object.py +0 -0
  133. {workos-5.29.0 → workos-5.30.0}/workos/types/webhooks/__init__.py +0 -0
  134. {workos-5.29.0 → workos-5.30.0}/workos/types/webhooks/webhook.py +0 -0
  135. {workos-5.29.0 → workos-5.30.0}/workos/types/webhooks/webhook_model.py +0 -0
  136. {workos-5.29.0 → workos-5.30.0}/workos/types/webhooks/webhook_payload.py +0 -0
  137. {workos-5.29.0 → workos-5.30.0}/workos/types/widgets/__init__.py +0 -0
  138. {workos-5.29.0 → workos-5.30.0}/workos/types/widgets/widget_scope.py +0 -0
  139. {workos-5.29.0 → workos-5.30.0}/workos/types/widgets/widget_token_response.py +0 -0
  140. {workos-5.29.0 → workos-5.30.0}/workos/types/workos_model.py +0 -0
  141. {workos-5.29.0 → workos-5.30.0}/workos/typing/__init__.py +0 -0
  142. {workos-5.29.0 → workos-5.30.0}/workos/typing/literals.py +0 -0
  143. {workos-5.29.0 → workos-5.30.0}/workos/typing/sync_or_async.py +0 -0
  144. {workos-5.29.0 → workos-5.30.0}/workos/typing/untyped_literal.py +0 -0
  145. {workos-5.29.0 → workos-5.30.0}/workos/typing/webhooks.py +0 -0
  146. {workos-5.29.0 → workos-5.30.0}/workos/utils/__init__.py +0 -0
  147. {workos-5.29.0 → workos-5.30.0}/workos/utils/_base_http_client.py +0 -0
  148. {workos-5.29.0 → workos-5.30.0}/workos/utils/crypto_provider.py +0 -0
  149. {workos-5.29.0 → workos-5.30.0}/workos/utils/http_client.py +0 -0
  150. {workos-5.29.0 → workos-5.30.0}/workos/utils/pagination_order.py +0 -0
  151. {workos-5.29.0 → workos-5.30.0}/workos/utils/request_helper.py +0 -0
  152. {workos-5.29.0 → workos-5.30.0}/workos/vault.py +0 -0
  153. {workos-5.29.0 → workos-5.30.0}/workos/webhooks.py +0 -0
  154. {workos-5.29.0 → workos-5.30.0}/workos/widgets.py +0 -0
  155. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/SOURCES.txt +0 -0
  156. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/dependency_links.txt +0 -0
  157. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/not-zip-safe +0 -0
  158. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/requires.txt +0 -0
  159. {workos-5.29.0 → workos-5.30.0}/workos.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: workos
3
- Version: 5.29.0
3
+ Version: 5.30.0
4
4
  Summary: WorkOS Python Client
5
5
  Home-page: https://github.com/workos-inc/workos-python
6
6
  Author: WorkOS
@@ -718,6 +718,37 @@ class TestUserManagement(UserManagementFixtures):
718
718
  "grant_type": "authorization_code",
719
719
  }
720
720
 
721
+ def test_authenticate_with_code_with_invitation_token(
722
+ self,
723
+ capture_and_mock_http_client_request,
724
+ mock_auth_response,
725
+ base_authentication_params,
726
+ ):
727
+ params = {
728
+ "code": "test_code",
729
+ "code_verifier": "test_code_verifier",
730
+ "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
731
+ "ip_address": "192.0.0.1",
732
+ "invitation_token": "invitation_token_12345",
733
+ }
734
+ request_kwargs = capture_and_mock_http_client_request(
735
+ self.http_client, mock_auth_response, 200
736
+ )
737
+
738
+ response = syncify(self.user_management.authenticate_with_code(**params))
739
+
740
+ assert request_kwargs["url"].endswith("user_management/authenticate")
741
+ assert request_kwargs["method"] == "post"
742
+ assert response.user.id == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
743
+ assert response.organization_id == "org_12345"
744
+ assert response.access_token == "access_token_12345"
745
+ assert response.refresh_token == "refresh_token_12345"
746
+ assert request_kwargs["json"] == {
747
+ **params,
748
+ **base_authentication_params,
749
+ "grant_type": "authorization_code",
750
+ }
751
+
721
752
  def test_authenticate_with_magic_auth(
722
753
  self,
723
754
  capture_and_mock_http_client_request,
@@ -12,7 +12,7 @@ __package_name__ = "workos"
12
12
 
13
13
  __package_url__ = "https://github.com/workos-inc/workos-python"
14
14
 
15
- __version__ = "5.29.0"
15
+ __version__ = "5.30.0"
16
16
 
17
17
  __author__ = "WorkOS"
18
18
 
@@ -19,6 +19,7 @@ class AuthenticateWithCodeParameters(AuthenticateWithBaseParameters):
19
19
  code_verifier: Union[str, None]
20
20
  grant_type: Literal["authorization_code"]
21
21
  session: Union[SessionConfig, None]
22
+ invitation_token: Union[str, None]
22
23
 
23
24
 
24
25
  class AuthenticateWithMagicAuthParameters(AuthenticateWithBaseParameters):
@@ -488,6 +488,7 @@ class UserManagementModule(Protocol):
488
488
  code_verifier: Optional[str] = None,
489
489
  ip_address: Optional[str] = None,
490
490
  user_agent: Optional[str] = None,
491
+ invitation_token: Optional[str] = None,
491
492
  ) -> SyncOrAsync[AuthenticationResponse]:
492
493
  """Authenticates an OAuth user or a user that is logging in through SSO.
493
494
 
@@ -498,6 +499,7 @@ class UserManagementModule(Protocol):
498
499
  url as part of the PKCE flow. This parameter is required when the client secret is not present. (Optional)
499
500
  ip_address (str): The IP address of the request from the user who is attempting to authenticate. (Optional)
500
501
  user_agent (str): The user agent of the request from the user who is attempting to authenticate. (Optional)
502
+ invitation_token (str): The token of an Invitation, if required. (Optional)
501
503
 
502
504
  Returns:
503
505
  AuthenticationResponse: Authentication response from WorkOS.
@@ -1166,6 +1168,7 @@ class UserManagement(UserManagementModule):
1166
1168
  code_verifier: Optional[str] = None,
1167
1169
  ip_address: Optional[str] = None,
1168
1170
  user_agent: Optional[str] = None,
1171
+ invitation_token: Optional[str] = None,
1169
1172
  ) -> AuthKitAuthenticationResponse:
1170
1173
  if (
1171
1174
  session is not None
@@ -1181,6 +1184,7 @@ class UserManagement(UserManagementModule):
1181
1184
  "user_agent": user_agent,
1182
1185
  "code_verifier": code_verifier,
1183
1186
  "session": session,
1187
+ "invitation_token": invitation_token,
1184
1188
  }
1185
1189
 
1186
1190
  return self._authenticate_with(
@@ -1807,6 +1811,7 @@ class AsyncUserManagement(UserManagementModule):
1807
1811
  code_verifier: Optional[str] = None,
1808
1812
  ip_address: Optional[str] = None,
1809
1813
  user_agent: Optional[str] = None,
1814
+ invitation_token: Optional[str] = None,
1810
1815
  ) -> AuthKitAuthenticationResponse:
1811
1816
  if (
1812
1817
  session is not None
@@ -1822,6 +1827,7 @@ class AsyncUserManagement(UserManagementModule):
1822
1827
  "user_agent": user_agent,
1823
1828
  "code_verifier": code_verifier,
1824
1829
  "session": session,
1830
+ "invitation_token": invitation_token,
1825
1831
  }
1826
1832
 
1827
1833
  return await self._authenticate_with(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: workos
3
- Version: 5.29.0
3
+ Version: 5.30.0
4
4
  Summary: WorkOS Python Client
5
5
  Home-page: https://github.com/workos-inc/workos-python
6
6
  Author: WorkOS
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes