workos 9.3.0 → 9.4.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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/.last-synced-sha +1 -1
  3. data/.oagen-manifest.json +110 -1
  4. data/.release-please-manifest.json +1 -1
  5. data/CHANGELOG.md +123 -0
  6. data/Gemfile.lock +2 -2
  7. data/lib/workos/admin_portal/generate_link.rb +0 -3
  8. data/lib/workos/admin_portal.rb +0 -3
  9. data/lib/workos/authorization/user_role_assignment.rb +3 -0
  10. data/lib/workos/authorization/user_role_assignment_source.rb +22 -0
  11. data/lib/workos/pipes/connected_account_dto.rb +31 -0
  12. data/lib/workos/pipes/create_data_integration.rb +34 -0
  13. data/lib/workos/pipes/custom_provider_definition.rb +49 -0
  14. data/lib/workos/pipes/data_integration.rb +55 -0
  15. data/lib/workos/pipes/data_integration_credential.rb +25 -0
  16. data/lib/workos/pipes/data_integration_credentials_dto.rb +25 -0
  17. data/lib/workos/pipes/data_integration_credentials_response.rb +25 -0
  18. data/lib/workos/pipes/data_integration_credentials_response_credential.rb +34 -0
  19. data/lib/workos/pipes/data_integration_custom_provider.rb +49 -0
  20. data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +25 -0
  21. data/lib/workos/pipes/data_integrations_vend_credentials_request.rb +22 -0
  22. data/lib/workos/pipes/update_custom_provider_definition.rb +49 -0
  23. data/lib/workos/pipes/update_data_integration.rb +31 -0
  24. data/lib/workos/pipes.rb +304 -0
  25. data/lib/workos/radar/radar_standalone_assess_request.rb +5 -2
  26. data/lib/workos/radar.rb +5 -2
  27. data/lib/workos/shared/auth_method_mismatch_error.rb +22 -0
  28. data/lib/workos/types/audit_log_export_state.rb +2 -1
  29. data/lib/workos/types/connected_account_state.rb +1 -2
  30. data/lib/workos/types/create_webhook_endpoint_events.rb +8 -1
  31. data/lib/workos/types/custom_provider_definition_authenticate_via.rb +13 -0
  32. data/lib/workos/types/data_integration_credential_type.rb +13 -0
  33. data/lib/workos/types/data_integration_credentials_response_error.rb +9 -0
  34. data/lib/workos/types/data_integration_credentials_type.rb +9 -0
  35. data/lib/workos/types/data_integration_custom_provider_authenticate_via.rb +9 -0
  36. data/lib/workos/types/data_integration_state.rb +14 -0
  37. data/lib/workos/types/data_integrations_list_response_data_connected_account_state.rb +6 -1
  38. data/lib/workos/types/update_custom_provider_definition_authenticate_via.rb +9 -0
  39. data/lib/workos/types/user_role_assignment_source_type.rb +13 -0
  40. data/lib/workos/user_management/authorization_code_session_authenticate_request.rb +5 -2
  41. data/lib/workos/user_management/create_magic_code_and_return.rb +14 -2
  42. data/lib/workos/user_management/create_user.rb +9 -0
  43. data/lib/workos/user_management/magic_auth_code_session_authenticate_request.rb +5 -2
  44. data/lib/workos/user_management/magic_auth_send_magic_auth_code_and_return_response.rb +18 -0
  45. data/lib/workos/user_management/password_session_authenticate_request.rb +8 -2
  46. data/lib/workos/user_management/radar_email_challenge_code_session_authenticate_request.rb +43 -0
  47. data/lib/workos/user_management/radar_sms_challenge_code_session_authenticate_request.rb +46 -0
  48. data/lib/workos/user_management/send_radar_sms_challenge.rb +31 -0
  49. data/lib/workos/user_management/send_radar_sms_challenge_response.rb +22 -0
  50. data/lib/workos/user_management/user_create_response.rb +7 -0
  51. data/lib/workos/user_management.rb +165 -6
  52. data/lib/workos/version.rb +1 -1
  53. data/rbi/workos/admin_portal.rbi +1 -2
  54. data/rbi/workos/auth_method_mismatch_error.rbi +30 -0
  55. data/rbi/workos/authorization_code_session_authenticate_request.rbi +6 -0
  56. data/rbi/workos/connected_account_dto.rbi +48 -0
  57. data/rbi/workos/create_data_integration.rbi +54 -0
  58. data/rbi/workos/create_magic_code_and_return.rbi +24 -0
  59. data/rbi/workos/create_user.rbi +18 -0
  60. data/rbi/workos/custom_provider_definition.rbi +84 -0
  61. data/rbi/workos/data_integration.rbi +96 -0
  62. data/rbi/workos/data_integration_credential.rbi +36 -0
  63. data/rbi/workos/data_integration_credentials_dto.rbi +36 -0
  64. data/rbi/workos/data_integration_credentials_response.rbi +36 -0
  65. data/rbi/workos/data_integration_credentials_response_credential.rbi +54 -0
  66. data/rbi/workos/data_integration_custom_provider.rbi +84 -0
  67. data/rbi/workos/data_integrations_upsert_api_key_request.rbi +36 -0
  68. data/rbi/workos/data_integrations_vend_credentials_request.rbi +30 -0
  69. data/rbi/workos/generate_link.rbi +0 -6
  70. data/rbi/workos/magic_auth_code_session_authenticate_request.rbi +6 -0
  71. data/rbi/workos/magic_auth_send_magic_auth_code_and_return_response.rbi +24 -0
  72. data/rbi/workos/password_session_authenticate_request.rbi +12 -0
  73. data/rbi/workos/pipes.rbi +104 -0
  74. data/rbi/workos/radar.rbi +2 -1
  75. data/rbi/workos/radar_email_challenge_code_session_authenticate_request.rbi +72 -0
  76. data/rbi/workos/radar_sms_challenge_code_session_authenticate_request.rbi +78 -0
  77. data/rbi/workos/radar_standalone_assess_request.rbi +6 -0
  78. data/rbi/workos/send_radar_sms_challenge.rbi +48 -0
  79. data/rbi/workos/send_radar_sms_challenge_response.rbi +30 -0
  80. data/rbi/workos/update_custom_provider_definition.rbi +84 -0
  81. data/rbi/workos/update_data_integration.rbi +48 -0
  82. data/rbi/workos/user_create_response.rbi +24 -0
  83. data/rbi/workos/user_management.rbi +47 -5
  84. data/rbi/workos/user_role_assignment.rbi +6 -0
  85. data/rbi/workos/user_role_assignment_source.rbi +30 -0
  86. data/test/workos/test_admin_portal_model_round_trip.rb +33 -0
  87. data/test/workos/test_audit_logs_model_round_trip.rb +218 -0
  88. data/test/workos/test_authorization_model_round_trip.rb +456 -0
  89. data/test/workos/test_connect_model_round_trip.rb +30 -0
  90. data/test/workos/test_groups_model_round_trip.rb +33 -0
  91. data/test/workos/test_model_round_trip.rb +2 -7857
  92. data/test/workos/test_organizations_model_round_trip.rb +29 -0
  93. data/test/workos/test_pipes.rb +72 -0
  94. data/test/workos/test_pipes_model_round_trip.rb +389 -0
  95. data/test/workos/test_radar_model_round_trip.rb +85 -0
  96. data/test/workos/test_shared_model_round_trip.rb +92 -0
  97. data/test/workos/test_user_management.rb +24 -0
  98. data/test/workos/test_user_management_model_round_trip.rb +1048 -0
  99. data/test/workos/test_webhooks_model_round_trip.rb +53 -0
  100. metadata +62 -1
