workos 9.4.0 → 10.0.0

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 (199) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/block-generated-edits.yml +13 -0
  3. data/.github/workflows/ci.yml +1 -1
  4. data/.github/workflows/docs.yml +1 -1
  5. data/.github/workflows/lint.yml +1 -1
  6. data/.github/workflows/release-please.yml +7 -1
  7. data/.github/workflows/release.yml +1 -1
  8. data/.last-synced-sha +1 -1
  9. data/.oagen-manifest.json +197 -68
  10. data/.release-please-manifest.json +1 -1
  11. data/CHANGELOG.md +103 -0
  12. data/Gemfile.lock +2 -2
  13. data/README.md +15 -14
  14. data/lib/workos/agents/agent_admin_link_claim_attempt_to_external_user_request.rb +28 -0
  15. data/lib/workos/agents/agent_admin_link_claim_attempt_to_external_user_request_user.rb +22 -0
  16. data/lib/workos/agents/agent_admin_validate_credential_request.rb +25 -0
  17. data/lib/workos/agents/agent_credential_validation.rb +25 -0
  18. data/lib/workos/agents/agent_registration.rb +40 -0
  19. data/lib/workos/agents/agent_registration_agent_identity.rb +28 -0
  20. data/lib/workos/agents/agent_registration_claim.rb +31 -0
  21. data/lib/workos/agents/agent_registration_claim_claim_completion.rb +31 -0
  22. data/lib/workos/agents/claim_view_response.rb +28 -0
  23. data/lib/workos/agents/claim_view_response_organization.rb +7 -0
  24. data/lib/workos/agents.rb +93 -0
  25. data/lib/workos/api_keys/api_key_validation_response.rb +6 -2
  26. data/lib/workos/api_keys.rb +3 -4
  27. data/lib/workos/authorization/permission_created_data.rb +1 -34
  28. data/lib/workos/authorization/permission_deleted_data.rb +1 -1
  29. data/lib/workos/authorization/permission_updated_data.rb +1 -1
  30. data/lib/workos/authorization.rb +24 -24
  31. data/lib/workos/base_client.rb +4 -4
  32. data/lib/workos/client.rb +4 -0
  33. data/lib/workos/connect.rb +23 -19
  34. data/lib/workos/directory_sync.rb +10 -2
  35. data/lib/workos/groups.rb +7 -7
  36. data/lib/workos/inflections.rb +0 -1
  37. data/lib/workos/organization_domains.rb +4 -4
  38. data/lib/workos/organizations/organization_authorized_connect_application_list_data.rb +34 -0
  39. data/lib/workos/organizations.rb +57 -10
  40. data/lib/workos/pipes/api_key_installation.rb +25 -0
  41. data/lib/workos/pipes/{connected_account_dto.rb → connected_account_input.rb} +1 -1
  42. data/lib/workos/pipes/create_data_integration.rb +7 -1
  43. data/lib/workos/pipes/data_integration.rb +6 -0
  44. data/lib/workos/pipes/{data_integration_credentials_dto.rb → data_integration_credentials_input.rb} +1 -1
  45. data/lib/workos/pipes/data_integration_installation.rb +28 -0
  46. data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +1 -19
  47. data/lib/workos/pipes/update_data_integration.rb +4 -1
  48. data/lib/workos/pipes.rb +25 -16
  49. data/lib/workos/pipes_provider.rb +2 -2
  50. data/lib/workos/shared/access_token_agent_registration_credential_issued_data_detail.rb +25 -0
  51. data/lib/workos/shared/agent_registration_claim_attempt_created.rb +34 -0
  52. data/lib/workos/shared/agent_registration_claim_attempt_created_data.rb +40 -0
  53. data/lib/workos/shared/agent_registration_claim_completed.rb +34 -0
  54. data/lib/workos/shared/agent_registration_claim_completed_data.rb +40 -0
  55. data/lib/workos/shared/agent_registration_claim_completed_data_claimed_by.rb +22 -0
  56. data/lib/workos/shared/agent_registration_created.rb +34 -0
  57. data/lib/workos/{organization_domains/organization_domain_stand_alone.rb → shared/agent_registration_created_data.rb} +13 -16
  58. data/lib/workos/shared/agent_registration_created_data_agent_identity.rb +25 -0
  59. data/lib/workos/shared/agent_registration_credential_issued.rb +34 -0
  60. data/lib/workos/shared/agent_registration_credential_issued_data.rb +34 -0
  61. data/lib/workos/shared/agent_registration_credential_issued_data_detail.rb +22 -0
  62. data/lib/workos/shared/agent_registration_deleted.rb +34 -0
  63. data/lib/workos/shared/agent_registration_deleted_data.rb +18 -0
  64. data/lib/workos/shared/agent_registration_expired.rb +34 -0
  65. data/lib/workos/shared/agent_registration_expired_data.rb +7 -0
  66. data/lib/workos/shared/agent_registration_organization_switched.rb +34 -0
  67. data/lib/workos/shared/agent_registration_organization_switched_data.rb +25 -0
  68. data/lib/workos/shared/agent_registration_revoked.rb +34 -0
  69. data/lib/workos/shared/agent_registration_revoked_data.rb +7 -0
  70. data/lib/workos/shared/pipes_connected_account_connection_failed.rb +34 -0
  71. data/lib/workos/shared/pipes_connected_account_connection_failed_data.rb +46 -0
  72. data/lib/workos/shared/radar_challenge_created.rb +34 -0
  73. data/lib/workos/shared/radar_challenge_created_data.rb +28 -0
  74. data/lib/workos/sso/connection.rb +3 -3
  75. data/lib/workos/types/agent_admin_validate_credential_request_type.rb +13 -0
  76. data/lib/workos/types/agent_registration_created_data_kind.rb +14 -0
  77. data/lib/workos/types/agent_registration_created_data_method.rb +14 -0
  78. data/lib/workos/types/agent_registration_created_data_status.rb +15 -0
  79. data/lib/workos/types/{data_integration_credentials_type.rb → agent_registration_kind.rb} +1 -1
  80. data/lib/workos/types/{organization_domain_stand_alone_state.rb → agent_registration_status.rb} +1 -1
  81. data/lib/workos/types/applications_registration_types.rb +13 -0
  82. data/lib/workos/types/{organization_domain_stand_alone_verification_strategy.rb → claim_view_response_status.rb} +1 -1
  83. data/lib/workos/types/connected_account_input_state.rb +13 -0
  84. data/lib/workos/types/connected_account_state.rb +2 -1
  85. data/lib/workos/types/create_data_integration_auth_methods.rb +9 -0
  86. data/lib/workos/types/create_user_password_hash_type.rb +2 -1
  87. data/lib/workos/types/create_webhook_endpoint_events.rb +5 -1
  88. data/lib/workos/types/data_integration_auth_methods.rb +9 -0
  89. data/lib/workos/types/data_integration_credentials_input_type.rb +9 -0
  90. data/lib/workos/types/data_integrations_list_response_data_connected_account_state.rb +1 -6
  91. data/lib/workos/types/pipe_connected_account_state.rb +1 -5
  92. data/lib/workos/types/vault_kek_deleted_data_actor_source.rb +9 -0
  93. data/lib/workos/user_management/authentication_reauthentication_succeeded.rb +34 -0
  94. data/lib/workos/user_management/authentication_reauthentication_succeeded_data.rb +34 -0
  95. data/lib/workos/user_management/magic_auth_send_magic_auth_code_and_return_response.rb +26 -1
  96. data/lib/workos/user_management/radar_challenge.rb +43 -0
  97. data/lib/workos/user_management/user_create_response.rb +55 -1
  98. data/lib/workos/user_management.rb +155 -26
  99. data/lib/workos/vault/vault_kek_deleted.rb +34 -0
  100. data/lib/workos/vault/vault_kek_deleted_data.rb +31 -0
  101. data/lib/workos/vault.rb +4 -4
  102. data/lib/workos/version.rb +1 -1
  103. data/lib/workos/widgets.rb +2 -2
  104. data/lib/workos.rb +11 -0
  105. data/rbi/workos/access_token_agent_registration_credential_issued_data_detail.rbi +36 -0
  106. data/rbi/workos/agent_admin_link_claim_attempt_to_external_user_request.rbi +42 -0
  107. data/rbi/workos/agent_admin_link_claim_attempt_to_external_user_request_user.rbi +30 -0
  108. data/rbi/workos/agent_admin_validate_credential_request.rbi +36 -0
  109. data/rbi/workos/{sso_intent_options.rbi → agent_credential_validation.rbi} +11 -5
  110. data/rbi/workos/agent_registration.rbi +66 -0
  111. data/rbi/workos/agent_registration_agent_identity.rbi +42 -0
  112. data/rbi/workos/agent_registration_claim.rbi +48 -0
  113. data/rbi/workos/agent_registration_claim_attempt_created.rbi +54 -0
  114. data/rbi/workos/agent_registration_claim_attempt_created_data.rbi +66 -0
  115. data/rbi/workos/agent_registration_claim_claim_completion.rbi +48 -0
  116. data/rbi/workos/agent_registration_claim_completed.rbi +54 -0
  117. data/rbi/workos/agent_registration_claim_completed_data.rbi +66 -0
  118. data/rbi/workos/agent_registration_claim_completed_data_claimed_by.rbi +30 -0
  119. data/rbi/workos/agent_registration_created.rbi +54 -0
  120. data/rbi/workos/agent_registration_created_data.rbi +72 -0
  121. data/rbi/workos/agent_registration_created_data_agent_identity.rbi +36 -0
  122. data/rbi/workos/agent_registration_credential_issued.rbi +54 -0
  123. data/rbi/workos/agent_registration_credential_issued_data.rbi +54 -0
  124. data/rbi/workos/agent_registration_credential_issued_data_detail.rbi +30 -0
  125. data/rbi/workos/agent_registration_deleted.rbi +54 -0
  126. data/rbi/workos/{connection_option.rbi → agent_registration_deleted_data.rbi} +5 -5
  127. data/rbi/workos/agent_registration_expired.rbi +54 -0
  128. data/rbi/workos/{domain_verification_intent_options.rbi → agent_registration_expired_data.rbi} +5 -5
  129. data/rbi/workos/agent_registration_organization_switched.rbi +54 -0
  130. data/rbi/workos/agent_registration_organization_switched_data.rbi +36 -0
  131. data/rbi/workos/agent_registration_revoked.rbi +54 -0
  132. data/rbi/workos/agent_registration_revoked_data.rbi +24 -0
  133. data/rbi/workos/agents.rbi +42 -0
  134. data/rbi/workos/api_key_installation.rbi +36 -0
  135. data/rbi/workos/api_key_validation_response.rbi +6 -0
  136. data/rbi/workos/authentication_reauthentication_succeeded.rbi +54 -0
  137. data/rbi/workos/authentication_reauthentication_succeeded_data.rbi +54 -0
  138. data/rbi/workos/claim_view_response.rbi +42 -0
  139. data/rbi/workos/claim_view_response_organization.rbi +30 -0
  140. data/rbi/workos/client.rbi +3 -0
  141. data/rbi/workos/connect.rbi +2 -1
  142. data/rbi/workos/{connected_account_dto.rbi → connected_account_input.rbi} +1 -1
  143. data/rbi/workos/connection.rbi +4 -4
  144. data/rbi/workos/create_data_integration.rbi +14 -2
  145. data/rbi/workos/data_integration.rbi +12 -0
  146. data/rbi/workos/{data_integration_credentials_dto.rbi → data_integration_credentials_input.rbi} +1 -1
  147. data/rbi/workos/data_integration_installation.rbi +42 -0
  148. data/rbi/workos/directory_sync.rbi +3 -1
  149. data/rbi/workos/magic_auth_send_magic_auth_code_and_return_response.rbi +48 -0
  150. data/rbi/workos/organization_authorized_connect_application_list_data.rbi +54 -0
  151. data/rbi/workos/organization_domains.rbi +2 -2
  152. data/rbi/workos/organizations.rbi +12 -0
  153. data/rbi/workos/permission_created_data.rbi +6 -0
  154. data/rbi/workos/permission_deleted_data.rbi +6 -0
  155. data/rbi/workos/permission_updated_data.rbi +6 -0
  156. data/rbi/workos/pipes.rbi +7 -4
  157. data/rbi/workos/pipes_connected_account_connection_failed.rbi +54 -0
  158. data/rbi/workos/{organization_domain_stand_alone.rbi → pipes_connected_account_connection_failed_data.rbi} +23 -23
  159. data/rbi/workos/radar_challenge.rbi +72 -0
  160. data/rbi/workos/radar_challenge_created.rbi +54 -0
  161. data/rbi/workos/radar_challenge_created_data.rbi +42 -0
  162. data/rbi/workos/update_data_integration.rbi +8 -2
  163. data/rbi/workos/user_create_response.rbi +84 -0
  164. data/rbi/workos/user_management.rbi +16 -0
  165. data/rbi/workos/vault_kek_deleted.rbi +54 -0
  166. data/rbi/workos/vault_kek_deleted_data.rbi +48 -0
  167. data/rbi/workos/widget_session_token.rbi +2 -2
  168. data/rbi/workos/widgets.rbi +1 -1
  169. data/test/workos/test_agents.rb +49 -0
  170. data/test/workos/test_agents_model_round_trip.rb +165 -0
  171. data/test/workos/test_api_keys_model_round_trip.rb +307 -0
  172. data/test/workos/test_authorization_model_round_trip.rb +237 -0
  173. data/test/workos/test_base_client.rb +27 -0
  174. data/test/workos/test_client_api_model_round_trip.rb +31 -0
  175. data/test/workos/test_connect_model_round_trip.rb +175 -0
  176. data/test/workos/test_directory_sync_model_round_trip.rb +579 -0
  177. data/test/workos/test_feature_flags_model_round_trip.rb +580 -0
  178. data/test/workos/test_groups_model_round_trip.rb +56 -0
  179. data/test/workos/test_multi_factor_auth_model_round_trip.rb +192 -0
  180. data/test/workos/test_organization_domains_model_round_trip.rb +260 -0
  181. data/test/workos/test_organization_membership_model_round_trip.rb +89 -0
  182. data/test/workos/test_organizations.rb +9 -1
  183. data/test/workos/test_organizations_model_round_trip.rb +602 -0
  184. data/test/workos/test_pipes_model_round_trip.rb +40 -4
  185. data/test/workos/test_pipes_provider_model_round_trip.rb +75 -0
  186. data/test/workos/test_shared_model_round_trip.rb +787 -0
  187. data/test/workos/test_sso_model_round_trip.rb +422 -0
  188. data/test/workos/test_user_management.rb +46 -0
  189. data/test/workos/test_user_management_model_round_trip.rb +1540 -0
  190. data/test/workos/test_vault_model_round_trip.rb +571 -0
  191. data/test/workos/test_widgets.rb +2 -2
  192. data/test/workos/test_widgets_model_round_trip.rb +30 -0
  193. metadata +118 -19
  194. data/lib/workos/admin_portal/domain_verification_intent_options.rb +0 -18
  195. data/lib/workos/admin_portal/intent_options.rb +0 -22
  196. data/lib/workos/admin_portal/sso_intent_options.rb +0 -22
  197. data/lib/workos/sso/connection_option.rb +0 -18
  198. data/rbi/workos/intent_options.rbi +0 -30
  199. data/test/workos/test_model_round_trip.rb +0 -6
