workos 5.28.0__tar.gz → 5.29.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 (160) hide show
  1. {workos-5.28.0 → workos-5.29.0}/PKG-INFO +1 -1
  2. {workos-5.28.0 → workos-5.29.0}/tests/test_organizations.py +34 -0
  3. {workos-5.28.0 → workos-5.29.0}/workos/__about__.py +1 -1
  4. {workos-5.28.0 → workos-5.29.0}/workos/organizations.py +85 -0
  5. workos-5.29.0/workos/types/feature_flags/__init__.py +3 -0
  6. workos-5.29.0/workos/types/feature_flags/feature_flag.py +12 -0
  7. workos-5.29.0/workos/types/feature_flags/list_filters.py +5 -0
  8. {workos-5.28.0 → workos-5.29.0}/workos/types/list_resource.py +2 -0
  9. {workos-5.28.0 → workos-5.29.0}/workos/types/sso/connection.py +1 -0
  10. {workos-5.28.0 → workos-5.29.0}/workos/types/sso/sso_provider_type.py +1 -0
  11. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/authentication_response.py +1 -0
  12. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/oauth_tokens.py +1 -0
  13. workos-5.29.0/workos/types/user_management/user_management_provider_type.py +11 -0
  14. {workos-5.28.0 → workos-5.29.0}/workos/user_management.py +1 -1
  15. {workos-5.28.0 → workos-5.29.0}/workos.egg-info/PKG-INFO +1 -1
  16. {workos-5.28.0 → workos-5.29.0}/workos.egg-info/SOURCES.txt +3 -0
  17. workos-5.28.0/workos/types/user_management/user_management_provider_type.py +0 -6
  18. {workos-5.28.0 → workos-5.29.0}/LICENSE +0 -0
  19. {workos-5.28.0 → workos-5.29.0}/README.md +0 -0
  20. {workos-5.28.0 → workos-5.29.0}/setup.cfg +0 -0
  21. {workos-5.28.0 → workos-5.29.0}/setup.py +0 -0
  22. {workos-5.28.0 → workos-5.29.0}/tests/test_async_http_client.py +0 -0
  23. {workos-5.28.0 → workos-5.29.0}/tests/test_audit_logs.py +0 -0
  24. {workos-5.28.0 → workos-5.29.0}/tests/test_client.py +0 -0
  25. {workos-5.28.0 → workos-5.29.0}/tests/test_directory_sync.py +0 -0
  26. {workos-5.28.0 → workos-5.29.0}/tests/test_events.py +0 -0
  27. {workos-5.28.0 → workos-5.29.0}/tests/test_fga.py +0 -0
  28. {workos-5.28.0 → workos-5.29.0}/tests/test_mfa.py +0 -0
  29. {workos-5.28.0 → workos-5.29.0}/tests/test_organization_domains.py +0 -0
  30. {workos-5.28.0 → workos-5.29.0}/tests/test_passwordless.py +0 -0
  31. {workos-5.28.0 → workos-5.29.0}/tests/test_portal.py +0 -0
  32. {workos-5.28.0 → workos-5.29.0}/tests/test_session.py +0 -0
  33. {workos-5.28.0 → workos-5.29.0}/tests/test_sso.py +0 -0
  34. {workos-5.28.0 → workos-5.29.0}/tests/test_sync_http_client.py +0 -0
  35. {workos-5.28.0 → workos-5.29.0}/tests/test_user_management.py +0 -0
  36. {workos-5.28.0 → workos-5.29.0}/tests/test_vault.py +0 -0
  37. {workos-5.28.0 → workos-5.29.0}/tests/test_webhooks.py +0 -0
  38. {workos-5.28.0 → workos-5.29.0}/tests/test_widgets.py +0 -0
  39. {workos-5.28.0 → workos-5.29.0}/workos/__init__.py +0 -0
  40. {workos-5.28.0 → workos-5.29.0}/workos/_base_client.py +0 -0
  41. {workos-5.28.0 → workos-5.29.0}/workos/_client_configuration.py +0 -0
  42. {workos-5.28.0 → workos-5.29.0}/workos/async_client.py +0 -0
  43. {workos-5.28.0 → workos-5.29.0}/workos/audit_logs.py +0 -0
  44. {workos-5.28.0 → workos-5.29.0}/workos/client.py +0 -0
  45. {workos-5.28.0 → workos-5.29.0}/workos/directory_sync.py +0 -0
  46. {workos-5.28.0 → workos-5.29.0}/workos/events.py +0 -0
  47. {workos-5.28.0 → workos-5.29.0}/workos/exceptions.py +0 -0
  48. {workos-5.28.0 → workos-5.29.0}/workos/fga.py +0 -0
  49. {workos-5.28.0 → workos-5.29.0}/workos/mfa.py +0 -0
  50. {workos-5.28.0 → workos-5.29.0}/workos/organization_domains.py +0 -0
  51. {workos-5.28.0 → workos-5.29.0}/workos/passwordless.py +0 -0
  52. {workos-5.28.0 → workos-5.29.0}/workos/portal.py +0 -0
  53. {workos-5.28.0 → workos-5.29.0}/workos/py.typed +0 -0
  54. {workos-5.28.0 → workos-5.29.0}/workos/session.py +0 -0
  55. {workos-5.28.0 → workos-5.29.0}/workos/sso.py +0 -0
  56. {workos-5.28.0 → workos-5.29.0}/workos/types/__init__.py +0 -0
  57. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/__init__.py +0 -0
  58. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_event.py +0 -0
  59. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_event_actor.py +0 -0
  60. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_event_context.py +0 -0
  61. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_event_target.py +0 -0
  62. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_export.py +0 -0
  63. {workos-5.28.0 → workos-5.29.0}/workos/types/audit_logs/audit_log_metadata.py +0 -0
  64. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/__init__.py +0 -0
  65. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/directory.py +0 -0
  66. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/directory_group.py +0 -0
  67. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/directory_state.py +0 -0
  68. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/directory_type.py +0 -0
  69. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/directory_user.py +0 -0
  70. {workos-5.28.0 → workos-5.29.0}/workos/types/directory_sync/list_filters.py +0 -0
  71. {workos-5.28.0 → workos-5.29.0}/workos/types/events/__init__.py +0 -0
  72. {workos-5.28.0 → workos-5.29.0}/workos/types/events/authentication_payload.py +0 -0
  73. {workos-5.28.0 → workos-5.29.0}/workos/types/events/connection_payload_with_legacy_fields.py +0 -0
  74. {workos-5.28.0 → workos-5.29.0}/workos/types/events/directory_group_membership_payload.py +0 -0
  75. {workos-5.28.0 → workos-5.29.0}/workos/types/events/directory_group_with_previous_attributes.py +0 -0
  76. {workos-5.28.0 → workos-5.29.0}/workos/types/events/directory_payload.py +0 -0
  77. {workos-5.28.0 → workos-5.29.0}/workos/types/events/directory_payload_with_legacy_fields.py +0 -0
  78. {workos-5.28.0 → workos-5.29.0}/workos/types/events/directory_user_with_previous_attributes.py +0 -0
  79. {workos-5.28.0 → workos-5.29.0}/workos/types/events/event.py +0 -0
  80. {workos-5.28.0 → workos-5.29.0}/workos/types/events/event_model.py +0 -0
  81. {workos-5.28.0 → workos-5.29.0}/workos/types/events/event_type.py +0 -0
  82. {workos-5.28.0 → workos-5.29.0}/workos/types/events/list_filters.py +0 -0
  83. {workos-5.28.0 → workos-5.29.0}/workos/types/events/organization_domain_verification_failed_payload.py +0 -0
  84. {workos-5.28.0 → workos-5.29.0}/workos/types/events/previous_attributes.py +0 -0
  85. {workos-5.28.0 → workos-5.29.0}/workos/types/events/session_created_payload.py +0 -0
  86. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/__init__.py +0 -0
  87. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/authorization_resource_types.py +0 -0
  88. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/authorization_resources.py +0 -0
  89. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/check.py +0 -0
  90. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/list_filters.py +0 -0
  91. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/warnings.py +0 -0
  92. {workos-5.28.0 → workos-5.29.0}/workos/types/fga/warrant.py +0 -0
  93. {workos-5.28.0 → workos-5.29.0}/workos/types/metadata.py +0 -0
  94. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/__init__.py +0 -0
  95. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/authentication_challenge.py +0 -0
  96. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/authentication_challenge_verification_response.py +0 -0
  97. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/authentication_factor.py +0 -0
  98. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/authentication_factor_totp_and_challenge_response.py +0 -0
  99. {workos-5.28.0 → workos-5.29.0}/workos/types/mfa/enroll_authentication_factor_type.py +0 -0
  100. {workos-5.28.0 → workos-5.29.0}/workos/types/organization_domains/__init__.py +0 -0
  101. {workos-5.28.0 → workos-5.29.0}/workos/types/organization_domains/organization_domain.py +0 -0
  102. {workos-5.28.0 → workos-5.29.0}/workos/types/organizations/__init__.py +0 -0
  103. {workos-5.28.0 → workos-5.29.0}/workos/types/organizations/domain_data_input.py +0 -0
  104. {workos-5.28.0 → workos-5.29.0}/workos/types/organizations/list_filters.py +0 -0
  105. {workos-5.28.0 → workos-5.29.0}/workos/types/organizations/organization.py +0 -0
  106. {workos-5.28.0 → workos-5.29.0}/workos/types/organizations/organization_common.py +0 -0
  107. {workos-5.28.0 → workos-5.29.0}/workos/types/passwordless/__init__.py +0 -0
  108. {workos-5.28.0 → workos-5.29.0}/workos/types/passwordless/passwordless_session.py +0 -0
  109. {workos-5.28.0 → workos-5.29.0}/workos/types/passwordless/passwordless_session_type.py +0 -0
  110. {workos-5.28.0 → workos-5.29.0}/workos/types/portal/__init__.py +0 -0
  111. {workos-5.28.0 → workos-5.29.0}/workos/types/portal/portal_link.py +0 -0
  112. {workos-5.28.0 → workos-5.29.0}/workos/types/portal/portal_link_intent.py +0 -0
  113. {workos-5.28.0 → workos-5.29.0}/workos/types/portal/portal_link_intent_options.py +0 -0
  114. {workos-5.28.0 → workos-5.29.0}/workos/types/roles/__init__.py +0 -0
  115. {workos-5.28.0 → workos-5.29.0}/workos/types/roles/role.py +0 -0
  116. {workos-5.28.0 → workos-5.29.0}/workos/types/sso/__init__.py +0 -0
  117. {workos-5.28.0 → workos-5.29.0}/workos/types/sso/connection_domain.py +0 -0
  118. {workos-5.28.0 → workos-5.29.0}/workos/types/sso/profile.py +0 -0
  119. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/__init__.py +0 -0
  120. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/authenticate_with_common.py +0 -0
  121. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/email_verification.py +0 -0
  122. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/impersonator.py +0 -0
  123. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/invitation.py +0 -0
  124. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/list_filters.py +0 -0
  125. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/magic_auth.py +0 -0
  126. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/organization_membership.py +0 -0
  127. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/password_hash_type.py +0 -0
  128. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/password_reset.py +0 -0
  129. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/screen_hint.py +0 -0
  130. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/session.py +0 -0
  131. {workos-5.28.0 → workos-5.29.0}/workos/types/user_management/user.py +0 -0
  132. {workos-5.28.0 → workos-5.29.0}/workos/types/vault/__init__.py +0 -0
  133. {workos-5.28.0 → workos-5.29.0}/workos/types/vault/key.py +0 -0
  134. {workos-5.28.0 → workos-5.29.0}/workos/types/vault/object.py +0 -0
  135. {workos-5.28.0 → workos-5.29.0}/workos/types/webhooks/__init__.py +0 -0
  136. {workos-5.28.0 → workos-5.29.0}/workos/types/webhooks/webhook.py +0 -0
  137. {workos-5.28.0 → workos-5.29.0}/workos/types/webhooks/webhook_model.py +0 -0
  138. {workos-5.28.0 → workos-5.29.0}/workos/types/webhooks/webhook_payload.py +0 -0
  139. {workos-5.28.0 → workos-5.29.0}/workos/types/widgets/__init__.py +0 -0
  140. {workos-5.28.0 → workos-5.29.0}/workos/types/widgets/widget_scope.py +0 -0
  141. {workos-5.28.0 → workos-5.29.0}/workos/types/widgets/widget_token_response.py +0 -0
  142. {workos-5.28.0 → workos-5.29.0}/workos/types/workos_model.py +0 -0
  143. {workos-5.28.0 → workos-5.29.0}/workos/typing/__init__.py +0 -0
  144. {workos-5.28.0 → workos-5.29.0}/workos/typing/literals.py +0 -0
  145. {workos-5.28.0 → workos-5.29.0}/workos/typing/sync_or_async.py +0 -0
  146. {workos-5.28.0 → workos-5.29.0}/workos/typing/untyped_literal.py +0 -0
  147. {workos-5.28.0 → workos-5.29.0}/workos/typing/webhooks.py +0 -0
  148. {workos-5.28.0 → workos-5.29.0}/workos/utils/__init__.py +0 -0
  149. {workos-5.28.0 → workos-5.29.0}/workos/utils/_base_http_client.py +0 -0
  150. {workos-5.28.0 → workos-5.29.0}/workos/utils/crypto_provider.py +0 -0
  151. {workos-5.28.0 → workos-5.29.0}/workos/utils/http_client.py +0 -0
  152. {workos-5.28.0 → workos-5.29.0}/workos/utils/pagination_order.py +0 -0
  153. {workos-5.28.0 → workos-5.29.0}/workos/utils/request_helper.py +0 -0
  154. {workos-5.28.0 → workos-5.29.0}/workos/vault.py +0 -0
  155. {workos-5.28.0 → workos-5.29.0}/workos/webhooks.py +0 -0
  156. {workos-5.28.0 → workos-5.29.0}/workos/widgets.py +0 -0
  157. {workos-5.28.0 → workos-5.29.0}/workos.egg-info/dependency_links.txt +0 -0
  158. {workos-5.28.0 → workos-5.29.0}/workos.egg-info/not-zip-safe +0 -0
  159. {workos-5.28.0 → workos-5.29.0}/workos.egg-info/requires.txt +0 -0
  160. {workos-5.28.0 → workos-5.29.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.28.0
3
+ Version: 5.29.0
4
4
  Summary: WorkOS Python Client
5
5
  Home-page: https://github.com/workos-inc/workos-python
6
6
  Author: WorkOS
@@ -2,6 +2,7 @@ import datetime
2
2
  from typing import Union
3
3
  import pytest
4
4
  from tests.types.test_auto_pagination_function import TestAutoPaginationFunction
5
+ from tests.utils.fixtures.mock_feature_flag import MockFeatureFlag
5
6
  from tests.utils.fixtures.mock_organization import MockOrganization
6
7
  from tests.utils.fixtures.mock_role import MockRole
7
8
  from tests.utils.list_resource import list_response_of
@@ -77,6 +78,14 @@ class TestOrganizations:
77
78
  "object": "list",
78
79
  }