data/lib/workos/pipes.rb CHANGED
@@ -10,6 +10,192 @@ module WorkOS
10
10
  @client = client
11
11
  end
12
12
 
13
+ # List data integrations
14
+ # @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"`.
15
+ # @param after [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 `after="obj_123"` to fetch a new batch of objects after `"obj_123"`.
16
+ # @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
17
+ # @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time. Supported values are `"asc"` (ascending), `"desc"` (descending), and `"normal"` (descending with reversed cursor semantics where `before` fetches older records and `after` fetches newer records).
18
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
19
+ # @return [WorkOS::Types::ListStruct<WorkOS::DataIntegration>]
20
+ def list_data_integrations(
21
+ before: nil,
22
+ after: nil,
23
+ limit: 10,
24
+ order: "desc",
25
+ request_options: {}
26
+ )
27
+ params = {
28
+ "before" => before,
29
+ "after" => after,
30
+ "limit" => limit,
31
+ "order" => order
32
+ }.compact
33
+ response = @client.request(
34
+ method: :get,
35
+ path: "/data-integrations",
36
+ auth: true,
37
+ params: params,
38
+ request_options: request_options
39
+ )
40
+ fetch_next = ->(cursor) {
41
+ list_data_integrations(
42
+ before: before,
43
+ after: cursor,
44
+ limit: limit,
45
+ order: order,
46
+ request_options: request_options
47
+ )
48
+ }
49
+ WorkOS::Types::ListStruct.from_response(
50
+ response,
51
+ model: WorkOS::DataIntegration,
52
+ filters: {before: before, limit: limit, order: order},
53
+ fetch_next: fetch_next
54
+ )
55
+ end
56
+
57
+ # Create a data integration
58
+ # @param provider [String] The provider to create a Data Integration for. For a built-in provider use its slug (e.g. `github`, `slack`). For a custom provider, this is the new provider slug and `custom_provider` must be supplied. A custom provider slug cannot shadow an existing global provider slug.
59
+ # @param description [String, nil] An optional description of the Data Integration.
60
+ # @param enabled [Boolean, nil] Whether the Data Integration is enabled. Defaults to `false`.
61
+ # @param scopes [Array<String>, nil] The OAuth scopes to request for the Data Integration. Defaults to the provider's configured scopes when omitted.
62
+ # @param credentials [WorkOS::DataIntegrationCredentialsDto, nil] The credentials to configure for the Data Integration. Required for both built-in and custom providers.
63
+ # @param custom_provider [WorkOS::CustomProviderDefinition, nil] The OAuth definition for a custom provider. Supply this to define a custom provider; omit it to create an integration for a built-in provider.
64
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
65
+ # @return [WorkOS::DataIntegration]
66
+ def create_data_integration(
67
+ provider:,
68
+ description: nil,
69
+ enabled: nil,
70
+ scopes: nil,
71
+ credentials: nil,
72
+ custom_provider: nil,
73
+ request_options: {}
74
+ )
75
+ body = {
76
+ "provider" => provider,
77
+ "description" => description,
78
+ "enabled" => enabled,
79
+ "scopes" => scopes,
80
+ "credentials" => credentials,
81
+ "custom_provider" => custom_provider
82
+ }.compact
83
+ response = @client.request(
84
+ method: :post,
85
+ path: "/data-integrations",
86
+ auth: true,
87
+ body: body,
88
+ request_options: request_options
89
+ )
90
+ result = WorkOS::DataIntegration.new(response.body)
91
+ 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"])
92
+ result
93
+ end
94
+
95
+ # Get a data integration
96
+ # @param slug [String] The slug identifier of the data integration.
97
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
98
+ # @return [WorkOS::DataIntegration]
99
+ def get_data_integration(
100
+ slug:,
101
+ request_options: {}
102
+ )
103
+ response = @client.request(
104
+ method: :get,
105
+ path: "/data-integrations/#{WorkOS::Util.encode_path(slug)}",
106
+ auth: true,
107
+ request_options: request_options
108
+ )
109
+ result = WorkOS::DataIntegration.new(response.body)
110
+ 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"])
111
+ result
112
+ end
113
+
114
+ # Update a data integration
115
+ # @param slug [String] The slug identifier of the data integration.
116
+ # @param description [String, nil] An optional description of the Data Integration.
117
+ # @param enabled [Boolean, nil] Whether the Data Integration is enabled.
118
+ # @param scopes [Array<String>, nil] The OAuth scopes to request for the Data Integration. Pass `null` to reset to the provider's configured scopes.
119
+ # @param credentials [WorkOS::DataIntegrationCredentialsDto, nil] New credentials for the Data Integration. When provided, rotates the stored client secret.
120
+ # @param custom_provider [WorkOS::UpdateCustomProviderDefinition, nil] Updates to a custom provider's OAuth definition. Only valid for custom-provider integrations.
121
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
122
+ # @return [WorkOS::DataIntegration]
123
+ def update_data_integration(
124
+ slug:,
125
+ description: nil,
126
+ enabled: nil,
127
+ scopes: nil,
128
+ credentials: nil,
129
+ custom_provider: nil,
130
+ request_options: {}
131
+ )
132
+ body = {
133
+ "description" => description,
134
+ "enabled" => enabled,
135
+ "scopes" => scopes,
136
+ "credentials" => credentials,
137
+ "custom_provider" => custom_provider
138
+ }.compact
139
+ response = @client.request(
140
+ method: :put,
141
+ path: "/data-integrations/#{WorkOS::Util.encode_path(slug)}",
142
+ auth: true,
143
+ body: body,
144
+ request_options: request_options
145
+ )
146
+ result = WorkOS::DataIntegration.new(response.body)
147
+ 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"])
148
+ result
149
+ end
150
+
151
+ # Delete a data integration
152
+ # @param slug [String] The slug identifier of the data integration.
153
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
154
+ # @return [void]
155
+ def delete_data_integration(
156
+ slug:,
157
+ request_options: {}
158
+ )
159
+ @client.request(
160
+ method: :delete,
161
+ path: "/data-integrations/#{WorkOS::Util.encode_path(slug)}",
162
+ auth: true,
163
+ request_options: request_options
164
+ )
165
+ nil
166
+ end
167
+
168
+ # Upsert an API key for a connected account
169
+ # @param slug [String] The identifier of the integration.
170
+ # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
171
+ # @param organization_id [String, nil] An [Organization](https://workos.com/docs/reference/organization) identifier. Optional parameter to scope the connection to a specific organization.
172
+ # @param secret [String] The API key secret to store for this integration.
173
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
174
+ # @return [WorkOS::ConnectedAccount]
175
+ def update_data_integration_api_key(
176
+ slug:,
177
+ user_id:,
178
+ secret:,
179
+ organization_id: nil,
180
+ request_options: {}
181
+ )
182
+ body = {
183
+ "user_id" => user_id,
184
+ "organization_id" => organization_id,
185
+ "secret" => secret
186
+ }.compact
187
+ response = @client.request(
188
+ method: :put,
189
+ path: "/data-integrations/#{WorkOS::Util.encode_path(slug)}/api-key",
190
+ auth: true,
191
+ body: body,
192
+ request_options: request_options
193
+ )
194
+ result = WorkOS::ConnectedAccount.new(response.body)
195
+ 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"])
196
+ result
197
+ end
198
+
13
199
  # Get authorization URL