@@ -5,13 +5,38 @@
5
5
  module WorkOS
6
6
  class MagicAuthSendMagicAuthCodeAndReturnResponse < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
+ object: :object,
9
+ id: :id,
10
+ user_id: :user_id,
11
+ email: :email,
12
+ expires_at: :expires_at,
13
+ created_at: :created_at,
14
+ updated_at: :updated_at,
15
+ code: :code,
8
16
  radar_auth_attempt_id: :radar_auth_attempt_id
9
17
  }.freeze
10
18
 
11
- attr_accessor :radar_auth_attempt_id
19
+ attr_accessor \
20
+ :object,
21
+ :id,
22
+ :user_id,
23
+ :email,
24
+ :expires_at,
25
+ :created_at,
26
+ :updated_at,
27
+ :code,
28
+ :radar_auth_attempt_id
12
29
 
13
30
  def initialize(json)
14
31
  hash = self.class.normalize(json)
32
+ @object = hash[:object]
33
+ @id = hash[:id]
34
+ @user_id = hash[:user_id]
35
+ @email = hash[:email]
36
+ @expires_at = hash[:expires_at]
37
+ @created_at = hash[:created_at]
38
+ @updated_at = hash[:updated_at]
39
+ @code = hash[:code]
15
40
  @radar_auth_attempt_id = hash[:radar_auth_attempt_id]
