workos 10.4.0 → 10.6.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 (558) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/docs.yml +2 -2
  4. data/.github/workflows/lint.yml +1 -1
  5. data/.github/workflows/release-please.yml +4 -4
  6. data/.github/workflows/release.yml +1 -1
  7. data/.last-synced-sha +1 -1
  8. data/.oagen-manifest.json +454 -2
  9. data/.release-please-manifest.json +1 -1
  10. data/.ruby-version +1 -1
  11. data/CHANGELOG.md +326 -0
  12. data/Gemfile.lock +2 -2
  13. data/README.md +2 -2
  14. data/lib/workos/admin_portal/generate_link.rb +3 -0
  15. data/lib/workos/admin_portal/revoke_link.rb +22 -0
  16. data/lib/workos/admin_portal.rb +27 -0
  17. data/lib/workos/agents/agent_blueprint.rb +3 -0
  18. data/lib/workos/agents/agent_blueprint_invocable_as.rb +18 -0
  19. data/lib/workos/agents/agent_blueprints_create_request.rb +3 -0
  20. data/lib/workos/agents/agent_blueprints_create_request_invocable_as.rb +18 -0
  21. data/lib/workos/agents/agent_blueprints_update_request.rb +3 -0
  22. data/lib/workos/agents/agent_blueprints_update_request_invocable_as.rb +18 -0
  23. data/lib/workos/agents/agent_registration.rb +3 -0
  24. data/lib/workos/agents/list_metadata.rb +22 -0
  25. data/lib/workos/agents.rb +25 -0
  26. data/lib/workos/api_keys/api_key_data_integration_vended_credential.rb +28 -0
  27. data/lib/workos/authorization/patch_group_role_assignments.rb +22 -0
  28. data/lib/workos/authorization/user_role_assignment_source.rb +5 -2
  29. data/lib/workos/authorization/user_role_assignment_source_group.rb +7 -0
  30. data/lib/workos/authorization.rb +26 -0
  31. data/lib/workos/base_client.rb +3 -0
  32. data/lib/workos/connect/connect_application.rb +3 -0
  33. data/lib/workos/connect/create_oauth_application.rb +3 -0
  34. data/lib/workos/connect/update_oauth_application.rb +5 -2
  35. data/lib/workos/connect.rb +6 -0
  36. data/lib/workos/directory_sync/directory_sync_rate_limit_error.rb +25 -0
  37. data/lib/workos/directory_sync/directory_sync_response.rb +18 -0
  38. data/lib/workos/directory_sync.rb +19 -0
  39. data/lib/workos/events.rb +3 -11
  40. data/lib/workos/feature_flags/flag_created_data.rb +1 -46
  41. data/lib/workos/feature_flags/flag_deleted_data.rb +1 -1
  42. data/lib/workos/feature_flags/flag_rule.rb +49 -0
  43. data/lib/workos/feature_flags/flag_rule_updated_data.rb +1 -1
  44. data/lib/workos/feature_flags/flag_target.rb +52 -0
  45. data/lib/workos/feature_flags/flag_target_with_rule_id.rb +46 -0
  46. data/lib/workos/feature_flags/flag_target_with_value_type.rb +49 -0
  47. data/lib/workos/feature_flags/flag_updated_context_previous_attribute.rb +1 -12
  48. data/lib/workos/feature_flags/flag_updated_context_previous_attribute_data.rb +1 -25
  49. data/lib/workos/feature_flags/flag_updated_context_previous_attribute_data_owner.rb +7 -0
  50. data/lib/workos/feature_flags/flag_updated_data.rb +1 -1
  51. data/lib/workos/groups/patch_group_memberships.rb +22 -0
  52. data/lib/workos/groups.rb +28 -0
  53. data/lib/workos/inflections.rb +30 -0
  54. data/lib/workos/organizations/it_contact_list_list_metadata.rb +22 -0
  55. data/lib/workos/organizations/organization_authentication_methods_required_oauth_error_body.rb +22 -0
  56. data/lib/workos/organizations/organization_connected_account_import_error_body.rb +22 -0
  57. data/lib/workos/organizations/organization_membership_not_found_oauth_error_body.rb +22 -0
  58. data/lib/workos/organizations/organization_not_found_oauth_error_body.rb +22 -0
  59. data/lib/workos/organizations/organization_selection_required_error_body.rb +22 -0
  60. data/lib/workos/organizations/organization_selection_required_error_body_with_organization.rb +7 -0
  61. data/lib/workos/organizations/organization_selection_required_error_body_with_organizations.rb +25 -0
  62. data/lib/workos/pipes/connected_account.rb +11 -2
  63. data/lib/workos/pipes/connected_account_input.rb +6 -0
  64. data/lib/workos/pipes/connected_account_warning.rb +22 -0
  65. data/lib/workos/pipes/create_connected_account.rb +40 -0
  66. data/lib/workos/pipes/create_organization_connected_account.rb +43 -0
  67. data/lib/workos/pipes/data_integration_authorize_url_response.rb +9 -2
  68. data/lib/workos/pipes/data_integration_credentials_response.rb +1 -1
  69. data/lib/workos/pipes/data_integration_finish_connection_response.rb +18 -0
  70. data/lib/workos/pipes/{data_integration_credentials_response_credential.rb → data_integration_vended_credential.rb} +9 -3
  71. data/lib/workos/pipes/data_integrations_create_api_key_connection_request.rb +37 -0
  72. data/lib/workos/pipes/data_integrations_create_client_credentials_connection_request.rb +43 -0
  73. data/lib/workos/pipes/data_integrations_finish_connection_request.rb +25 -0
  74. data/lib/workos/pipes/data_integrations_get_data_integration_authorize_url_request.rb +17 -2
  75. data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +10 -1
  76. data/lib/workos/pipes/data_integrations_list_response_data_connected_account_warning.rb +7 -0
  77. data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +14 -5
  78. data/lib/workos/pipes/data_integrations_upsert_client_credentials_request.rb +14 -5
  79. data/lib/workos/pipes/organization_connected_account.rb +40 -0
  80. data/lib/workos/pipes.rb +216 -20
  81. data/lib/workos/shared/access_denied_oauth_error_body.rb +22 -0
  82. data/lib/workos/shared/account_selection_required_error_body.rb +7 -0
  83. data/lib/workos/shared/agent_blueprint_created_data.rb +3 -0
  84. data/lib/workos/shared/agent_blueprint_created_data_invocable_as.rb +18 -0
  85. data/lib/workos/shared/agent_blueprint_updated_data.rb +40 -1
  86. data/lib/workos/shared/agent_blueprint_updated_data_invocable_as.rb +18 -0
  87. data/lib/workos/shared/already_claimed_error_body.rb +22 -0
  88. data/lib/workos/shared/application_consent_required_error_body.rb +22 -0
  89. data/lib/workos/shared/auth_method_mismatch_error_body.rb +7 -0
  90. data/lib/workos/shared/authorization_pending_oauth_error_body.rb +22 -0
  91. data/lib/workos/shared/authorization_url_not_found_error_body.rb +22 -0
  92. data/lib/workos/shared/authorization_url_request_error_body.rb +22 -0
  93. data/lib/workos/shared/client_credentials_data_integration_vended_credential.rb +40 -0
  94. data/lib/workos/shared/code_challenge_not_found_error_body.rb +22 -0
  95. data/lib/workos/shared/connect_application_oauth.rb +3 -0
  96. data/lib/workos/shared/connected_account_limit_reached_error_body.rb +22 -0
  97. data/lib/workos/shared/daily_quota_exceeded_error_body.rb +22 -0
  98. data/lib/workos/shared/data_integration_access_token_response_with_access_token.rb +22 -0
  99. data/lib/workos/shared/data_integration_access_token_response_with_access_token_access_token.rb +7 -0
  100. data/lib/workos/shared/data_integration_access_token_response_with_error.rb +22 -0
  101. data/lib/workos/shared/data_integration_credentials_response_with_credential.rb +22 -0
  102. data/lib/workos/shared/data_integration_credentials_response_with_error.rb +22 -0
  103. data/lib/workos/shared/entity_not_found_error_body.rb +22 -0
  104. data/lib/workos/shared/error_body.rb +7 -0
  105. data/lib/workos/shared/error_body_with_code.rb +7 -0
  106. data/lib/workos/shared/error_body_with_code_errors.rb +25 -0
  107. data/lib/workos/shared/error_body_with_code_field_error.rb +22 -0
  108. data/lib/workos/shared/error_body_with_code_field_errors.rb +22 -0
  109. data/lib/workos/shared/error_body_with_code_instance_path_error.rb +18 -0
  110. data/lib/workos/shared/error_body_with_code_instance_path_errors.rb +25 -0
  111. data/lib/workos/shared/error_body_with_code_status_code.rb +25 -0
  112. data/lib/workos/shared/error_body_with_constraints_property_error.rb +22 -0
  113. data/lib/workos/shared/error_body_with_constraints_property_errors.rb +22 -0
  114. data/lib/workos/shared/error_body_with_error.rb +22 -0
  115. data/lib/workos/shared/error_body_with_error_message_list.rb +22 -0
  116. data/lib/workos/shared/error_body_with_message_or_message_list.rb +18 -0
  117. data/lib/workos/shared/expired_token_oauth_error_body.rb +22 -0
  118. data/lib/workos/shared/external_auth_session_already_completed_error_body.rb +22 -0
  119. data/lib/workos/shared/external_id_already_used_error_body.rb +22 -0
  120. data/lib/workos/shared/extra_attributes_required_oauth_error_body.rb +22 -0
  121. data/lib/workos/shared/feature_flags_flag_created.rb +34 -0
  122. data/lib/workos/shared/feature_flags_flag_created_context.rb +22 -0
  123. data/lib/workos/shared/feature_flags_flag_created_context_actor.rb +25 -0
  124. data/lib/workos/shared/feature_flags_flag_created_data.rb +52 -0
  125. data/lib/workos/shared/feature_flags_flag_created_data_owner.rb +7 -0
  126. data/lib/workos/shared/feature_flags_flag_deleted.rb +34 -0
  127. data/lib/workos/shared/feature_flags_flag_deleted_context.rb +22 -0
  128. data/lib/workos/shared/feature_flags_flag_deleted_context_actor.rb +25 -0
  129. data/lib/workos/shared/feature_flags_flag_deleted_data.rb +7 -0
  130. data/lib/workos/shared/feature_flags_flag_deleted_data_owner.rb +7 -0
  131. data/lib/workos/shared/feature_flags_flag_rule_created.rb +34 -0
  132. data/lib/workos/shared/feature_flags_flag_rule_created_context.rb +22 -0
  133. data/lib/workos/shared/feature_flags_flag_rule_created_context_actor.rb +25 -0
  134. data/lib/workos/shared/feature_flags_flag_rule_deleted.rb +34 -0
  135. data/lib/workos/shared/feature_flags_flag_rule_deleted_context.rb +22 -0
  136. data/lib/workos/shared/feature_flags_flag_rule_deleted_context_actor.rb +25 -0
  137. data/lib/workos/shared/feature_flags_flag_rule_updated.rb +34 -0
  138. data/lib/workos/shared/feature_flags_flag_rule_updated_context.rb +25 -0
  139. data/lib/workos/shared/feature_flags_flag_rule_updated_context_actor.rb +25 -0
  140. data/lib/workos/shared/feature_flags_flag_rule_updated_context_previous_attribute.rb +18 -0
  141. data/lib/workos/shared/feature_flags_flag_rule_updated_context_previous_attribute_data.rb +18 -0
  142. data/lib/workos/shared/feature_flags_flag_target_created.rb +34 -0
  143. data/lib/workos/shared/feature_flags_flag_target_created_context.rb +22 -0
  144. data/lib/workos/shared/feature_flags_flag_target_created_context_actor.rb +25 -0
  145. data/lib/workos/shared/feature_flags_flag_target_deleted.rb +34 -0
  146. data/lib/workos/shared/feature_flags_flag_target_deleted_context.rb +22 -0
  147. data/lib/workos/shared/feature_flags_flag_target_deleted_context_actor.rb +25 -0
  148. data/lib/workos/shared/feature_flags_flag_updated.rb +34 -0
  149. data/lib/workos/shared/feature_flags_flag_updated_context.rb +25 -0
  150. data/lib/workos/shared/feature_flags_flag_updated_context_actor.rb +25 -0
  151. data/lib/workos/shared/feature_flags_flag_updated_context_previous_attribute.rb +18 -0
  152. data/lib/workos/shared/feature_flags_flag_updated_context_previous_attribute_data.rb +34 -0
  153. data/lib/workos/shared/feature_flags_flag_updated_context_previous_attribute_data_owner.rb +7 -0
  154. data/lib/workos/shared/feature_flags_flag_updated_data.rb +7 -0
  155. data/lib/workos/shared/feature_flags_flag_updated_data_owner.rb +7 -0
  156. data/lib/workos/shared/idp_metadata_fetch_failed_error_body.rb +22 -0
  157. data/lib/workos/shared/invalid_client_oauth_error_body.rb +22 -0
  158. data/lib/workos/shared/invalid_connection_oauth_error_body.rb +22 -0
  159. data/lib/workos/shared/invalid_credentials_error_body.rb +22 -0
  160. data/lib/workos/shared/invalid_email_error_body.rb +22 -0
  161. data/lib/workos/shared/invalid_grant_oauth_error_body.rb +22 -0
  162. data/lib/workos/shared/invalid_idp_sso_url_error_body.rb +22 -0
  163. data/lib/workos/shared/invalid_link_authorization_code_oauth_error_body.rb +22 -0
  164. data/lib/workos/shared/invalid_locale_error_body.rb +22 -0
  165. data/lib/workos/shared/invalid_metadata_error_body.rb +22 -0
  166. data/lib/workos/shared/invalid_one_time_code_error_body.rb +22 -0
  167. data/lib/workos/shared/invalid_organization_id_error_body.rb +22 -0
  168. data/lib/workos/shared/invalid_password_hash_error_body.rb +22 -0
  169. data/lib/workos/shared/invalid_pending_authentication_token_error_body.rb +22 -0
  170. data/lib/workos/shared/invalid_profile_oauth_error_body.rb +22 -0
  171. data/lib/workos/shared/invalid_refresh_token_error_body.rb +22 -0
  172. data/lib/workos/shared/invalid_request_oauth_error_body.rb +22 -0
  173. data/lib/workos/shared/invalid_request_parameters_error_body.rb +22 -0
  174. data/lib/workos/shared/invalid_request_parameters_error_body_with_errors.rb +25 -0
  175. data/lib/workos/shared/invalid_role_error_body.rb +22 -0
  176. data/lib/workos/shared/invalid_url_error_body.rb +22 -0
  177. data/lib/workos/shared/mfa_challenge_error_body.rb +22 -0
  178. data/lib/workos/shared/mfa_enrollment_error_body.rb +22 -0
  179. data/lib/workos/shared/mfa_enrollment_oauth_error_body.rb +22 -0
  180. data/lib/workos/shared/multiple_roles_not_enabled_error_body.rb +22 -0
  181. data/lib/workos/shared/must_use_sso_for_selected_organization_message_error_body.rb +18 -0
  182. data/lib/workos/shared/oauth_data_integration_vended_credential.rb +40 -0
  183. data/lib/workos/shared/oauth_error_body.rb +22 -0
  184. data/lib/workos/shared/one_time_code_expired_error_body.rb +22 -0
  185. data/lib/workos/shared/one_time_code_previously_used_error_body.rb +22 -0
  186. data/lib/workos/shared/one_time_code_too_many_attempts_error_body.rb +22 -0
  187. data/lib/workos/shared/passkey_progressive_enrollment_error_body.rb +22 -0
  188. data/lib/workos/shared/phone_number_required_error_body.rb +22 -0
  189. data/lib/workos/shared/pipe_connected_account.rb +6 -0
  190. data/lib/workos/shared/pkce_not_supported_oauth_error_body.rb +22 -0
  191. data/lib/workos/shared/policy_denied_error_body.rb +22 -0
  192. data/lib/workos/shared/radar_challenge_error_body.rb +22 -0
  193. data/lib/workos/shared/radar_sign_up_challenge_error_body.rb +22 -0
  194. data/lib/workos/shared/radar_sms_sign_in_challenge_error_body.rb +22 -0
  195. data/lib/workos/shared/rate_limit_exceeded_error_body_with_retry_after.rb +25 -0
  196. data/lib/workos/shared/sign_up_not_allowed_oauth_error_body.rb +22 -0
  197. data/lib/workos/shared/slow_down_oauth_error_body.rb +22 -0
  198. data/lib/workos/shared/sms_challenge_quota_reached_error_body.rb +22 -0
  199. data/lib/workos/shared/sms_challenge_rate_limited_error_body.rb +22 -0
  200. data/lib/workos/shared/sso_required_oauth_error_body_with_connection_ids_list_email_pending_authentication_token.rb +31 -0
  201. data/lib/workos/shared/sub_resource_scoped_role_not_allowed_error_body_with_role_slug.rb +25 -0
  202. data/lib/workos/shared/token_too_big_oauth_error_body.rb +22 -0
  203. data/lib/workos/shared/too_many_failed_verification_attempts_error_body_with_retry_after.rb +25 -0
  204. data/lib/workos/shared/too_many_requests_oauth_error_body.rb +22 -0
  205. data/lib/workos/shared/unauthorized_client_oauth_error_body.rb +22 -0
  206. data/lib/workos/shared/unauthorized_error_body.rb +18 -0
  207. data/lib/workos/shared/update_audit_logs_retention_with_retention_period.rb +18 -0
  208. data/lib/workos/shared/update_audit_logs_retention_with_retention_period_in_days.rb +26 -0
  209. data/lib/workos/shared/update_user_organization_membership_with_role_slug.rb +18 -0
  210. data/lib/workos/shared/update_user_organization_membership_with_role_slugs.rb +18 -0
  211. data/lib/workos/shared/verification_id_required_error_body.rb +22 -0
  212. data/lib/workos/sso/connection_could_not_be_verified_error_body.rb +22 -0
  213. data/lib/workos/sso/connection_creation_conflict_error_body.rb +22 -0
  214. data/lib/workos/sso/connection_creation_not_found_error_body.rb +22 -0
  215. data/lib/workos/sso/connection_finish_error_body.rb +22 -0
  216. data/lib/workos/sso/connection_type_not_updatable_error_body.rb +22 -0
  217. data/lib/workos/sso/token_query.rb +3 -0
  218. data/lib/workos/sso.rb +3 -0
  219. data/lib/workos/types/agent_blueprint_created_data_invocable_as_instance_types.rb +13 -0
  220. data/lib/workos/types/agent_blueprint_invocable_as_instance_types.rb +9 -0
  221. data/lib/workos/types/agent_blueprint_updated_data_invocable_as_instance_types.rb +9 -0
  222. data/lib/workos/types/agent_blueprints_create_request_invocable_as_instance_types.rb +9 -0
  223. data/lib/workos/types/agent_blueprints_update_request_invocable_as_instance_types.rb +9 -0
  224. data/lib/workos/types/agent_instance_created_data_type.rb +1 -5
  225. data/lib/workos/types/agent_instance_deleted_data_type.rb +1 -1
  226. data/lib/workos/types/agent_instance_type.rb +1 -1
  227. data/lib/workos/types/authorization_url_not_found_error_body_code.rb +14 -0
  228. data/lib/workos/types/authorization_url_request_error_body_code.rb +14 -0
  229. data/lib/workos/types/connection_creation_conflict_error_body_code.rb +13 -0
  230. data/lib/workos/types/connection_creation_not_found_error_body_code.rb +13 -0
  231. data/lib/workos/types/connection_finish_error_body_code.rb +29 -0
  232. data/lib/workos/types/create_connected_account_state.rb +9 -0
  233. data/lib/workos/types/create_magic_code_and_return_locale.rb +101 -0
  234. data/lib/workos/types/create_organization_connected_account_state.rb +9 -0
  235. data/lib/workos/types/create_password_reset_token_locale.rb +9 -0
  236. data/lib/workos/types/create_user_invite_options_locale.rb +1 -93
  237. data/lib/workos/types/create_webhook_endpoint_events.rb +9 -1
  238. data/lib/workos/types/data_integration_access_token_response_with_error_error.rb +9 -0
  239. data/lib/workos/types/data_integration_credentials_response_with_error_error.rb +9 -0
  240. data/lib/workos/types/data_integrations_create_api_key_connection_request_connection_owner.rb +9 -0
  241. data/lib/workos/types/data_integrations_create_client_credentials_connection_request_connection_owner.rb +9 -0
  242. data/lib/workos/types/data_integrations_get_data_integration_authorize_url_request_connection_intent.rb +13 -0
  243. data/lib/workos/types/error_body_code.rb +183 -0
  244. data/lib/workos/types/feature_flags_flag_created_context_actor_source.rb +9 -0
  245. data/lib/workos/types/feature_flags_flag_deleted_context_actor_source.rb +9 -0
  246. data/lib/workos/types/feature_flags_flag_rule_created_context_actor_source.rb +9 -0
  247. data/lib/workos/types/feature_flags_flag_rule_deleted_context_actor_source.rb +9 -0
  248. data/lib/workos/types/feature_flags_flag_rule_updated_context_actor_source.rb +9 -0
  249. data/lib/workos/types/feature_flags_flag_target_created_context_actor_source.rb +9 -0
  250. data/lib/workos/types/feature_flags_flag_target_deleted_context_actor_source.rb +9 -0
  251. data/lib/workos/types/feature_flags_flag_updated_context_actor_source.rb +9 -0
  252. data/lib/workos/types/organization_connected_account_import_error_body_code.rb +14 -0
  253. data/lib/workos/types/organization_connected_account_state.rb +9 -0
  254. data/lib/workos/types/resend_user_invite_options_locale.rb +1 -1
  255. data/lib/workos/types/resource_export_completed_data_resource_type.rb +4 -1
  256. data/lib/workos/types/send_email_change_locale.rb +9 -0
  257. data/lib/workos/types/send_verification_email_locale.rb +9 -0
  258. data/lib/workos/types/update_audit_logs_retention_with_retention_period_retention_period.rb +9 -0
  259. data/lib/workos/types/user_connected_account_import_error_body_code.rb +15 -0
  260. data/lib/workos/types/vault_dek_rekeyed_data_actor_source.rb +9 -0
  261. data/lib/workos/types/widget_session_token_scopes.rb +3 -1
  262. data/lib/workos/user_management/action_denied_error_body.rb +22 -0
  263. data/lib/workos/user_management/authentication_method_not_allowed_error_body.rb +22 -0
  264. data/lib/workos/user_management/authentication_method_not_allowed_oauth_error_body.rb +22 -0
  265. data/lib/workos/user_management/create_magic_code_and_return.rb +5 -2
  266. data/lib/workos/user_management/create_password_reset_token.rb +16 -1
  267. data/lib/workos/user_management/email_already_in_use_error_body.rb +22 -0
  268. data/lib/workos/user_management/email_already_verified_error_body.rb +22 -0
  269. data/lib/workos/user_management/email_change_not_allowed_error_body.rb +22 -0
  270. data/lib/workos/user_management/email_completion_required_error_body_with_email_completion_token.rb +25 -0
  271. data/lib/workos/user_management/email_domain_not_deliverable_error_body.rb +22 -0
  272. data/lib/workos/user_management/email_not_available_error_body.rb +22 -0
  273. data/lib/workos/user_management/email_password_auth_disabled_error_body.rb +22 -0
  274. data/lib/workos/user_management/email_verification_required_error_body.rb +22 -0
  275. data/lib/workos/user_management/invitation_cannot_be_used_for_email_oauth_error_body.rb +22 -0
  276. data/lib/workos/user_management/invitation_invalid_oauth_error_body.rb +22 -0
  277. data/lib/workos/user_management/password_and_password_hash_provided_error_body.rb +22 -0
  278. data/lib/workos/user_management/password_and_password_hash_type_provided_error_body.rb +22 -0
  279. data/lib/workos/user_management/password_salt_position_requires_password_hash_error_body.rb +22 -0
  280. data/lib/workos/user_management/password_strength_error_error_body_with_errors.rb +25 -0
  281. data/lib/workos/user_management/send_email_change.rb +6 -2
  282. data/lib/workos/user_management/send_verification_email.rb +18 -0
  283. data/lib/workos/user_management/user_connected_account_import_error_body.rb +22 -0
  284. data/lib/workos/user_management/user_consent_options_not_supported_error_body.rb +22 -0
  285. data/lib/workos/user_management/user_creation_error_error_body_with_errors.rb +25 -0
  286. data/lib/workos/user_management/user_mismatch_error_body.rb +22 -0
  287. data/lib/workos/user_management/waitlist_list_response.rb +25 -0
  288. data/lib/workos/user_management/waitlist_list_response_list_metadata.rb +7 -0
  289. data/lib/workos/user_management.rb +26 -11
  290. data/lib/workos/vault/vault_dek_rekeyed.rb +34 -0
  291. data/lib/workos/vault/vault_dek_rekeyed_data.rb +31 -0
  292. data/lib/workos/version.rb +1 -1
  293. data/rbi/workos/access_denied_oauth_error_body.rbi +30 -0
  294. data/rbi/workos/account_selection_required_error_body.rbi +30 -0
  295. data/rbi/workos/action_denied_error_body.rbi +30 -0
  296. data/rbi/workos/admin_portal.rbi +11 -1
  297. data/rbi/workos/agent_blueprint.rbi +6 -0
  298. data/rbi/workos/agent_blueprint_created_data.rbi +6 -0
  299. data/rbi/workos/agent_blueprint_created_data_invocable_as.rbi +24 -0
  300. data/rbi/workos/agent_blueprint_invocable_as.rbi +24 -0
  301. data/rbi/workos/agent_blueprint_updated_data.rbi +6 -0
  302. data/rbi/workos/agent_blueprint_updated_data_invocable_as.rbi +24 -0
  303. data/rbi/workos/agent_blueprints_create_request.rbi +6 -0
  304. data/rbi/workos/agent_blueprints_create_request_invocable_as.rbi +24 -0
  305. data/rbi/workos/agent_blueprints_update_request.rbi +6 -0
  306. data/rbi/workos/agent_blueprints_update_request_invocable_as.rbi +24 -0
  307. data/rbi/workos/agent_registration.rbi +6 -0
  308. data/rbi/workos/agents.rbi +29 -19
  309. data/rbi/workos/already_claimed_error_body.rbi +30 -0
  310. data/rbi/workos/api_key_data_integration_vended_credential.rbi +42 -0
  311. data/rbi/workos/api_keys.rbi +5 -5
  312. data/rbi/workos/application_consent_required_error_body.rbi +30 -0
  313. data/rbi/workos/audit_logs.rbi +10 -10
  314. data/rbi/workos/auth_method_mismatch_error_body.rbi +30 -0
  315. data/rbi/workos/authentication_method_not_allowed_error_body.rbi +30 -0
  316. data/rbi/workos/authentication_method_not_allowed_oauth_error_body.rbi +30 -0
  317. data/rbi/workos/authorization.rbi +55 -45
  318. data/rbi/workos/authorization_pending_oauth_error_body.rbi +30 -0
  319. data/rbi/workos/authorization_url_not_found_error_body.rbi +30 -0
  320. data/rbi/workos/authorization_url_request_error_body.rbi +30 -0
  321. data/rbi/workos/client_api.rbi +1 -1
  322. data/rbi/workos/client_credentials_data_integration_vended_credential.rbi +66 -0
  323. data/rbi/workos/code_challenge_not_found_error_body.rbi +30 -0
  324. data/rbi/workos/connect.rbi +12 -10
  325. data/rbi/workos/connect_application_oauth.rbi +6 -0
  326. data/rbi/workos/connected_account.rbi +18 -0
  327. data/rbi/workos/connected_account_input.rbi +12 -0
  328. data/rbi/workos/connected_account_limit_reached_error_body.rbi +30 -0
  329. data/rbi/workos/connected_account_warning.rbi +30 -0
  330. data/rbi/workos/connection_could_not_be_verified_error_body.rbi +30 -0
  331. data/rbi/workos/connection_creation_conflict_error_body.rbi +30 -0
  332. data/rbi/workos/connection_creation_not_found_error_body.rbi +30 -0
  333. data/rbi/workos/connection_finish_error_body.rbi +30 -0
  334. data/rbi/workos/connection_type_not_updatable_error_body.rbi +30 -0
  335. data/rbi/workos/create_connected_account.rbi +66 -0
  336. data/rbi/workos/create_magic_code_and_return.rbi +6 -0
  337. data/rbi/workos/create_oauth_application.rbi +6 -0
  338. data/rbi/workos/create_organization_connected_account.rbi +72 -0
  339. data/rbi/workos/create_password_reset_token.rbi +6 -0
  340. data/rbi/workos/daily_quota_exceeded_error_body.rbi +30 -0
  341. data/rbi/workos/data_integration_access_token_response_with_access_token.rbi +30 -0
  342. data/rbi/workos/{data_integration_credentials_response_credential.rbi → data_integration_access_token_response_with_access_token_access_token.rbi} +3 -9
  343. data/rbi/workos/data_integration_access_token_response_with_error.rbi +30 -0
  344. data/rbi/workos/data_integration_authorize_url_response.rbi +12 -0
  345. data/rbi/workos/data_integration_credentials_response.rbi +2 -2
  346. data/rbi/workos/data_integration_credentials_response_with_credential.rbi +30 -0
  347. data/rbi/workos/data_integration_credentials_response_with_error.rbi +30 -0
  348. data/rbi/workos/data_integration_finish_connection_response.rbi +24 -0
  349. data/rbi/workos/data_integration_vended_credential.rbi +66 -0
  350. data/rbi/workos/data_integrations_create_api_key_connection_request.rbi +60 -0
  351. data/rbi/workos/data_integrations_create_client_credentials_connection_request.rbi +72 -0
  352. data/rbi/workos/data_integrations_finish_connection_request.rbi +36 -0
  353. data/rbi/workos/data_integrations_get_data_integration_authorize_url_request.rbi +30 -0
  354. data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +18 -0
  355. data/rbi/workos/data_integrations_list_response_data_connected_account_warning.rbi +30 -0
  356. data/rbi/workos/data_integrations_upsert_api_key_request.rbi +24 -6
  357. data/rbi/workos/data_integrations_upsert_client_credentials_request.rbi +24 -6
  358. data/rbi/workos/directory_sync.rbi +15 -7
  359. data/rbi/workos/directory_sync_rate_limit_error.rbi +36 -0
  360. data/rbi/workos/directory_sync_response.rbi +24 -0
  361. data/rbi/workos/email_already_in_use_error_body.rbi +30 -0
  362. data/rbi/workos/email_already_verified_error_body.rbi +30 -0
  363. data/rbi/workos/email_change_not_allowed_error_body.rbi +30 -0
  364. data/rbi/workos/email_completion_required_error_body_with_email_completion_token.rbi +36 -0
  365. data/rbi/workos/email_domain_not_deliverable_error_body.rbi +30 -0
  366. data/rbi/workos/email_not_available_error_body.rbi +30 -0
  367. data/rbi/workos/email_password_auth_disabled_error_body.rbi +30 -0
  368. data/rbi/workos/email_verification_required_error_body.rbi +30 -0
  369. data/rbi/workos/entity_not_found_error_body.rbi +30 -0
  370. data/rbi/workos/error_body.rbi +24 -0
  371. data/rbi/workos/error_body_with_code.rbi +30 -0
  372. data/rbi/workos/error_body_with_code_errors.rbi +36 -0
  373. data/rbi/workos/error_body_with_code_field_error.rbi +30 -0
  374. data/rbi/workos/error_body_with_code_field_errors.rbi +30 -0
  375. data/rbi/workos/error_body_with_code_instance_path_error.rbi +24 -0
  376. data/rbi/workos/error_body_with_code_instance_path_errors.rbi +36 -0
  377. data/rbi/workos/error_body_with_code_status_code.rbi +36 -0
  378. data/rbi/workos/error_body_with_constraints_property_error.rbi +30 -0
  379. data/rbi/workos/error_body_with_constraints_property_errors.rbi +30 -0
  380. data/rbi/workos/error_body_with_error.rbi +30 -0
  381. data/rbi/workos/error_body_with_error_message_list.rbi +30 -0
  382. data/rbi/workos/error_body_with_message_or_message_list.rbi +24 -0
  383. data/rbi/workos/events.rbi +1 -3
  384. data/rbi/workos/expired_token_oauth_error_body.rbi +30 -0
  385. data/rbi/workos/external_auth_session_already_completed_error_body.rbi +30 -0
  386. data/rbi/workos/external_id_already_used_error_body.rbi +30 -0
  387. data/rbi/workos/extra_attributes_required_oauth_error_body.rbi +30 -0
  388. data/rbi/workos/feature_flags.rbi +8 -8
  389. data/rbi/workos/feature_flags_flag_created.rbi +54 -0
  390. data/rbi/workos/feature_flags_flag_created_context.rbi +30 -0
  391. data/rbi/workos/feature_flags_flag_created_context_actor.rbi +36 -0
  392. data/rbi/workos/feature_flags_flag_created_data.rbi +90 -0
  393. data/rbi/workos/feature_flags_flag_created_data_owner.rbi +36 -0
  394. data/rbi/workos/feature_flags_flag_deleted.rbi +54 -0
  395. data/rbi/workos/feature_flags_flag_deleted_context.rbi +30 -0
  396. data/rbi/workos/feature_flags_flag_deleted_context_actor.rbi +36 -0
  397. data/rbi/workos/feature_flags_flag_deleted_data.rbi +90 -0
  398. data/rbi/workos/feature_flags_flag_deleted_data_owner.rbi +36 -0
  399. data/rbi/workos/feature_flags_flag_rule_created.rbi +54 -0
  400. data/rbi/workos/feature_flags_flag_rule_created_context.rbi +30 -0
  401. data/rbi/workos/feature_flags_flag_rule_created_context_actor.rbi +36 -0
  402. data/rbi/workos/feature_flags_flag_rule_deleted.rbi +54 -0
  403. data/rbi/workos/feature_flags_flag_rule_deleted_context.rbi +30 -0
  404. data/rbi/workos/feature_flags_flag_rule_deleted_context_actor.rbi +36 -0
  405. data/rbi/workos/feature_flags_flag_rule_updated.rbi +54 -0
  406. data/rbi/workos/feature_flags_flag_rule_updated_context.rbi +36 -0
  407. data/rbi/workos/feature_flags_flag_rule_updated_context_actor.rbi +36 -0
  408. data/rbi/workos/feature_flags_flag_rule_updated_context_previous_attribute.rbi +24 -0
  409. data/rbi/workos/feature_flags_flag_rule_updated_context_previous_attribute_data.rbi +24 -0
  410. data/rbi/workos/feature_flags_flag_target_created.rbi +54 -0
  411. data/rbi/workos/feature_flags_flag_target_created_context.rbi +30 -0
  412. data/rbi/workos/feature_flags_flag_target_created_context_actor.rbi +36 -0
  413. data/rbi/workos/feature_flags_flag_target_deleted.rbi +54 -0
  414. data/rbi/workos/feature_flags_flag_target_deleted_context.rbi +30 -0
  415. data/rbi/workos/feature_flags_flag_target_deleted_context_actor.rbi +36 -0
  416. data/rbi/workos/feature_flags_flag_updated.rbi +54 -0
  417. data/rbi/workos/feature_flags_flag_updated_context.rbi +36 -0
  418. data/rbi/workos/feature_flags_flag_updated_context_actor.rbi +36 -0
  419. data/rbi/workos/feature_flags_flag_updated_context_previous_attribute.rbi +24 -0
  420. data/rbi/workos/feature_flags_flag_updated_context_previous_attribute_data.rbi +54 -0
  421. data/rbi/workos/feature_flags_flag_updated_context_previous_attribute_data_owner.rbi +36 -0
  422. data/rbi/workos/feature_flags_flag_updated_data.rbi +90 -0
  423. data/rbi/workos/feature_flags_flag_updated_data_owner.rbi +36 -0
  424. data/rbi/workos/flag_rule.rbi +84 -0
  425. data/rbi/workos/flag_target.rbi +90 -0
  426. data/rbi/workos/flag_target_with_rule_id.rbi +78 -0
  427. data/rbi/workos/flag_target_with_value_type.rbi +84 -0
  428. data/rbi/workos/flag_updated_context_previous_attribute_data.rbi +6 -0
  429. data/rbi/workos/flag_updated_context_previous_attribute_data_owner.rbi +36 -0
  430. data/rbi/workos/generate_link.rbi +6 -0
  431. data/rbi/workos/group_role_assignment_list.rbi +36 -0
  432. data/rbi/workos/groups.rbi +19 -8
  433. data/rbi/workos/idp_metadata_fetch_failed_error_body.rbi +30 -0
  434. data/rbi/workos/invalid_client_oauth_error_body.rbi +30 -0
  435. data/rbi/workos/invalid_connection_oauth_error_body.rbi +30 -0
  436. data/rbi/workos/invalid_credentials_error_body.rbi +30 -0
  437. data/rbi/workos/invalid_email_error_body.rbi +30 -0
  438. data/rbi/workos/invalid_grant_oauth_error_body.rbi +30 -0
  439. data/rbi/workos/invalid_idp_sso_url_error_body.rbi +30 -0
  440. data/rbi/workos/invalid_link_authorization_code_oauth_error_body.rbi +30 -0
  441. data/rbi/workos/invalid_locale_error_body.rbi +30 -0
  442. data/rbi/workos/invalid_metadata_error_body.rbi +30 -0
  443. data/rbi/workos/invalid_one_time_code_error_body.rbi +30 -0
  444. data/rbi/workos/invalid_organization_id_error_body.rbi +30 -0
  445. data/rbi/workos/invalid_password_hash_error_body.rbi +30 -0
  446. data/rbi/workos/invalid_pending_authentication_token_error_body.rbi +30 -0
  447. data/rbi/workos/invalid_profile_oauth_error_body.rbi +30 -0
  448. data/rbi/workos/invalid_refresh_token_error_body.rbi +30 -0
  449. data/rbi/workos/invalid_request_oauth_error_body.rbi +30 -0
  450. data/rbi/workos/invalid_request_parameters_error_body.rbi +30 -0
  451. data/rbi/workos/invalid_request_parameters_error_body_with_errors.rbi +36 -0
  452. data/rbi/workos/invalid_role_error_body.rbi +30 -0
  453. data/rbi/workos/invalid_url_error_body.rbi +30 -0
  454. data/rbi/workos/invitation_cannot_be_used_for_email_oauth_error_body.rbi +30 -0
  455. data/rbi/workos/invitation_invalid_oauth_error_body.rbi +30 -0
  456. data/rbi/workos/it_contact_list.rbi +36 -0
  457. data/rbi/workos/it_contact_list_list_metadata.rbi +30 -0
  458. data/rbi/workos/list_metadata.rbi +30 -0
  459. data/rbi/workos/mfa_challenge_error_body.rbi +30 -0
  460. data/rbi/workos/mfa_enrollment_error_body.rbi +30 -0
  461. data/rbi/workos/mfa_enrollment_oauth_error_body.rbi +30 -0
  462. data/rbi/workos/multi_factor_auth.rbi +7 -7
  463. data/rbi/workos/multiple_roles_not_enabled_error_body.rbi +30 -0
  464. data/rbi/workos/must_use_sso_for_selected_organization_message_error_body.rbi +24 -0
  465. data/rbi/workos/oauth_data_integration_vended_credential.rbi +66 -0
  466. data/rbi/workos/oauth_error_body.rbi +30 -0
  467. data/rbi/workos/one_time_code_expired_error_body.rbi +30 -0
  468. data/rbi/workos/one_time_code_previously_used_error_body.rbi +30 -0
  469. data/rbi/workos/one_time_code_too_many_attempts_error_body.rbi +30 -0
  470. data/rbi/workos/organization_authentication_methods_required_oauth_error_body.rbi +30 -0
  471. data/rbi/workos/organization_connected_account.rbi +66 -0
  472. data/rbi/workos/organization_connected_account_import_error_body.rbi +30 -0
  473. data/rbi/workos/organization_domains.rbi +4 -4
  474. data/rbi/workos/organization_membership_not_found_oauth_error_body.rbi +30 -0
  475. data/rbi/workos/organization_membership_service.rbi +8 -8
  476. data/rbi/workos/organization_not_found_oauth_error_body.rbi +30 -0
  477. data/rbi/workos/organization_selection_required_error_body.rbi +30 -0
  478. data/rbi/workos/organization_selection_required_error_body_with_organization.rbi +30 -0
  479. data/rbi/workos/organization_selection_required_error_body_with_organizations.rbi +36 -0
  480. data/rbi/workos/organizations.rbi +13 -13
  481. data/rbi/workos/passkey_progressive_enrollment_error_body.rbi +30 -0
  482. data/rbi/workos/password_and_password_hash_provided_error_body.rbi +30 -0
  483. data/rbi/workos/password_and_password_hash_type_provided_error_body.rbi +30 -0
  484. data/rbi/workos/password_salt_position_requires_password_hash_error_body.rbi +30 -0
  485. data/rbi/workos/password_strength_error_error_body_with_errors.rbi +36 -0
  486. data/rbi/workos/patch_group_memberships.rbi +30 -0
  487. data/rbi/workos/patch_group_role_assignments.rbi +30 -0
  488. data/rbi/workos/phone_number_required_error_body.rbi +30 -0
  489. data/rbi/workos/pipe_connected_account.rbi +12 -0
  490. data/rbi/workos/pipes.rbi +92 -25
  491. data/rbi/workos/pipes_provider.rbi +2 -2
  492. data/rbi/workos/pkce_not_supported_oauth_error_body.rbi +30 -0
  493. data/rbi/workos/platform_teams.rbi +2 -2
  494. data/rbi/workos/policy_denied_error_body.rbi +30 -0
  495. data/rbi/workos/radar.rbi +4 -4
  496. data/rbi/workos/radar_challenge_error_body.rbi +30 -0
  497. data/rbi/workos/radar_sign_up_challenge_error_body.rbi +30 -0
  498. data/rbi/workos/radar_sms_sign_in_challenge_error_body.rbi +30 -0
  499. data/rbi/workos/rate_limit_exceeded_error_body_with_retry_after.rbi +36 -0
  500. data/rbi/workos/revoke_link.rbi +30 -0
  501. data/rbi/workos/send_email_change.rbi +6 -0
  502. data/rbi/workos/send_verification_email.rbi +24 -0
  503. data/rbi/workos/sign_up_not_allowed_oauth_error_body.rbi +30 -0
  504. data/rbi/workos/slow_down_oauth_error_body.rbi +30 -0
  505. data/rbi/workos/sms_challenge_quota_reached_error_body.rbi +30 -0
  506. data/rbi/workos/sms_challenge_rate_limited_error_body.rbi +30 -0
  507. data/rbi/workos/sso.rbi +19 -18
  508. data/rbi/workos/sso_required_oauth_error_body_with_connection_ids_list_email_pending_authentication_token.rbi +48 -0
  509. data/rbi/workos/sub_resource_scoped_role_not_allowed_error_body_with_role_slug.rbi +36 -0
  510. data/rbi/workos/token_query.rbi +6 -0
  511. data/rbi/workos/token_too_big_oauth_error_body.rbi +30 -0
  512. data/rbi/workos/too_many_failed_verification_attempts_error_body_with_retry_after.rbi +36 -0
  513. data/rbi/workos/too_many_requests_oauth_error_body.rbi +30 -0
  514. data/rbi/workos/unauthorized_client_oauth_error_body.rbi +30 -0
  515. data/rbi/workos/unauthorized_error_body.rbi +24 -0
  516. data/rbi/workos/update_audit_logs_retention_with_retention_period.rbi +24 -0
  517. data/rbi/workos/update_audit_logs_retention_with_retention_period_in_days.rbi +24 -0
  518. data/rbi/workos/update_oauth_application.rbi +6 -0
  519. data/rbi/workos/update_user_organization_membership_with_role_slug.rbi +24 -0
  520. data/rbi/workos/update_user_organization_membership_with_role_slugs.rbi +24 -0
  521. data/rbi/workos/user_connected_account_import_error_body.rbi +30 -0
  522. data/rbi/workos/user_consent_options_not_supported_error_body.rbi +30 -0
  523. data/rbi/workos/user_creation_error_error_body_with_errors.rbi +36 -0
  524. data/rbi/workos/user_management.rbi +77 -61
  525. data/rbi/workos/user_mismatch_error_body.rbi +30 -0
  526. data/rbi/workos/user_role_assignment_source.rbi +6 -0
  527. data/rbi/workos/user_role_assignment_source_group.rbi +30 -0
  528. data/rbi/workos/vault.rbi +11 -11
  529. data/rbi/workos/vault_dek_rekeyed.rbi +54 -0
  530. data/rbi/workos/vault_dek_rekeyed_data.rbi +48 -0
  531. data/rbi/workos/verification_id_required_error_body.rbi +30 -0
  532. data/rbi/workos/version_list_response.rbi +30 -0
  533. data/rbi/workos/waitlist_list_response.rbi +36 -0
  534. data/rbi/workos/waitlist_list_response_list_metadata.rbi +30 -0
  535. data/rbi/workos/webhooks.rbi +4 -4
  536. data/rbi/workos/widgets.rbi +1 -1
  537. data/test/workos/test_admin_portal.rb +9 -1
  538. data/test/workos/test_admin_portal_model_round_trip.rb +14 -0
  539. data/test/workos/test_agents.rb +8 -0
  540. data/test/workos/test_agents_model_round_trip.rb +46 -0
  541. data/test/workos/test_api_keys_model_round_trip.rb +14 -0
  542. data/test/workos/test_authorization.rb +8 -0
  543. data/test/workos/test_authorization_model_round_trip.rb +38 -1
  544. data/test/workos/test_base_client.rb +4 -3
  545. data/test/workos/test_connect_model_round_trip.rb +3 -1
  546. data/test/workos/test_directory_sync.rb +8 -0
  547. data/test/workos/test_directory_sync_model_round_trip.rb +24 -0
  548. data/test/workos/test_feature_flags_model_round_trip.rb +123 -0
  549. data/test/workos/test_groups.rb +8 -0
  550. data/test/workos/test_groups_model_round_trip.rb +11 -0
  551. data/test/workos/test_organizations_model_round_trip.rb +111 -0
  552. data/test/workos/test_pipes.rb +28 -4
  553. data/test/workos/test_pipes_model_round_trip.rb +214 -51
  554. data/test/workos/test_shared_model_round_trip.rb +2066 -423
  555. data/test/workos/test_sso_model_round_trip.rb +61 -0
  556. data/test/workos/test_user_management_model_round_trip.rb +297 -3
  557. data/test/workos/test_vault_model_round_trip.rb +63 -0
  558. metadata +423 -3