14
200
  # @param slug [String] The slug identifier of the provider (e.g., `github`, `slack`, `notion`).
15
201
  # @param user_id [String] The ID of the user to authorize.
@@ -41,6 +227,34 @@ module WorkOS
41
227
  result
42
228
  end
43
229
 
230
+ # Vend credentials for a connected account
231
+ # @param slug [String] The identifier of the integration.
232
+ # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
233
+ # @param organization_id [String, nil] An [Organization](https://workos.com/docs/reference/organization) identifier. Optional parameter to scope the connection to a specific organization.
234
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
235
+ # @return [WorkOS::DataIntegrationCredentialsResponse]
236
+ def create_data_integration_credential(
237
+ slug:,
238
+ user_id:,
239
+ organization_id: nil,
240
+ request_options: {}
241
+ )
242
+ body = {
243
+ "user_id" => user_id,
244
+ "organization_id" => organization_id
245
+ }.compact
246
+ response = @client.request(
247
+ method: :post,
248
+ path: "/data-integrations/#{WorkOS::Util.encode_path(slug)}/credentials",
249
+ auth: true,
250
+ body: body,
251
+ request_options: request_options
252
+ )
253
+ result = WorkOS::DataIntegrationCredentialsResponse.new(response.body)
254
+ 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"])
255
+ result
256
+ end
257
+
44
258
  # Get an access token for a connected account