16
41
  end
17
42
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class RadarChallenge < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ object: :object,
9
+ id: :id,
10
+ type: :type,
11
+ user_id: :user_id,
12
+ email: :email,
13
+ expires_at: :expires_at,
14
+ created_at: :created_at,
15
+ updated_at: :updated_at,
16
+ code: :code
17
+ }.freeze
18
+
19
+ attr_accessor \
20
+ :object,
21
+ :id,
22
+ :type,
23
+ :user_id,
24
+ :email,
25
+ :expires_at,
26
+ :created_at,
27
+ :updated_at,
28
+ :code
29
+
30
+ def initialize(json)
31
+ hash = self.class.normalize(json)
32
+ @object = hash[:object]
33
+ @id = hash[:id]
34
+ @type = hash[:type]
35
+ @user_id = hash[:user_id]
36
+ @email = hash[:email]
37
+ @expires_at = hash[:expires_at]
38
+ @created_at = hash[:created_at]
39
+ @updated_at = hash[:updated_at]
40
+ @code = hash[:code]
41
+ end
42
+ end
43
+ end
@@ -3,5 +3,59 @@
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
5
  module WorkOS
6
- UserCreateResponse = MagicAuthSendMagicAuthCodeAndReturnResponse
6
+ class UserCreateResponse < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ object: :object,
9
+ id: :id,
10
+ first_name: :first_name,
11
+ last_name: :last_name,
12
+ name: :name,
13
+ profile_picture_url: :profile_picture_url,
14
+ email: :email,
15
+ email_verified: :email_verified,
16
+ external_id: :external_id,
17
+ metadata: :metadata,
18
+ last_sign_in_at: :last_sign_in_at,
19
+ locale: :locale,
20
+ created_at: :created_at,
21
+ updated_at: :updated_at,
22
+ radar_auth_attempt_id: :radar_auth_attempt_id
23
+ }.freeze
24
+
25
+ attr_accessor \
26
+ :object,
27
+ :id,
28
+ :first_name,
29
+ :last_name,
30
+ :name,
31
+ :profile_picture_url,
32
+ :email,
33
+ :email_verified,
34
+ :external_id,
35
+ :metadata,
36
+ :last_sign_in_at,
37
+ :locale,
38
+ :created_at,
39
+ :updated_at,
40
+ :radar_auth_attempt_id
41
+
42
+ def initialize(json)
43
+ hash = self.class.normalize(json)
44
+ @object = hash[:object]
45
+ @id = hash[:id]
46
+ @first_name = hash[:first_name]
47
+ @last_name = hash[:last_name]
48
+ @name = hash[:name]
49
+ @profile_picture_url = hash[:profile_picture_url]
50
+ @email = hash[:email]
51
+ @email_verified = hash[:email_verified]
52
+ @external_id = hash[:external_id]
53
+ @metadata = hash[:metadata] || {}
54
+ @last_sign_in_at = hash[:last_sign_in_at]
55
+ @locale = hash[:locale]
56
+ @created_at = hash[:created_at]
57
+ @updated_at = hash[:updated_at]
58
+ @radar_auth_attempt_id = hash[:radar_auth_attempt_id]
59
+ end
60
+ end
7
61
  end