79
80
 
81
+ @pytest.fixture
82
+ def mock_feature_flags(self):
83
+ return {
84
+ "data": [MockFeatureFlag(id=f"flag_{str(i)}").dict() for i in range(2)],
85
+ "object": "list",
86
+ "list_metadata": {"before": None, "after": None},
87
+ }
88
+
80
89
  def test_list_organizations(
81
90
  self, mock_organizations, capture_and_mock_http_client_request
82
91
  ):
@@ -264,3 +273,28 @@ class TestOrganizations:
264
273
  list(map(to_dict, organization_roles_response.data))
265
274
  == mock_organization_roles["data"]
266
275
  )
276
+
277
+ def test_list_feature_flags(
278
+ self, mock_feature_flags, capture_and_mock_http_client_request
279
+ ):
280
+ request_kwargs = capture_and_mock_http_client_request(
281
+ self.http_client, mock_feature_flags, 200
282
+ )
283
+
284
+ feature_flags_response = syncify(
285
+ self.organizations.list_feature_flags(
286
+ organization_id="org_01EHT88Z8J8795GZNQ4ZP1J81T"
287
+ )
288
+ )
289
+
290
+ def to_dict(x):
291
+ return x.dict()
292
+
293
+ assert request_kwargs["method"] == "get"
294
+ assert request_kwargs["url"].endswith(
295
+ "/organizations/org_01EHT88Z8J8795GZNQ4ZP1J81T/feature-flags"
296
+ )
297
+ assert (
298
+ list(map(to_dict, feature_flags_response.data))
299
+ == mock_feature_flags["data"]
300
+ )
@@ -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.28.0"
15
+ __version__ = "5.29.0"
16
16
 