45
259
  # @param provider [String] The identifier of the integration.
46
260
  # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
@@ -96,6 +310,96 @@ module WorkOS
96
310
  result
97
311
  end
98
312
 
313
+ # Import a connected account
314
+ # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
315
+ # @param slug [String] The slug identifier of the provider (e.g., `github`, `slack`, `notion`).
316
+ # @param access_token [String, nil] The OAuth access token for the connected account.
317
+ # @param refresh_token [String, nil] The OAuth refresh token for the connected account.
318
+ # @param expires_at [String, nil] The ISO-8601 timestamp when the access token expires. Required when `access_token` is provided for tokens that expire.
319
+ # @param scopes [Array<String>, nil] The OAuth scopes granted for this connection.
320
+ # @param state [WorkOS::Types::ConnectedAccountState, nil] Explicitly set the state of the connected account. When omitted, the state is derived from the token combination provided.
321
+ # @param organization_id [String, nil] An [Organization](https://workos.com/docs/reference/organization) identifier. Optional parameter if the connection is scoped to an organization.
322
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
323
+ # @return [WorkOS::ConnectedAccount]
324
+ def create_user_connected_account(
325
+ user_id:,
326
+ slug:,
327
+ access_token: nil,
328
+ refresh_token: nil,
329
+ expires_at: nil,
330
+ scopes: nil,
331
+ state: nil,
332
+ organization_id: nil,
333
+ request_options: {}
334
+ )
335
+ params = {
336
+ "organization_id" => organization_id
337
+ }.compact
338
+ body = {
339
+ "access_token" => access_token,
340
+ "refresh_token" => refresh_token,
341
+ "expires_at" => expires_at,
342
+ "scopes" => scopes,
343
+ "state" => state
344
+ }.compact
345
+ response = @client.request(
346
+ method: :post,
347
+ path: "/user_management/users/#{WorkOS::Util.encode_path(user_id)}/connected_accounts/#{WorkOS::Util.encode_path(slug)}",
348
+ auth: true,
349
+ params: params,
350
+ body: body,
351
+ request_options: request_options
352
+ )
353
+ result = WorkOS::ConnectedAccount.new(response.body)
354
+ 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"])
355
+ result
356
+ end
357
+
358
+ # Update a connected account
359
+ # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
360
+ # @param slug [String] The slug identifier of the provider (e.g., `github`, `slack`, `notion`).
361
+ # @param access_token [String, nil] The OAuth access token for the connected account.
362
+ # @param refresh_token [String, nil] The OAuth refresh token for the connected account.
363
+ # @param expires_at [String, nil] The ISO-8601 timestamp when the access token expires. Required when `access_token` is provided for tokens that expire.
364
+ # @param scopes [Array<String>, nil] The OAuth scopes granted for this connection.
365
+ # @param state [WorkOS::Types::ConnectedAccountState, nil] Explicitly set the state of the connected account. When omitted, the state is derived from the token combination provided.
366
+ # @param organization_id [String, nil] An [Organization](https://workos.com/docs/reference/organization) identifier. Optional parameter if the connection is scoped to an organization.
367
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
368
+ # @return [WorkOS::ConnectedAccount]
369
+ def update_user_connected_account(
370
+ user_id:,
371
+ slug:,
372
+ access_token: nil,
373
+ refresh_token: nil,
374
+ expires_at: nil,
375
+ scopes: nil,
376
+ state: nil,
377
+ organization_id: nil,
378
+ request_options: {}
379
+ )
380
+ params = {
381
+ "organization_id" => organization_id
382
+ }.compact
383
+ body = {
384
+ "access_token" => access_token,
385
+ "refresh_token" => refresh_token,
386
+ "expires_at" => expires_at,
387
+ "scopes" => scopes,
388
+ "state" => state
389
+ }.compact
390
+ response = @client.request(
391
+ method: :put,
392
+ path: "/user_management/users/#{WorkOS::Util.encode_path(user_id)}/connected_accounts/#{WorkOS::Util.encode_path(slug)}",
393
+ auth: true,
394
+ params: params,
395
+ body: body,
396
+ request_options: request_options
397
+ )
398
+ result = WorkOS::ConnectedAccount.new(response.body)
399
+ 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"])
400
+ result
401
+ end
402
+
99
403
  # Delete a connected account