@@ -133,6 +133,8 @@ module WorkOS
133
133
  # @param ip_address [String, nil]
134
134
  # @param device_id [String, nil]
135
135
  # @param user_agent [String, nil]
136
+ # @param signals_id [String, nil]
137
+ # @param radar_auth_attempt_id [String, nil]
136
138
  # @param request_options [Hash] Per-request overrides.
137
139
  # @return [WorkOS::AuthenticateResponse]
138
140
  def authenticate_with_password(
@@ -142,6 +144,8 @@ module WorkOS
142
144
  ip_address: nil,
143
145
  device_id: nil,
144
146
  user_agent: nil,
147
+ signals_id: nil,
148
+ radar_auth_attempt_id: nil,
145
149
  request_options: {}
146
150
  )
147
151
  body = {
@@ -153,7 +157,9 @@ module WorkOS
153
157
  "invitation_token" => invitation_token,
154
158
  "ip_address" => ip_address,
155
159
  "device_id" => device_id,
156
- "user_agent" => user_agent
160
+ "user_agent" => user_agent,
161
+ "signals_id" => signals_id,
162
+ "radar_auth_attempt_id" => radar_auth_attempt_id
157
163
  }.compact
158
164
  response = @client.request(
159
165
  method: :post,
@@ -172,6 +178,7 @@ module WorkOS
172
178
  # @param ip_address [String, nil]
173
179
  # @param device_id [String, nil]
174
180
  # @param user_agent [String, nil]
181
+ # @param signals_id [String, nil]
175
182
  # @param request_options [Hash] Per-request overrides.
176
183
  # @return [WorkOS::AuthenticateResponse]
177
184
  def authenticate_with_code(
@@ -181,6 +188,7 @@ module WorkOS
181
188
  ip_address: nil,
182
189
  device_id: nil,
183
190
  user_agent: nil,
191
+ signals_id: nil,
184
192
  request_options: {}
185
193
  )
186
194
  body = {
@@ -192,7 +200,8 @@ module WorkOS
192
200
  "invitation_token" => invitation_token,
193
201
  "ip_address" => ip_address,
194
202
  "device_id" => device_id,
195
- "user_agent" => user_agent
203
+ "user_agent" => user_agent,
204
+ "signals_id" => signals_id
196
205
  }.compact
197
206
  response = @client.request(
198
207
  method: :post,
@@ -247,6 +256,7 @@ module WorkOS
247
256
  # @param ip_address [String, nil]
248
257
  # @param device_id [String, nil]
249
258
  # @param user_agent [String, nil]
259
+ # @param radar_auth_attempt_id [String, nil]
250
260
  # @param request_options [Hash] Per-request overrides.
251
261
  # @return [WorkOS::AuthenticateResponse]
252
262
  def authenticate_with_magic_auth(
@@ -256,6 +266,7 @@ module WorkOS
256
266
  ip_address: nil,
257
267
  device_id: nil,
258
268
  user_agent: nil,
269
+ radar_auth_attempt_id: nil,
259
270
  request_options: {}
260
271
  )
261
272
  body = {
@@ -267,7 +278,8 @@ module WorkOS
267
278
  "invitation_token" => invitation_token,
268
279
  "ip_address" => ip_address,
269
280
  "device_id" => device_id,
270
- "user_agent" => user_agent
281
+ "user_agent" => user_agent,
282
+ "radar_auth_attempt_id" => radar_auth_attempt_id
271
283
  }.compact
272
284
  response = @client.request(
273
285
  method: :post,
@@ -422,6 +434,87 @@ module WorkOS
422
434
  WorkOS::AuthenticateResponse.new(response.body)
423
435
  end
424
436
 
437
+ # Authenticate with radar email challenge.
438
+ # @param code [String]
439
+ # @param radar_challenge_id [String]
440
+ # @param pending_authentication_token [String]
441
+ # @param ip_address [String, nil]
442
+ # @param device_id [String, nil]
443
+ # @param user_agent [String, nil]
444
+ # @param request_options [Hash] Per-request overrides.
445
+ # @return [WorkOS::AuthenticateResponse]
446
+ def authenticate_with_radar_email_challenge(
447
+ code:,
448
+ radar_challenge_id:,
449
+ pending_authentication_token:,
450
+ ip_address: nil,
451
+ device_id: nil,
452
+ user_agent: nil,
453
+ request_options: {}
454
+ )
455
+ body = {
456
+ "grant_type" => "urn:workos:oauth:grant-type:radar-email-challenge:code",
457
+ "client_id" => @client.client_id,
458
+ "client_secret" => @client.api_key,
459
+ "code" => code,
460
+ "radar_challenge_id" => radar_challenge_id,
461
+ "pending_authentication_token" => pending_authentication_token,
462
+ "ip_address" => ip_address,
463
+ "device_id" => device_id,
464
+ "user_agent" => user_agent
465
+ }.compact
466
+ response = @client.request(
467
+ method: :post,
468
+ path: "/user_management/authenticate",
469
+ auth: true,
470
+ body: body,
471
+ request_options: request_options
472
+ )
473
+ WorkOS::AuthenticateResponse.new(response.body)
474
+ end
475
+
476
+ # Authenticate with radar sms challenge.
477
+ # @param code [String]
478
+ # @param verification_id [String]
479
+ # @param phone_number [String]
480
+ # @param pending_authentication_token [String]
481
+ # @param ip_address [String, nil]
482
+ # @param device_id [String, nil]
483
+ # @param user_agent [String, nil]
484
+ # @param request_options [Hash] Per-request overrides.
485
+ # @return [WorkOS::AuthenticateResponse]
486
+ def authenticate_with_radar_sms_challenge(
487
+ code:,
488
+ verification_id:,
489
+ phone_number:,
490
+ pending_authentication_token:,
491
+ ip_address: nil,
492
+ device_id: nil,
493
+ user_agent: nil,
494
+ request_options: {}
495
+ )
496
+ body = {
497
+ "grant_type" => "urn:workos:oauth:grant-type:radar-sms-challenge:code",
498
+ "client_id" => @client.client_id,
499
+ "client_secret" => @client.api_key,
500
+ "code" => code,
501
+ "verification_id" => verification_id,
502
+ "phone_number" => phone_number,
503
+ "pending_authentication_token" => pending_authentication_token,
504
+ "ip_address" => ip_address,
505
+ "device_id" => device_id,
506
+ "user_agent" => user_agent
507
+ }.compact
508
+ response = @client.request(
509
+ method: :post,
510
+ path: "/user_management/authenticate",
511
+ auth: true,
512
+ body: body,
513
+ request_options: request_options
514
+ )
515
+ WorkOS::AuthenticateResponse.new(response.body)
516
+ end
517
+
425
518
  # Get device authorization URL
426
519
  # @param client_id [String] The WorkOS client ID for your application.
427
520
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
@@ -480,6 +573,25 @@ module WorkOS
480
573
  result
481
574
  end
482
575
 
576
+ # Get Radar Challenge details
577
+ # @param id [String] The unique ID of the Radar Challenge.
578
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
579
+ # @return [WorkOS::RadarChallenge]
580
+ def get_radar_challenge(
581
+ id:,
582
+ request_options: {}
583
+ )
584
+ response = @client.request(
585
+ method: :get,
586
+ path: "/user_management/radar_challenges/#{WorkOS::Util.encode_path(id)}",
587
+ auth: true,
588
+ request_options: request_options
589
+ )
590
+ result = WorkOS::RadarChallenge.new(response.body)
591
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
592
+ result
593
+ end
594
+
483
595
  # Revoke Session
484
596
  # @param session_id [String] The ID of the session to revoke. This can be extracted from the `sid` claim of the access token.
485
597
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
@@ -727,30 +839,30 @@ module WorkOS
727
839
  # @return [WorkOS::UserCreateResponse]
728
840
  def create_user(
729
841
  email:,
730
- first_name: nil,
731
- last_name: nil,
732
- name: nil,
733
- email_verified: nil,
734
- metadata: nil,
735
- external_id: nil,
736
- ip_address: nil,
737
- user_agent: nil,
842
+ first_name: WorkOS::OMIT,
843
+ last_name: WorkOS::OMIT,
844
+ name: WorkOS::OMIT,
845
+ email_verified: WorkOS::OMIT,
846
+ metadata: WorkOS::OMIT,
847
+ external_id: WorkOS::OMIT,
848
+ ip_address: WorkOS::OMIT,
849
+ user_agent: WorkOS::OMIT,
738
850
  signals_id: nil,
739
851
  password: nil,
740
852
  request_options: {}
741
853
  )
742
854
  body = {
743
855
  "email" => email,
744
- "first_name" => first_name,
745
- "last_name" => last_name,
746
- "name" => name,
747
- "email_verified" => email_verified,
748
- "metadata" => metadata,
749
- "external_id" => external_id,
750
- "ip_address" => ip_address,
751
- "user_agent" => user_agent,
752
856
  "signals_id" => signals_id
753
857
  }.compact
858
+ body["first_name"] = first_name unless first_name.equal?(WorkOS::OMIT)
859
+ body["last_name"] = last_name unless last_name.equal?(WorkOS::OMIT)
860
+ body["name"] = name unless name.equal?(WorkOS::OMIT)
861
+ body["email_verified"] = email_verified unless email_verified.equal?(WorkOS::OMIT)
862
+ body["metadata"] = metadata unless metadata.equal?(WorkOS::OMIT)
863
+ body["external_id"] = external_id unless external_id.equal?(WorkOS::OMIT)
864
+ body["ip_address"] = ip_address unless ip_address.equal?(WorkOS::OMIT)
865
+ body["user_agent"] = user_agent unless user_agent.equal?(WorkOS::OMIT)
754
866
  if password
755
867
  case password
756
868
  when WorkOS::UserManagement::PasswordPlaintext
@@ -832,9 +944,9 @@ module WorkOS
832
944
  last_name: nil,
833
945
  name: nil,
834
946
  email_verified: nil,
835
- metadata: nil,
836
- external_id: nil,
837
- locale: nil,
947
+ metadata: WorkOS::OMIT,
948
+ external_id: WorkOS::OMIT,
949
+ locale: WorkOS::OMIT,
838
950
  password: nil,
839
951
  request_options: {}
840
952
  )
@@ -843,11 +955,11 @@ module WorkOS
843
955
  "first_name" => first_name,
844
956
  "last_name" => last_name,
845
957
  "name" => name,
846
- "email_verified" => email_verified,
847
- "metadata" => metadata,
848
- "external_id" => external_id,
849
- "locale" => locale
958
+ "email_verified" => email_verified
850
959
  }.compact
960
+ body["metadata"] = metadata unless metadata.equal?(WorkOS::OMIT)
961
+ body["external_id"] = external_id unless external_id.equal?(WorkOS::OMIT)
962
+ body["locale"] = locale unless locale.equal?(WorkOS::OMIT)
851
963
  if password
852
964
  case password
853
965
  when WorkOS::UserManagement::PasswordPlaintext
@@ -1400,6 +1512,23 @@ module WorkOS
1400
1512
  result
1401
1513
  end
1402
1514
 
1515
+ # Delete a redirect URI
1516
+ # @param id [String] The ID of the redirect URI to delete.
1517
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
1518
+ # @return [void]
1519
+ def delete_redirect_uris(
1520
+ id:,
1521
+ request_options: {}
1522
+ )
1523
+ @client.request(
1524
+ method: :delete,
1525
+ path: "/user_management/redirect_uris/#{WorkOS::Util.encode_path(id)}",
1526
+ auth: true,
1527
+ request_options: request_options
1528
+ )
1529
+ nil
1530
+ end
1531
+
1403
1532
  # List authorized applications
1404
1533
  # @param user_id [String] The ID of the user.
1405
1534
  # @param before [String, nil] An object ID that defines your place in the list. When the ID is not present, you are at the end of the list. For example, if you make a list request and receive 100 objects, ending with `"obj_123"`, your subsequent call can include `before="obj_123"` to fetch a new batch of objects before `"obj_123"`.
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class VaultKekDeleted < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ object: :object,
9
+ id: :id,
10
+ event: :event,
11
+ data: :data,
12
+ created_at: :created_at,
13
+ context: :context
14
+ }.freeze
15
+
16
+ attr_accessor \
17
+ :object,
18
+ :id,
19
+ :event,
20
+ :data,
21
+ :created_at,
22
+ :context
23
+
24
+ def initialize(json)
25
+ hash = self.class.normalize(json)
26
+ @object = hash[:object]
27
+ @id = hash[:id]
28
+ @event = hash[:event]
29
+ @data = hash[:data] ? WorkOS::VaultKekDeletedData.new(hash[:data]) : nil
30
+ @created_at = hash[:created_at]
31
+ @context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class VaultKekDeletedData < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ actor_id: :actor_id,
9
+ actor_source: :actor_source,
10
+ actor_name: :actor_name,
11
+ key_name: :key_name,
12
+ key_id: :key_id
13
+ }.freeze
14
+
15
+ attr_accessor \
16
+ :actor_id,
17
+ :actor_source,
18
+ :actor_name,
19
+ :key_name,
20
+ :key_id
21
+
22
+ def initialize(json)
23
+ hash = self.class.normalize(json)
24
+ @actor_id = hash[:actor_id]
25
+ @actor_source = hash[:actor_source]
26
+ @actor_name = hash[:actor_name]
27
+ @key_name = hash[:key_name]
28
+ @key_id = hash[:key_id]
29
+ end
30
+ end
31
+ end
data/lib/workos/vault.rb CHANGED
@@ -213,13 +213,13 @@ module WorkOS
213
213
  def update_kv(
214
214
  id:,
215
215
  value:,
216
- version_check: nil,
216
+ version_check: WorkOS::OMIT,
217
217
  request_options: {}
218
218
  )