17
17
  __author__ = "WorkOS"
18
18
 
@@ -1,5 +1,7 @@
1
1
  from typing import Optional, Protocol, Sequence
2
2
 
3
+ from workos.types.feature_flags import FeatureFlag
4
+ from workos.types.feature_flags.list_filters import FeatureFlagListFilters
3
5
  from workos.types.metadata import Metadata
4
6
  from workos.types.organizations.domain_data_input import DomainDataInput
5
7
  from workos.types.organizations.list_filters import OrganizationListFilters
@@ -24,6 +26,10 @@ OrganizationsListResource = WorkOSListResource[
24
26
  Organization, OrganizationListFilters, ListMetadata
25
27
  ]
26
28
 
29
+ FeatureFlagsListResource = WorkOSListResource[
30
+ FeatureFlag, FeatureFlagListFilters, ListMetadata
31
+ ]
32
+
27
33
 
28
34
  class OrganizationsModule(Protocol):
29
35
  """Offers methods through the WorkOS Organizations service."""
@@ -128,6 +134,29 @@ class OrganizationsModule(Protocol):
128
134
  """
129
135
  ...
130
136
 
137
+ def list_feature_flags(
138
+ self,
139
+ organization_id: str,
140
+ *,
141
+ limit: int = DEFAULT_LIST_RESPONSE_LIMIT,
142
+ before: Optional[str] = None,
143
+ after: Optional[str] = None,
144
+ order: PaginationOrder = "desc",
145
+ ) -> SyncOrAsync[FeatureFlagsListResource]:
146
+ """Retrieve a list of feature flags for an organization
147
+
148
+ Args:
149
+ organization_id (str): Organization's unique identifier
150
+ limit (int): Maximum number of records to return. (Optional)
151
+ before (str): Pagination cursor to receive records before a provided Feature Flag ID. (Optional)
152
+ after (str): Pagination cursor to receive records after a provided Feature Flag ID. (Optional)
153
+ order (Literal["asc","desc"]): Sort records in either ascending or descending (default) order by created_at timestamp. (Optional)
154
+
155
+ Returns:
156
+ FeatureFlagsListResource: Feature flags list response from WorkOS.
157
+ """
158
+ ...
159
+
131
160
 
132
161
  class Organizations(OrganizationsModule):
133
162
  _http_client: SyncHTTPClient
@@ -247,6 +276,34 @@ class Organizations(OrganizationsModule):
247
276
 
248
277
  return RoleList.model_validate(response)
249
278
 
279
+ def list_feature_flags(
280
+ self,
281
+ organization_id: str,
282
+ *,
283
+ limit: int = DEFAULT_LIST_RESPONSE_LIMIT,
284
+ before: Optional[str] = None,
285
+ after: Optional[str] = None,
286
+ order: PaginationOrder = "desc",
287
+ ) -> FeatureFlagsListResource:
288
+ list_params: FeatureFlagListFilters = {
289
+ "limit": limit,
290
+ "before": before,
291
+ "after": after,
292
+ "order": order,
293
+ }
294
+
295
+ response = self._http_client.request(
296
+ f"organizations/{organization_id}/feature-flags",
297
+ method=REQUEST_METHOD_GET,
298
+ params=list_params,
299
+ )
300
+
301
+ return WorkOSListResource[FeatureFlag, FeatureFlagListFilters, ListMetadata](
302
+ list_method=self.list_feature_flags,
303
+ list_args=list_params,
304
+ **ListPage[FeatureFlag](**response).model_dump(),
305
+ )
306
+
250
307
 
251
308
  class AsyncOrganizations(OrganizationsModule):
252
309
  _http_client: AsyncHTTPClient
@@ -365,3 +422,31 @@ class AsyncOrganizations(OrganizationsModule):
365
422
  )
366
423
 
367
424
  return RoleList.model_validate(response)
425
+
426
+ async def list_feature_flags(
427
+ self,
428
+ organization_id: str,
429
+ *,
430
+ limit: int = DEFAULT_LIST_RESPONSE_LIMIT,
431
+ before: Optional[str] = None,
432
+ after: Optional[str] = None,
433
+ order: PaginationOrder = "desc",
434
+ ) -> FeatureFlagsListResource:
435
+ list_params: FeatureFlagListFilters = {
436
+ "limit": limit,
437
+ "before": before,
438
+ "after": after,
439
+ "order": order,
440
+ }
441
+
442
+ response = await self._http_client.request(
443
+ f"organizations/{organization_id}/feature-flags",
444
+ method=REQUEST_METHOD_GET,
445
+ params=list_params,
446
+ )
447
+
448
+ return WorkOSListResource[FeatureFlag, FeatureFlagListFilters, ListMetadata](
449
+ list_method=self.list_feature_flags,
450
+ list_args=list_params,
451
+ **ListPage[FeatureFlag](**response).model_dump(),
452
+ )
@@ -0,0 +1,3 @@
1
+ from workos.types.feature_flags.feature_flag import FeatureFlag
2
+
3
+ __all__ = ["FeatureFlag"]
@@ -0,0 +1,12 @@
1
+ from typing import Literal, Optional
2
+ from workos.types.workos_model import WorkOSModel
3
+
4
+
5
+ class FeatureFlag(WorkOSModel):
6
+ id: str
7
+ object: Literal["feature_flag"]
8
+ slug: str
9
+ name: str
10
+ description: Optional[str]
11
+ created_at: str
12
+ updated_at: str
@@ -0,0 +1,5 @@
1
+ from workos.types.list_resource import ListArgs
2
+
3
+
4
+ class FeatureFlagListFilters(ListArgs, total=False):
5
+ pass
@@ -23,6 +23,7 @@ from workos.types.directory_sync import (
23
23
  DirectoryUserWithGroups,
24
24
  )
25
25
  from workos.types.events import Event
26
+ from workos.types.feature_flags import FeatureFlag
26
27
  from workos.types.fga import (
27
28
  Warrant,
28
29
  AuthorizationResource,
@@ -46,6 +47,7 @@ ListableResource = TypeVar(
46
47
  DirectoryGroup,
47
48
  DirectoryUserWithGroups,
48
49
  Event,
50
+ FeatureFlag,
49
51
  Invitation,
50
52
  Organization,
51
53
  OrganizationMembership,
@@ -37,6 +37,7 @@ ConnectionType = Literal[
37
37
  "PingFederateSAML",
38
38
  "PingOneSAML",
39
39
  "RipplingSAML",
40
+ "SalesforceOAuth",
40
41
  "SalesforceSAML",
41
42
  "ShibbolethGenericSAML",
42
43
  "ShibbolethSAML",
@@ -6,4 +6,5 @@ SsoProviderType = Literal[
6
6
  "GitHubOAuth",
7
7
  "GoogleOAuth",
8
8
  "MicrosoftOAuth",
9
+ "SalesforceOAuth",
9
10
  ]
@@ -13,6 +13,7 @@ AuthenticationMethod = Literal[
13
13
  "GitHubOAuth",
14
14
  "GoogleOAuth",
15
15
  "MicrosoftOAuth",
16
+ "SalesforceOAuth",
16
17
  "MagicAuth",
17
18
  "Impersonation",
18
19
  ]
@@ -7,6 +7,7 @@ OAuthTokensProvidersType = Literal[
7
7
  "GitHubOauth",
8
8
  "GoogleOauth",
9
9
  "MicrosoftOauth",
10
+ "SalesforceOauth",
10
11
  ]
11
12
 
12
13
 
@@ -0,0 +1,11 @@
1
+ from typing import Literal
2
+
3
+
4
+ UserManagementProviderType = Literal[
5
+ "authkit",
6
+ "AppleOAuth",
7
+ "GitHubOAuth",
8
+ "GoogleOAuth",
9
+ "MicrosoftOAuth",
10
+ "SalesforceOAuth",
11
+ ]
@@ -396,7 +396,7 @@ class UserManagementModule(Protocol):
396
396
  organization_id (str): The organization_id connection selector is used to initiate SSO for an Organization.
397
397
  The value of this parameter should be a WorkOS Organization ID. (Optional)
398
398
  provider (UserManagementProviderType): The provider connection selector is used to initiate SSO using an OAuth-compatible provider.
399
- Currently, the supported values for provider are 'authkit', 'AppleOAuth', 'GitHubOAuth, 'GoogleOAuth', and 'MicrosoftOAuth'. (Optional)
399
+ Currently, the supported values for provider are 'authkit', 'AppleOAuth', 'GitHubOAuth, 'GoogleOAuth', 'MicrosoftOAuth', and 'SalesforceOAuth'. (Optional)
400
400
  provider_scopes (Sequence[str]): Can be used to specify additional scopes that will be requested when initiating SSO using an OAuth provider. (Optional)
401
401
  domain_hint (str): Can be used to pre-fill the domain field when initiating authentication with Microsoft OAuth,
402
402
  or with a GoogleSAML connection type. (Optional)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: workos
3
- Version: 5.28.0
3
+ Version: 5.29.0
4
4
  Summary: WorkOS Python Client
5
5
  Home-page: https://github.com/workos-inc/workos-python
6
6
  Author: WorkOS
@@ -81,6 +81,9 @@ workos/types/events/list_filters.py
81
81
  workos/types/events/organization_domain_verification_failed_payload.py
82
82
  workos/types/events/previous_attributes.py
83
83
  workos/types/events/session_created_payload.py
84
+ workos/types/feature_flags/__init__.py
85
+ workos/types/feature_flags/feature_flag.py
86
+ workos/types/feature_flags/list_filters.py
84
87
  workos/types/fga/__init__.py
85
88
  workos/types/fga/authorization_resource_types.py
86
89
  workos/types/fga/authorization_resources.py
@@ -1,6 +0,0 @@
1
- from typing import Literal
2
-
3
-
4
- UserManagementProviderType = Literal[
5
- "authkit", "AppleOAuth", "GitHubOAuth", "GoogleOAuth", "MicrosoftOAuth"
6
- ]
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