100
404
  # @param user_id [String] A [User](https://workos.com/docs/reference/authkit/user) identifier.
101
405
  # @param slug [String] The slug identifier of the provider (e.g., `github`, `slack`, `notion`).
@@ -9,7 +9,8 @@ module WorkOS
9
9
  user_agent: :user_agent,
10
10
  email: :email,
11
11
  auth_method: :auth_method,
12
- action: :action
12
+ action: :action,
13
+ signals_id: :signals_id
13
14
  }.freeze
14
15
 
15
16
  attr_accessor \
@@ -17,7 +18,8 @@ module WorkOS
17
18
  :user_agent,
18
19
  :email,
19
20
  :auth_method,
20
- :action
21
+ :action,
22
+ :signals_id
21
23
 
22
24
  def initialize(json)
23
25
  hash = self.class.normalize(json)
@@ -26,6 +28,7 @@ module WorkOS
26
28
  @email = hash[:email]
27
29
  @auth_method = hash[:auth_method]
28
30
  @action = hash[:action]
31
+ @signals_id = hash[:signals_id]
29
32
  end
30
33
  end
31
34
  end
data/lib/workos/radar.rb CHANGED
@@ -16,6 +16,7 @@ module WorkOS
16
16
  # @param email [String] The email address of the user making the request.
17
17
  # @param auth_method [WorkOS::Types::RadarStandaloneAssessRequestAuthMethod] The authentication method being used.
18
18
  # @param action [WorkOS::Types::RadarStandaloneAssessRequestAction] The action being performed.
19
+ # @param signals_id [String, nil] An optional Radar signals ID for the request.
19
20
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
20
21
  # @return [WorkOS::RadarStandaloneResponse]
21
22
  def create_attempt(
@@ -24,6 +25,7 @@ module WorkOS
24
25
  email:,
25
26
  auth_method:,
26
27
  action:,
28
+ signals_id: nil,
27
29
  request_options: {}
28
30
  )
29
31
  body = {
@@ -31,8 +33,9 @@ module WorkOS
31
33
  "user_agent" => user_agent,
32
34
  "email" => email,
33
35
  "auth_method" => auth_method,
34
- "action" => action
35
- }
36
+ "action" => action,
37
+ "signals_id" => signals_id
38
+ }.compact
36
39
  response = @client.request(
37
40
  method: :post,
38
41
  path: "/radar/attempts",
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class AuthMethodMismatchError < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ code: :code,
9
+ message: :message
10
+ }.freeze
11
+
12
+ attr_accessor \
13
+ :code,
14
+ :message
15
+
16
+ def initialize(json)
17
+ hash = self.class.normalize(json)
18
+ @code = hash[:code]
19
+ @message = hash[:message]
20
+ end
21
+ end
22
+ end
@@ -8,7 +8,8 @@ module WorkOS
8
8
  PENDING = "pending"
9
9
  READY = "ready"
10
10
  ERROR = "error"
11
- ALL = [PENDING, READY, ERROR].freeze
11
+ EXPIRED = "expired"
12
+ ALL = [PENDING, READY, ERROR, EXPIRED].freeze
12
13
  end
13
14
  end
14
15
  end
@@ -7,8 +7,7 @@ module WorkOS
7
7
  class ConnectedAccountState
8
8
  CONNECTED = "connected"
9
9
  NEEDS_REAUTHORIZATION = "needs_reauthorization"
10
- DISCONNECTED = "disconnected"
11
- ALL = [CONNECTED, NEEDS_REAUTHORIZATION, DISCONNECTED].freeze
10
+ ALL = [CONNECTED, NEEDS_REAUTHORIZATION].freeze
12
11
  end
13
12
  end
14
13
  end
@@ -5,6 +5,11 @@
5
5
  module WorkOS
6
6
  module Types
7
7
  class CreateWebhookEndpointEvents
8
+ AGENT_REGISTRATION_CREATED = "agent.registration.created"
9
+ AGENT_REGISTRATION_CLAIM_ATTEMPT_CREATED = "agent.registration.claim.attempt.created"
10
+ AGENT_REGISTRATION_CLAIM_COMPLETED = "agent.registration.claim.completed"
11
+ AGENT_REGISTRATION_CREDENTIAL_ISSUED = "agent.registration.credential.issued"
12
+ AGENT_REGISTRATION_ORGANIZATION_SWITCHED = "agent.registration.organization.switched"
8
13
  AUTHENTICATION_EMAIL_VERIFICATION_SUCCEEDED = "authentication.email_verification_succeeded"