@@ -0,0 +1,54 @@
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 VaultDekRekeyed
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 object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
18
+ sig { returns(String) }
19
+ def id; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def id=(value); end
23
+
24
+ sig { returns(String) }
25
+ def event; end
26
+
27
+ sig { params(value: String).returns(String) }
28
+ def event=(value); end
29
+
30
+ sig { returns(WorkOS::VaultDekRekeyedData) }
31
+ def data; end
32
+
33
+ sig { params(value: WorkOS::VaultDekRekeyedData).returns(WorkOS::VaultDekRekeyedData) }
34
+ def data=(value); end
35
+
36
+ sig { returns(String) }
37
+ def created_at; end
38
+
39
+ sig { params(value: String).returns(String) }
40
+ def created_at=(value); end
41
+
42
+ sig { returns(T.nilable(WorkOS::EventContext)) }
43
+ def context; end
44
+
45
+ sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
46
+ def context=(value); end
47
+
48
+ sig { returns(T::Hash[Symbol, T.untyped]) }
49
+ def to_h; end
50
+
51
+ sig { params(args: T.untyped).returns(String) }
52
+ def to_json(*args); end
53
+ end
54
+ end
@@ -0,0 +1,48 @@
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 VaultDekRekeyedData
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 actor_id; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def actor_id=(value); end
17
+
18
+ sig { returns(String) }
19
+ def actor_source; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def actor_source=(value); end
23
+
24
+ sig { returns(String) }
25
+ def actor_name; end
26
+
27
+ sig { params(value: String).returns(String) }
28
+ def actor_name=(value); end
29
+
30
+ sig { returns(T::Array[String]) }
31
+ def key_ids; end
32
+
33
+ sig { params(value: T::Array[String]).returns(T::Array[String]) }
34
+ def key_ids=(value); end
35
+
36
+ sig { returns(T::Hash[String, String]) }
37
+ def key_context; end
38
+
39
+ sig { params(value: T::Hash[String, String]).returns(T::Hash[String, String]) }
40
+ def key_context=(value); end
41
+
42
+ sig { returns(T::Hash[Symbol, T.untyped]) }
43
+ def to_h; end
44
+
45
+ sig { params(args: T.untyped).returns(String) }
46
+ def to_json(*args); end
47
+ end
48
+ 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 VerificationIdRequiredErrorBody
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 code; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def code=(value); end
17
+
18
+ sig { returns(String) }
19
+ def message; end
20
+
21
+ sig { params(value: String).returns(String) }
22
+ def message=(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
@@ -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 VersionListResponse
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(T::Array[WorkOS::ObjectVersion]) }
13
+ def data; end
14
+
15
+ sig { params(value: T::Array[WorkOS::ObjectVersion]).returns(T::Array[WorkOS::ObjectVersion]) }
16
+ def data=(value); end
17
+
18
+ sig { returns(WorkOS::ListMetadata) }
19
+ def list_metadata; end
20
+
21
+ sig { params(value: WorkOS::ListMetadata).returns(WorkOS::ListMetadata) }
22
+ def list_metadata=(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
@@ -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 WaitlistListResponse
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 object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
18
+ sig { returns(T::Array[WorkOS::Waitlist]) }
19
+ def data; end
20
+
21
+ sig { params(value: T::Array[WorkOS::Waitlist]).returns(T::Array[WorkOS::Waitlist]) }
22
+ def data=(value); end
23
+
24
+ sig { returns(WorkOS::WaitlistListResponseListMetadata) }
25
+ def list_metadata; end
26
+
27
+ sig { params(value: WorkOS::WaitlistListResponseListMetadata).returns(WorkOS::WaitlistListResponseListMetadata) }
28
+ def list_metadata=(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,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 WaitlistListResponseListMetadata
9
+ sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
+ def initialize(json); end
11
+
12
+ sig { returns(T.nilable(String)) }
13
+ def before; end
14
+
15
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
16
+ def before=(value); end
17
+
18
+ sig { returns(T.nilable(String)) }
19
+ def after; end
20
+
21
+ sig { params(value: T.nilable(String)).returns(T.nilable(String)) }
22
+ def after=(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
@@ -18,7 +18,7 @@ module WorkOS
18
18
  request_options: T::Hash[Symbol, T.untyped]
19
19
  ).returns(WorkOS::Types::ListStruct)
20
20
  end
21
- def list_webhook_endpoints(before:, after:, limit:, order:, request_options:); end
21
+ def list_webhook_endpoints(before: nil, after: nil, limit: nil, order: nil, request_options: {}); end
22
22
 
23
23
  sig do
24
24
  params(
@@ -27,7 +27,7 @@ module WorkOS
27
27
  request_options: T::Hash[Symbol, T.untyped]
28
28
  ).returns(WorkOS::WebhookEndpoint)
29
29
  end
30
- def create_webhook_endpoint(endpoint_url:, events:, request_options:); end
30
+ def create_webhook_endpoint(endpoint_url:, events:, request_options: {}); end
31
31
 
32
32
  sig do
33
33
  params(
@@ -38,7 +38,7 @@ module WorkOS
38
38
  request_options: T::Hash[Symbol, T.untyped]
39
39
  ).returns(WorkOS::WebhookEndpoint)
40
40
  end
41
- def update_webhook_endpoint(id:, endpoint_url:, status:, events:, request_options:); end
41
+ def update_webhook_endpoint(id:, endpoint_url: nil, status: nil, events: nil, request_options: {}); end
42
42
 
43
43
  sig do
44
44
  params(
@@ -46,7 +46,7 @@ module WorkOS
46
46
  request_options: T::Hash[Symbol, T.untyped]
47
47
  ).returns(NilClass)
48
48
  end
49
- def delete_webhook_endpoint(id:, request_options:); end
49
+ def delete_webhook_endpoint(id:, request_options: {}); end
50
50
 
51
51
  end
52
52
  end
@@ -17,7 +17,7 @@ module WorkOS
17
17
  request_options: T::Hash[Symbol, T.untyped]
18
18
  ).returns(WorkOS::WidgetSessionTokenResponse)
19
19
  end
20
- def create_token(organization_id:, user_id:, scopes:, request_options:); end
20
+ def create_token(organization_id: nil, user_id: nil, scopes: nil, request_options: {}); end
21
21
 
22
22
  end
23
23
  end
@@ -18,9 +18,17 @@ class AdminPortalTest < Minitest::Test
18
18
  refute_nil result
19
19
  end
20
20
 
21
+ def test_revoke_link_returns_expected_result
22
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/portal/revoke_link(\?|\z)})
23
+ .to_return(body: "{}", status: 200)
24
+ result = @client.admin_portal.revoke_link(organization: "stub", external_user_id: "stub")
25
+ assert_nil result
26
+ end
27
+
21
28
  # Parameterized authentication error tests (one per endpoint).