219
219
  body = {
220
- "value" => value,
221
- "version_check" => version_check
222
- }.compact
220
+ "value" => value
221
+ }
222
+ body["version_check"] = version_check unless version_check.equal?(WorkOS::OMIT)
223
223
  response = @client.request(
224
224
  method: :put,
225
225
  path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
@@ -2,5 +2,5 @@
2
2
 
3
3
  # @oagen-ignore-file
4
4
  module WorkOS
5
- VERSION = "9.4.0"
5
+ VERSION = "10.0.0"
6
6
  end
@@ -11,13 +11,13 @@ module WorkOS
11
11
  end
12
12
 
13
13
  # Generate a widget token
14
- # @param organization_id [String] The ID of the organization to scope the widget session to.
14
+ # @param organization_id [String, nil] The ID of the organization to scope the widget session to. Required when scopes are provided. Optional when issuing a token for user-only widgets (e.g. `UserProfile`, `UserSecurity`) that do not require organization context.
15
15
  # @param user_id [String, nil] The ID of the user to issue the widget session token for.
16
16
  # @param scopes [Array<WorkOS::Types::WidgetSessionTokenScopes>, nil] The scopes to grant the widget session.
17
17
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
18
18
  # @return [WorkOS::WidgetSessionTokenResponse]
19
19
  def create_token(
20
- organization_id:,
20
+ organization_id: nil,
21
21
  user_id: nil,
22
22
  scopes: nil,
23
23
  request_options: {}
data/lib/workos.rb CHANGED
@@ -5,12 +5,23 @@
5
5
  require "zeitwerk"
6
6
 
7
7
  module WorkOS
8
+ # Sentinel default for nullable optional parameters. Distinguishes an
9
+ # omitted argument ("leave unchanged") from an explicit `nil`, which
10
+ # clears the field by sending JSON `null`.
11
+ OMIT = Object.new
12
+
13
+ def OMIT.inspect
14
+ "WorkOS::OMIT"
15
+ end
16
+
17
+ OMIT.freeze
8
18
  end
9
19
 
10
20
  loader = Zeitwerk::Loader.for_gem
11
21
  require_relative "workos/inflections"
12
22
  loader.inflector.inflect(WORKOS_INFLECTIONS)
13
23
  loader.collapse("#{__dir__}/workos/admin_portal")
24
+ loader.collapse("#{__dir__}/workos/agents")
14
25
  loader.collapse("#{__dir__}/workos/api_keys")
15
26
  loader.collapse("#{__dir__}/workos/audit_logs")
16
27
  loader.collapse("#{__dir__}/workos/authorization")
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module WorkOS
8
+ class AccessTokenAgentRegistrationCredentialIssuedDataDetail
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def kind; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def kind=(value); end
17
+
18
+ sig { returns(String) }
19
+ def jti; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def jti=(value); end
23
+
24
+ sig { returns(T.any(String, T.nilable(String))) }
25
+ def expires_at; end
26
+
27
+ sig { params(value: T.any(String, T.nilable(String))).returns(T.any(String, T.nilable(String))) }
28
+ def expires_at=(value); end
29
+
30
+ sig { returns(T::Hash[Symbol, T.untyped]) }
31
+ def to_h; end
32
+
33
+ sig { params(args: T.untyped).returns(String) }
34
+ def to_json(*args); end
35
+ end
36
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module WorkOS
8
+ class AgentAdminLinkClaimAttemptToExternalUserRequest
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def type; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def type=(value); end
17
+
18
+ sig { returns(String) }
19
+ def claim_attempt_token; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def claim_attempt_token=(value); end
23
+
24
+ sig { returns(WorkOS::AgentAdminLinkClaimAttemptToExternalUserRequestUser) }
25
+ def user; end
26
+
27
+ sig { params(value: WorkOS::AgentAdminLinkClaimAttemptToExternalUserRequestUser).returns(WorkOS::AgentAdminLinkClaimAttemptToExternalUserRequestUser) }
28
+ def user=(value); end
29
+
30
+ sig { returns(T.nilable(String)) }
31
+ def organization_id; end
32
+
33
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
34
+ def organization_id=(value); end
35
+
36
+ sig { returns(T::Hash[Symbol, T.untyped]) }
37
+ def to_h; end
38
+
39
+ sig { params(args: T.untyped).returns(String) }
40
+ def to_json(*args); end
41
+ end
42
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ # typed: strong
6
+
7
+ module WorkOS
8
+ class AgentAdminLinkClaimAttemptToExternalUserRequestUser
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(String) }
13
+ def email; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def email=(value); end
17
+
18
+ sig { returns(String) }
19
+ def external_id; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def external_id=(value); end
23
+
24
+ sig { returns(T::Hash[Symbol, T.untyped]) }
25
+ def to_h; end
26
+
27
+ sig { params(args: T.untyped).returns(String) }
28
+ def to_json(*args); end
29
+ end
30
+ end