9
14
  AUTHENTICATION_MAGIC_AUTH_FAILED = "authentication.magic_auth_failed"
10
15
  AUTHENTICATION_MAGIC_AUTH_SUCCEEDED = "authentication.magic_auth_succeeded"
@@ -20,6 +25,7 @@ module WorkOS
20
25
  AUTHENTICATION_SSO_SUCCEEDED = "authentication.sso_succeeded"
21
26
  AUTHENTICATION_SSO_TIMED_OUT = "authentication.sso_timed_out"
22
27
  AUTHENTICATION_RADAR_RISK_DETECTED = "authentication.radar_risk_detected"
28
+ AUTHENTICATION_REAUTHENTICATION_SUCCEEDED = "authentication.reauthentication_succeeded"
23
29
  API_KEY_CREATED = "api_key.created"
24
30
  API_KEY_REVOKED = "api_key.revoked"
25
31
  API_KEY_UPDATED = "api_key.updated"
@@ -79,6 +85,7 @@ module WorkOS
79
85
  PERMISSION_DELETED = "permission.deleted"
80
86
  PERMISSION_UPDATED = "permission.updated"
81
87
  PIPES_CONNECTED_ACCOUNT_CONNECTED = "pipes.connected_account.connected"
88
+ PIPES_CONNECTED_ACCOUNT_CONNECTION_FAILED = "pipes.connected_account.connection_failed"
82
89
  PIPES_CONNECTED_ACCOUNT_DISCONNECTED = "pipes.connected_account.disconnected"
83
90
  PIPES_CONNECTED_ACCOUNT_REAUTHORIZATION_NEEDED = "pipes.connected_account.reauthorization_needed"
84
91
  SESSION_CREATED = "session.created"
@@ -86,7 +93,7 @@ module WorkOS
86
93
  WAITLIST_USER_APPROVED = "waitlist_user.approved"
87
94
  WAITLIST_USER_CREATED = "waitlist_user.created"
88
95
  WAITLIST_USER_DENIED = "waitlist_user.denied"