22
29
  [
23
- {name: :generate_link, verb: :post, url: %r{\Ahttps://api\.workos\.com/portal/generate_link(\?|\z)}, args: {organization: "stub"}}
30
+ {name: :generate_link, verb: :post, url: %r{\Ahttps://api\.workos\.com/portal/generate_link(\?|\z)}, args: {organization: "stub"}},
31
+ {name: :revoke_link, verb: :post, url: %r{\Ahttps://api\.workos\.com/portal/revoke_link(\?|\z)}, args: {organization: "stub", external_user_id: "stub"}}
24
32
  ].each do |spec|
25
33
  define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
26
34
  stub_request(spec[:verb], spec[:url])
@@ -10,6 +10,7 @@ class AdminPortalModelRoundTripTest < Minitest::Test
10
10
  "return_url" => "stub",
11
11
  "success_url" => "stub",
12
12
  "organization" => "stub",
13
+ "external_user_id" => "stub",
13
14
  "intent" => "stub",
14
15
  "it_contact_emails" => []
15
16
  }
@@ -20,6 +21,19 @@ class AdminPortalModelRoundTripTest < Minitest::Test
20
21
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
21
22
  end
22
23
 
24
+ def test_revoke_link_round_trip
25
+ fixture = {
26
+ "organization" => "stub",
27
+ "external_user_id" => "stub"
28
+ }
29
+ model = WorkOS::RevokeLink.new(fixture.to_json)
30
+ json = model.to_h
31
+ assert_kind_of Hash, json
32
+ assert_equal fixture["organization"], json[:organization]
33
+ assert_equal fixture["external_user_id"], json[:external_user_id]
34
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
35
+ end
36
+
23
37
  def test_portal_link_response_round_trip
24
38
  fixture = {
25
39
  "link" => "stub"
@@ -81,6 +81,13 @@ class AgentsTest < Minitest::Test
81
81
  refute_nil result
82
82
  end
83
83
 
84
+ def test_revoke_registration_returns_expected_result
85
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/agents/registrations/stub/revoke(\?|\z)})
86
+ .to_return(body: "{}", status: 200)
87
+ result = @client.agents.revoke_registration(id: "stub")
88
+ refute_nil result
89
+ end
90
+
84
91
  def test_list_instances_returns_expected_result
85
92
  stub_request(:get, %r{\Ahttps://api\.workos\.com/agents/instances(\?|\z)})
86
93
  .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
@@ -135,6 +142,7 @@ class AgentsTest < Minitest::Test
135
142
  {name: :update_attempts, verb: :patch, url: %r{\Ahttps://api\.workos\.com/agents/claims/attempts(\?|\z)}, args: {type: "link_external_user", claim_attempt_token: "stub", user: {}}},
136
143
  {name: :create_validate, verb: :post, url: %r{\Ahttps://api\.workos\.com/agents/credentials/validate(\?|\z)}, args: {type: "stub", credential: "stub"}},
137
144
  {name: :get_registration, verb: :get, url: %r{\Ahttps://api\.workos\.com/agents/registrations/stub(\?|\z)}, args: {id: "stub"}},
145
+ {name: :revoke_registration, verb: :post, url: %r{\Ahttps://api\.workos\.com/agents/registrations/stub/revoke(\?|\z)}, args: {id: "stub"}},
138
146
  {name: :list_instances, verb: :get, url: %r{\Ahttps://api\.workos\.com/agents/instances(\?|\z)}},
139
147
  {name: :get_instance, verb: :get, url: %r{\Ahttps://api\.workos\.com/agents/instances/stub(\?|\z)}, args: {agent_instance_id: "stub"}},
140
148
  {name: :delete_instance, verb: :delete, url: %r{\Ahttps://api\.workos\.com/agents/instances/stub(\?|\z)}, args: {agent_instance_id: "stub"}},
@@ -5,12 +5,24 @@
5
5
  require "test_helper"
6
6
 
7
7
  class AgentsModelRoundTripTest < Minitest::Test
8
+ def test_list_metadata_round_trip
9
+ fixture = {
10
+ "after" => nil,
11
+ "before" => nil
12
+ }
13
+ model = WorkOS::ListMetadata.new(fixture.to_json)
14
+ json = model.to_h
15
+ assert_kind_of Hash, json
16
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
17
+ end
18
+
8
19
  def test_agent_registration_round_trip
9
20
  fixture = {
10
21
  "id" => "stub",
11
22
  "agent_identity" => {},
12
23
  "organization_id" => "stub",
13
24
  "status" => "stub",
25
+ "revoked_at" => nil,
14
26
  "kind" => "stub",
15
27
  "claim" => nil,
16
28
  "created_at" => "stub",
@@ -21,6 +33,7 @@ class AgentsModelRoundTripTest < Minitest::Test
21
33
  assert_kind_of Hash, json
22
34
  assert_equal fixture["id"], json[:id]
23
35
  assert_equal fixture["organization_id"], json[:organization_id]
36
+ assert_nil json[:revoked_at]
24
37
  assert_equal fixture["created_at"], json[:created_at]
25
38
  assert_equal fixture["updated_at"], json[:updated_at]
26
39
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
@@ -64,6 +77,7 @@ class AgentsModelRoundTripTest < Minitest::Test
64
77
  "description" => nil,
65
78
  "permissions" => [],
66
79
  "invocable_by" => {},
80
+ "invocable_as" => {},
67
81
  "session_settings" => {},
68
82
  "created_at" => "stub",
69
83
  "updated_at" => "stub"
@@ -182,6 +196,16 @@ class AgentsModelRoundTripTest < Minitest::Test
182
196
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
183
197
  end
184
198
 
199
+ def test_agent_blueprint_invocable_as_round_trip
200
+ fixture = {
201
+ "instance_types" => []
202
+ }
203
+ model = WorkOS::AgentBlueprintInvocableAs.new(fixture.to_json)
204
+ json = model.to_h
205
+ assert_kind_of Hash, json
206
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
207
+ end
208
+
185
209
  def test_agent_blueprint_session_setting_round_trip
186
210
  fixture = {
187
211
  "max_age_seconds" => 1,
@@ -251,6 +275,7 @@ class AgentsModelRoundTripTest < Minitest::Test
251
275
  "description" => "stub",
252
276
  "permissions" => [],
253
277
  "invocable_by" => {},
278
+ "invocable_as" => {},
254
279
  "session_settings" => {}
255
280
  }
256
281
  model = WorkOS::AgentBlueprintsCreateRequest.new(fixture.to_json)
@@ -271,6 +296,16 @@ class AgentsModelRoundTripTest < Minitest::Test
271
296
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
272
297
  end
273
298
 
299
+ def test_agent_blueprints_create_request_invocable_as_round_trip
300
+ fixture = {
301
+ "instance_types" => []
302
+ }
303
+ model = WorkOS::AgentBlueprintsCreateRequestInvocableAs.new(fixture.to_json)
304
+ json = model.to_h
305
+ assert_kind_of Hash, json
306
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
307
+ end
308
+
274
309
  def test_agent_blueprints_create_request_session_setting_round_trip
275
310
  fixture = {
276
311
  "max_age_seconds" => 1,
@@ -292,6 +327,7 @@ class AgentsModelRoundTripTest < Minitest::Test
292
327
  "description" => nil,
293
328
  "permissions" => [],
294
329
  "invocable_by" => {},
330
+ "invocable_as" => {},
295
331
  "session_settings" => {}
296
332
  }
297
333
  model = WorkOS::AgentBlueprintsUpdateRequest.new(fixture.to_json)
@@ -311,6 +347,16 @@ class AgentsModelRoundTripTest < Minitest::Test
311
347
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
312
348
  end
313
349
 
350
+ def test_agent_blueprints_update_request_invocable_as_round_trip
351
+ fixture = {
352
+ "instance_types" => []
353
+ }
354
+ model = WorkOS::AgentBlueprintsUpdateRequestInvocableAs.new(fixture.to_json)
355
+ json = model.to_h
356
+ assert_kind_of Hash, json
357
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
358
+ end
359
+
314
360
  def test_agent_blueprints_update_request_session_setting_round_trip
315
361
  fixture = {
316
362
  "max_age_seconds" => 1,
@@ -281,6 +281,20 @@ class ApiKeysModelRoundTripTest < Minitest::Test
281
281
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
282
282
  end
283
283
 
284
+ def test_api_key_data_integration_vended_credential_round_trip
285
+ fixture = {
286
+ "object" => "credential",
287
+ "auth_method" => "api_key",
288
+ "value" => "stub",
289
+ "config" => {}
290
+ }
291
+ model = WorkOS::ApiKeyDataIntegrationVendedCredential.new(fixture.to_json)
292
+ json = model.to_h
293
+ assert_kind_of Hash, json
294
+ assert_equal fixture["value"], json[:value]
295
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
296
+ end
297
+
284
298
  def test_organization_api_key_with_value_owner_round_trip
285
299
  fixture = {
286
300
  "type" => "organization",
@@ -32,6 +32,13 @@ class AuthorizationTest < Minitest::Test
32
32
  assert_kind_of WorkOS::Types::ListStruct, result
33
33
  end
34
34
 
35
+ def test_patch_group_role_assignments_returns_expected_result
36
+ stub_request(:patch, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
37
+ .to_return(body: "{}", status: 200)
38
+ result = @client.authorization.patch_group_role_assignments(group_id: "stub")
39
+ assert_nil result
40
+ end
41
+
35
42
  def test_delete_group_role_assignments_returns_expected_result
36
43
  stub_request(:delete, %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)})
37
44
  .to_return(body: "{}", status: 200)
@@ -397,6 +404,7 @@ class AuthorizationTest < Minitest::Test
397
404
  {name: :list_group_role_assignments, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub"}},
398
405
  {name: :create_group_role_assignment, verb: :post, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_slug: "stub"}},
399
406
  {name: :update_group_role_assignments, verb: :put, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_assignments: [{}]}},
407
+ {name: :patch_group_role_assignments, verb: :patch, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub"}},
400
408
  {name: :delete_group_role_assignments, verb: :delete, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments(\?|\z)}, args: {group_id: "stub", role_slug: "stub"}},
401
409
  {name: :get_group_role_assignment, verb: :get, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)}, args: {group_id: "stub", role_assignment_id: "stub"}},
402
410
  {name: :delete_group_role_assignment, verb: :delete, url: %r{\Ahttps://api\.workos\.com/authorization/groups/stub/role_assignments/stub(\?|\z)}, args: {group_id: "stub", role_assignment_id: "stub"}},
@@ -47,6 +47,17 @@ class AuthorizationModelRoundTripTest < Minitest::Test
47
47
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
48
48
  end
49
49
 
50
+ def test_patch_group_role_assignments_round_trip
51
+ fixture = {
52
+ "add" => [],
53
+ "remove" => []
54
+ }
55
+ model = WorkOS::PatchGroupRoleAssignments.new(fixture.to_json)
56
+ json = model.to_h
57
+ assert_kind_of Hash, json
58
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
59
+ end
60
+
50
61
  def test_replace_group_role_assignments_round_trip
51
62
  fixture = {
52
63
  "role_assignments" => []
@@ -328,6 +339,18 @@ class AuthorizationModelRoundTripTest < Minitest::Test
328
339
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
329
340
  end
330
341
 
342
+ def test_group_role_assignment_list_round_trip
343
+ fixture = {
344
+ "object" => "list",
345
+ "data" => [],
346
+ "list_metadata" => {}
347
+ }
348
+ model = WorkOS::GroupRoleAssignmentList.new(fixture.to_json)
349
+ json = model.to_h
350
+ assert_kind_of Hash, json
351
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
352
+ end
353
+
331
354
  def test_user_role_assignment_round_trip
332
355
  fixture = {
333
356
  "object" => "role_assignment",
@@ -641,7 +664,8 @@ class AuthorizationModelRoundTripTest < Minitest::Test
641
664
  def test_user_role_assignment_source_round_trip
642
665
  fixture = {
643
666
  "type" => "stub",
644
- "group_role_assignment_id" => nil
667
+ "group_role_assignment_id" => nil,
668
+ "group" => nil
645
669
  }
646
670
  model = WorkOS::UserRoleAssignmentSource.new(fixture.to_json)
647
671
  json = model.to_h
@@ -690,4 +714,17 @@ class AuthorizationModelRoundTripTest < Minitest::Test
690
714
  assert_equal fixture["updated_at"], json[:updated_at]
691
715
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
692
716
  end
717
+
718
+ def test_user_role_assignment_source_group_round_trip
719
+ fixture = {
720
+ "id" => "stub",
721
+ "name" => "stub"
722
+ }
723
+ model = WorkOS::UserRoleAssignmentSourceGroup.new(fixture.to_json)
724
+ json = model.to_h
725
+ assert_kind_of Hash, json
726
+ assert_equal fixture["id"], json[:id]
727
+ assert_equal fixture["name"], json[:name]
728
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
729
+ end
693
730
  end
@@ -164,15 +164,16 @@ class BaseClientTest < Minitest::Test
164
164
  assert_equal({"external_id" => nil}, JSON.parse(request.body))
165
165
  end
166
166
 
167
- def test_retry_path_generates_idempotency_key_for_mutating_requests
167
+ def test_post_sends_one_idempotency_key_on_the_first_attempt_and_its_retries
168
168
  stub_request(:post, "https://api.workos.com/widgets")
169
169
  .to_return({status: 500, body: '{"message":"retry"}'}, {status: 200, body: "{}"})
170
170
 
171
171
  @client.singleton_class.define_method(:sleep) { |_duration| nil }
172
172
  @client.request(method: :post, path: "/widgets", body: {name: "widget"})
173
173
 
174
- assert_requested(:post, "https://api.workos.com/widgets", times: 2)
175
- assert_requested(:post, "https://api.workos.com/widgets", headers: {"Idempotency-Key" => /.+/}, times: 1)
174
+ assert_requested(:post, "https://api.workos.com/widgets", headers: {"Idempotency-Key" => /.+/}, times: 2)
175
+ keys = WebMock::RequestRegistry.instance.requested_signatures.hash.keys.map { |signature| signature.headers["Idempotency-Key"] }
176
+ assert_equal 1, keys.uniq.size
176
177
  end
177
178
 
178
179
  def test_409_idempotency_error_raises_specific_error
@@ -69,6 +69,7 @@ class ConnectModelRoundTripTest < Minitest::Test
69
69
  "description" => nil,
70
70
  "scopes" => nil,
71
71
  "redirect_uris" => nil,
72
+ "cors_origins" => nil,
72
73
  "uses_pkce" => nil,
73
74
  "is_first_party" => true,
74
75
  "organization_id" => nil
@@ -102,7 +103,8 @@ class ConnectModelRoundTripTest < Minitest::Test
102
103
  "name" => "stub",
103
104
  "description" => nil,
104
105
  "scopes" => nil,
105
- "redirect_uris" => nil
106
+ "redirect_uris" => nil,
107
+ "cors_origins" => nil
106
108
  }
107
109
  model = WorkOS::UpdateOAuthApplication.new(fixture.to_json)
108
110
  json = model.to_h
@@ -32,6 +32,13 @@ class DirectorySyncTest < Minitest::Test
32
32
  assert_nil result
33
33
  end
34
34
 
35
+ def test_create_directory_sync_returns_expected_result
36
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/directories/stub/sync(\?|\z)})
37
+ .to_return(body: "{}", status: 200)
38
+ result = @client.directory_sync.create_directory_sync(id: "stub")
39
+ refute_nil result
40
+ end
41
+
35
42
  def test_list_groups_returns_expected_result
36
43
  stub_request(:get, %r{\Ahttps://api\.workos\.com/directory_groups(\?|\z)})
37
44
  .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
@@ -65,6 +72,7 @@ class DirectorySyncTest < Minitest::Test
65
72
  {name: :list_directories, verb: :get, url: %r{\Ahttps://api\.workos\.com/directories(\?|\z)}},
66
73
  {name: :get_directory, verb: :get, url: %r{\Ahttps://api\.workos\.com/directories/stub(\?|\z)}, args: {id: "stub"}},
67
74
  {name: :delete_directory, verb: :delete, url: %r{\Ahttps://api\.workos\.com/directories/stub(\?|\z)}, args: {id: "stub"}},
75
+ {name: :create_directory_sync, verb: :post, url: %r{\Ahttps://api\.workos\.com/directories/stub/sync(\?|\z)}, args: {id: "stub"}},
68
76
  {name: :list_groups, verb: :get, url: %r{\Ahttps://api\.workos\.com/directory_groups(\?|\z)}},
69
77
  {name: :get_group, verb: :get, url: %r{\Ahttps://api\.workos\.com/directory_groups/stub(\?|\z)}, args: {id: "stub"}},
70
78
  {name: :list_users, verb: :get, url: %r{\Ahttps://api\.workos\.com/directory_users(\?|\z)}},
@@ -31,6 +31,30 @@ class DirectorySyncModelRoundTripTest < Minitest::Test
31
31
  fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
32
32
  end
33
33
 
34
+ def test_directory_sync_response_round_trip
35
+ fixture = {
36
+ "status" => "queued"
37
+ }
38
+ model = WorkOS::DirectorySyncResponse.new(fixture.to_json)
39
+ json = model.to_h
40
+ assert_kind_of Hash, json
41
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
42
+ end
43
+
44
+ def test_directory_sync_rate_limit_error_round_trip
45
+ fixture = {
46
+ "code" => "directory_sync_rate_limited",
47
+ "message" => "stub",
48
+ "retry_after_seconds" => 1
49
+ }
50
+ model = WorkOS::DirectorySyncRateLimitError.new(fixture.to_json)
51
+ json = model.to_h
52
+ assert_kind_of Hash, json
53
+ assert_equal fixture["message"], json[:message]
54
+ assert_equal fixture["retry_after_seconds"], json[:retry_after_seconds]
55
+ fixture.each_key { |k| assert json.key?(k.to_sym) || json.key?(k), "Expected to_h to include key #{k}" }
56
+ end
57
+
34
58
  def test_directory_group_round_trip
35
59
  fixture = {
36
60
  "object" => "directory_group",