89
- ALL = [AUTHENTICATION_EMAIL_VERIFICATION_SUCCEEDED, AUTHENTICATION_MAGIC_AUTH_FAILED, AUTHENTICATION_MAGIC_AUTH_SUCCEEDED, AUTHENTICATION_MFA_SUCCEEDED, AUTHENTICATION_OAUTH_FAILED, AUTHENTICATION_OAUTH_SUCCEEDED, AUTHENTICATION_PASSWORD_FAILED, AUTHENTICATION_PASSWORD_SUCCEEDED, AUTHENTICATION_PASSKEY_FAILED, AUTHENTICATION_PASSKEY_SUCCEEDED, AUTHENTICATION_SSO_FAILED, AUTHENTICATION_SSO_STARTED, AUTHENTICATION_SSO_SUCCEEDED, AUTHENTICATION_SSO_TIMED_OUT, AUTHENTICATION_RADAR_RISK_DETECTED, API_KEY_CREATED, API_KEY_REVOKED, API_KEY_UPDATED, CONNECTION_ACTIVATED, CONNECTION_DEACTIVATED, CONNECTION_SAML_CERTIFICATE_RENEWAL_REQUIRED, CONNECTION_SAML_CERTIFICATE_RENEWED, CONNECTION_DELETED, DSYNC_ACTIVATED, DSYNC_DELETED, DSYNC_GROUP_CREATED, DSYNC_GROUP_DELETED, DSYNC_GROUP_UPDATED, DSYNC_GROUP_USER_ADDED, DSYNC_GROUP_USER_REMOVED, DSYNC_USER_CREATED, DSYNC_USER_DELETED, DSYNC_USER_UPDATED, EMAIL_VERIFICATION_CREATED, GROUP_CREATED, GROUP_DELETED, GROUP_MEMBER_ADDED, GROUP_MEMBER_REMOVED, GROUP_UPDATED, FLAG_CREATED, FLAG_DELETED, FLAG_UPDATED, FLAG_RULE_UPDATED, INVITATION_ACCEPTED, INVITATION_CREATED, INVITATION_RESENT, INVITATION_REVOKED, MAGIC_AUTH_CREATED, ORGANIZATION_CREATED, ORGANIZATION_DELETED, ORGANIZATION_UPDATED, ORGANIZATION_DOMAIN_CREATED, ORGANIZATION_DOMAIN_DELETED, ORGANIZATION_DOMAIN_UPDATED, ORGANIZATION_DOMAIN_VERIFIED, ORGANIZATION_DOMAIN_VERIFICATION_FAILED, PASSWORD_RESET_CREATED, PASSWORD_RESET_SUCCEEDED, USER_CREATED, USER_UPDATED, USER_DELETED, ORGANIZATION_MEMBERSHIP_CREATED, ORGANIZATION_MEMBERSHIP_DELETED, ORGANIZATION_MEMBERSHIP_UPDATED, ROLE_CREATED, ROLE_DELETED, ROLE_UPDATED, ORGANIZATION_ROLE_CREATED, ORGANIZATION_ROLE_DELETED, ORGANIZATION_ROLE_UPDATED, PERMISSION_CREATED, PERMISSION_DELETED, PERMISSION_UPDATED, PIPES_CONNECTED_ACCOUNT_CONNECTED, PIPES_CONNECTED_ACCOUNT_DISCONNECTED, PIPES_CONNECTED_ACCOUNT_REAUTHORIZATION_NEEDED, SESSION_CREATED, SESSION_REVOKED, WAITLIST_USER_APPROVED, WAITLIST_USER_CREATED, WAITLIST_USER_DENIED].freeze
96
+ ALL = [AGENT_REGISTRATION_CREATED, AGENT_REGISTRATION_CLAIM_ATTEMPT_CREATED, AGENT_REGISTRATION_CLAIM_COMPLETED, AGENT_REGISTRATION_CREDENTIAL_ISSUED, AGENT_REGISTRATION_ORGANIZATION_SWITCHED, AUTHENTICATION_EMAIL_VERIFICATION_SUCCEEDED, AUTHENTICATION_MAGIC_AUTH_FAILED, AUTHENTICATION_MAGIC_AUTH_SUCCEEDED, AUTHENTICATION_MFA_SUCCEEDED, AUTHENTICATION_OAUTH_FAILED, AUTHENTICATION_OAUTH_SUCCEEDED, AUTHENTICATION_PASSWORD_FAILED, AUTHENTICATION_PASSWORD_SUCCEEDED, AUTHENTICATION_PASSKEY_FAILED, AUTHENTICATION_PASSKEY_SUCCEEDED, AUTHENTICATION_SSO_FAILED, AUTHENTICATION_SSO_STARTED, AUTHENTICATION_SSO_SUCCEEDED, AUTHENTICATION_SSO_TIMED_OUT, AUTHENTICATION_RADAR_RISK_DETECTED, AUTHENTICATION_REAUTHENTICATION_SUCCEEDED, API_KEY_CREATED, API_KEY_REVOKED, API_KEY_UPDATED, CONNECTION_ACTIVATED, CONNECTION_DEACTIVATED, CONNECTION_SAML_CERTIFICATE_RENEWAL_REQUIRED, CONNECTION_SAML_CERTIFICATE_RENEWED, CONNECTION_DELETED, DSYNC_ACTIVATED, DSYNC_DELETED, DSYNC_GROUP_CREATED, DSYNC_GROUP_DELETED, DSYNC_GROUP_UPDATED, DSYNC_GROUP_USER_ADDED, DSYNC_GROUP_USER_REMOVED, DSYNC_USER_CREATED, DSYNC_USER_DELETED, DSYNC_USER_UPDATED, EMAIL_VERIFICATION_CREATED, GROUP_CREATED, GROUP_DELETED, GROUP_MEMBER_ADDED, GROUP_MEMBER_REMOVED, GROUP_UPDATED, FLAG_CREATED, FLAG_DELETED, FLAG_UPDATED, FLAG_RULE_UPDATED, INVITATION_ACCEPTED, INVITATION_CREATED, INVITATION_RESENT, INVITATION_REVOKED, MAGIC_AUTH_CREATED, ORGANIZATION_CREATED, ORGANIZATION_DELETED, ORGANIZATION_UPDATED, ORGANIZATION_DOMAIN_CREATED, ORGANIZATION_DOMAIN_DELETED, ORGANIZATION_DOMAIN_UPDATED, ORGANIZATION_DOMAIN_VERIFIED, ORGANIZATION_DOMAIN_VERIFICATION_FAILED, PASSWORD_RESET_CREATED, PASSWORD_RESET_SUCCEEDED, USER_CREATED, USER_UPDATED, USER_DELETED, ORGANIZATION_MEMBERSHIP_CREATED, ORGANIZATION_MEMBERSHIP_DELETED, ORGANIZATION_MEMBERSHIP_UPDATED, ROLE_CREATED, ROLE_DELETED, ROLE_UPDATED, ORGANIZATION_ROLE_CREATED, ORGANIZATION_ROLE_DELETED, ORGANIZATION_ROLE_UPDATED, PERMISSION_CREATED, PERMISSION_DELETED, PERMISSION_UPDATED, PIPES_CONNECTED_ACCOUNT_CONNECTED, PIPES_CONNECTED_ACCOUNT_CONNECTION_FAILED, PIPES_CONNECTED_ACCOUNT_DISCONNECTED, PIPES_CONNECTED_ACCOUNT_REAUTHORIZATION_NEEDED, SESSION_CREATED, SESSION_REVOKED, WAITLIST_USER_APPROVED, WAITLIST_USER_CREATED, WAITLIST_USER_DENIED].freeze
90
97
  end
91
98
  end
92
99
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ class CustomProviderDefinitionAuthenticateVia
8
+ REQUEST_BODY = "request_body"
9
+ BASIC_AUTH_HEADER = "basic_auth_header"
10
+ ALL = [REQUEST_BODY, BASIC_AUTH_HEADER].freeze
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ class DataIntegrationCredentialType
8
+ CUSTOM = "custom"
9
+ ORGANIZATION = "organization"
10
+ ALL = [CUSTOM, ORGANIZATION].freeze
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ DataIntegrationCredentialsResponseError = DataIntegrationAccessTokenResponseError
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ DataIntegrationCredentialsType = DataIntegrationCredentialType
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ DataIntegrationCustomProviderAuthenticateVia = CustomProviderDefinitionAuthenticateVia
8
+ end
9
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ class DataIntegrationState
8
+ VALID = "valid"
9
+ INVALID = "invalid"
10
+ REQUESTED = "requested"
11
+ ALL = [VALID, INVALID, REQUESTED].freeze
12
+ end
13
+ end
14
+ end
@@ -4,6 +4,11 @@
4
4
 
5
5
  module WorkOS
6
6
  module Types
7
- DataIntegrationsListResponseDataConnectedAccountState = ConnectedAccountState
7
+ class DataIntegrationsListResponseDataConnectedAccountState
8
+ CONNECTED = "connected"
9
+ NEEDS_REAUTHORIZATION = "needs_reauthorization"
10
+ DISCONNECTED = "disconnected"
11
+ ALL = [CONNECTED, NEEDS_REAUTHORIZATION, DISCONNECTED].freeze
12
+ end
8
13
  end
9
14
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ UpdateCustomProviderDefinitionAuthenticateVia = CustomProviderDefinitionAuthenticateVia
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ module Types
7
+ class UserRoleAssignmentSourceType
8
+ DIRECT = "direct"
9
+ GROUP = "group"
10
+ ALL = [DIRECT, GROUP].freeze
11
+ end
12
+ end
13
+ end
@@ -13,7 +13,8 @@ module WorkOS
13
13
  invitation_token: :invitation_token,
14
14
  ip_address: :ip_address,
15
15
  device_id: :device_id,
16
- user_agent: :user_agent
16
+ user_agent: :user_agent,
17
+ signals_id: :signals_id
17
18
  }.freeze
18
19
 
19
20
  attr_accessor \
@@ -25,7 +26,8 @@ module WorkOS
25
26
  :invitation_token,
26
27
  :ip_address,
27
28
  :device_id,
28
- :user_agent
29
+ :user_agent,
30
+ :signals_id
29
31
 
30
32
  def initialize(json)
31
33
  hash = self.class.normalize(json)
@@ -38,6 +40,7 @@ module WorkOS
38
40
  @ip_address = hash[:ip_address]
39
41
  @device_id = hash[:device_id]
40
42
  @user_agent = hash[:user_agent]
43
+ @signals_id = hash[:signals_id]
41
44
  end
42
45
  end
43
46
  end
@@ -6,17 +6,29 @@ module WorkOS
6
6
  class CreateMagicCodeAndReturn < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
8
  email: :email,
9
- invitation_token: :invitation_token
9
+ invitation_token: :invitation_token,
10
+ ip_address: :ip_address,
11
+ user_agent: :user_agent,
12
+ radar_auth_attempt_id: :radar_auth_attempt_id,
13
+ signals_id: :signals_id
10
14
  }.freeze
11
15
 
12
16
  attr_accessor \
13
17
  :email,
14
- :invitation_token
18
+ :invitation_token,
19
+ :ip_address,
20
+ :user_agent,
21
+ :radar_auth_attempt_id,
22
+ :signals_id
15
23
 
16
24
  def initialize(json)
17
25
  hash = self.class.normalize(json)
18
26
  @email = hash[:email]
19
27
  @invitation_token = hash[:invitation_token]
28
+ @ip_address = hash[:ip_address]
29
+ @user_agent = hash[:user_agent]
30
+ @radar_auth_attempt_id = hash[:radar_auth_attempt_id]
31
+ @signals_id = hash[:signals_id]
20
32
  end
21
33
  end
22
34
  end
@@ -12,6 +12,9 @@ module WorkOS
12
12
  email_verified: :email_verified,
13
13
  metadata: :metadata,
14
14
  external_id: :external_id,
15
+ ip_address: :ip_address,
16
+ user_agent: :user_agent,
17
+ signals_id: :signals_id,
15
18
  password: :password,
16
19
  password_hash: :password_hash,
17
20
  password_hash_type: :password_hash_type
@@ -25,6 +28,9 @@ module WorkOS
25
28
  :email_verified,
26
29
  :metadata,
27
30
  :external_id,
31
+ :ip_address,
32
+ :user_agent,
33
+ :signals_id,
28
34
  :password,
29
35
  :password_hash,
30
36
  :password_hash_type
@@ -38,6 +44,9 @@ module WorkOS
38
44
  @email_verified = hash[:email_verified]
39
45
  @metadata = hash[:metadata] || {}
40
46
  @external_id = hash[:external_id]
47
+ @ip_address = hash[:ip_address]
48
+ @user_agent = hash[:user_agent]
49
+ @signals_id = hash[:signals_id]
41
50
  @password = hash[:password]
42
51
  @password_hash = hash[:password_hash]
43
52
  @password_hash_type = hash[:password_hash_type]