workos 8.0.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (347) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/docs.yml +1 -1
  4. data/.github/workflows/lint.yml +1 -1
  5. data/.github/workflows/release-please.yml +174 -3
  6. data/.github/workflows/release.yml +1 -1
  7. data/.last-synced-sha +1 -1
  8. data/.oagen-manifest.json +129 -34
  9. data/.release-please-manifest.json +1 -1
  10. data/CHANGELOG.md +59 -0
  11. data/Gemfile.lock +4 -4
  12. data/lib/workos/api_keys/api_key.rb +3 -0
  13. data/lib/workos/api_keys/api_key_created.rb +5 -5
  14. data/lib/workos/api_keys/api_key_created_data.rb +3 -0
  15. data/lib/workos/api_keys/api_key_revoked.rb +5 -5
  16. data/lib/workos/api_keys/create_organization_api_key.rb +5 -2
  17. data/lib/workos/api_keys/organization_api_key.rb +3 -0
  18. data/lib/workos/api_keys/organization_api_key_with_value.rb +3 -0
  19. data/lib/workos/api_keys.rb +4 -1
  20. data/lib/workos/audit_logs/audit_log_action.rb +2 -7
  21. data/lib/workos/audit_logs/audit_log_export.rb +2 -7
  22. data/lib/workos/audit_logs/audit_log_schema.rb +11 -2
  23. data/lib/workos/audit_logs/{audit_log_schema_json_actor.rb → audit_log_schema_actor_input.rb} +1 -1
  24. data/lib/workos/audit_logs/audit_log_schema_input.rb +25 -0
  25. data/lib/workos/audit_logs/audit_log_schema_target.rb +16 -1
  26. data/lib/workos/{types/radar_type.rb → audit_logs/audit_log_schema_target_input.rb} +1 -3
  27. data/lib/workos/audit_logs.rb +16 -16
  28. data/lib/workos/authorization/permission_created.rb +5 -5
  29. data/lib/workos/authorization/permission_deleted.rb +5 -5
  30. data/lib/workos/authorization/permission_updated.rb +5 -5
  31. data/lib/workos/authorization/role_created.rb +5 -5
  32. data/lib/workos/authorization/role_deleted.rb +5 -5
  33. data/lib/workos/authorization/role_updated.rb +5 -5
  34. data/lib/workos/authorization.rb +28 -12
  35. data/lib/workos/client.rb +6 -6
  36. data/lib/workos/connect/connect_application.rb +12 -0
  37. data/lib/workos/{audit_logs/audit_log_schema_json_target.rb → connect/connect_application_redirect_uri.rb} +7 -7
  38. data/lib/workos/directory_sync/dsync_activated.rb +5 -5
  39. data/lib/workos/directory_sync/dsync_deactivated.rb +5 -5
  40. data/lib/workos/directory_sync/dsync_deleted.rb +5 -5
  41. data/lib/workos/directory_sync/dsync_group_created.rb +5 -5
  42. data/lib/workos/directory_sync/dsync_group_deleted.rb +5 -5
  43. data/lib/workos/directory_sync/dsync_group_updated.rb +5 -5
  44. data/lib/workos/directory_sync/dsync_group_user_added.rb +5 -5
  45. data/lib/workos/directory_sync/dsync_group_user_removed.rb +5 -5
  46. data/lib/workos/directory_sync/dsync_user_created.rb +5 -5
  47. data/lib/workos/directory_sync/dsync_user_deleted.rb +5 -5
  48. data/lib/workos/directory_sync/dsync_user_updated.rb +5 -5
  49. data/lib/workos/feature_flags/flag_created.rb +5 -5
  50. data/lib/workos/feature_flags/flag_deleted.rb +5 -5
  51. data/lib/workos/feature_flags/flag_rule_updated.rb +5 -5
  52. data/lib/workos/feature_flags/flag_rule_updated_context_configured_target_organization.rb +1 -16
  53. data/lib/workos/feature_flags/flag_rule_updated_context_previous_attribute_context_configured_target_organization.rb +1 -1
  54. data/lib/workos/feature_flags/flag_updated.rb +5 -5
  55. data/lib/workos/inflections.rb +4 -1
  56. data/lib/workos/organization_domains/organization_domain_created.rb +5 -5
  57. data/lib/workos/organization_domains/organization_domain_deleted.rb +5 -5
  58. data/lib/workos/organization_domains/organization_domain_updated.rb +5 -5
  59. data/lib/workos/organization_domains/organization_domain_verification_failed.rb +5 -5
  60. data/lib/workos/organization_domains/organization_domain_verified.rb +5 -5
  61. data/lib/workos/organization_membership_service.rb +273 -0
  62. data/lib/workos/organizations/audit_logs_retention.rb +2 -7
  63. data/lib/workos/organizations/organization_created.rb +5 -5
  64. data/lib/workos/organizations/organization_deleted.rb +5 -5
  65. data/lib/workos/organizations/organization_membership_created.rb +5 -5
  66. data/lib/workos/organizations/organization_membership_deleted.rb +5 -5
  67. data/lib/workos/organizations/organization_membership_updated.rb +5 -5
  68. data/lib/workos/organizations/organization_role_created.rb +5 -5
  69. data/lib/workos/organizations/organization_role_deleted.rb +5 -5
  70. data/lib/workos/organizations/organization_role_updated.rb +5 -5
  71. data/lib/workos/organizations/organization_updated.rb +5 -5
  72. data/lib/workos/radar/radar_standalone_assess_request.rb +2 -8
  73. data/lib/workos/radar.rb +6 -12
  74. data/lib/workos/shared/connect_application_m2m.rb +46 -0
  75. data/lib/workos/shared/connect_application_oauth.rb +58 -0
  76. data/lib/workos/shared/connect_application_oauth_redirect_uris.rb +22 -0
  77. data/lib/workos/shared/error_response.rb +18 -0
  78. data/lib/workos/shared/group_created.rb +5 -5
  79. data/lib/workos/shared/group_deleted.rb +5 -5
  80. data/lib/workos/shared/group_member_added.rb +5 -5
  81. data/lib/workos/shared/group_member_removed.rb +5 -5
  82. data/lib/workos/shared/group_updated.rb +5 -5
  83. data/lib/workos/shared/pipe_connected_account.rb +46 -0
  84. data/lib/workos/{audit_logs/audit_log_export_json.rb → shared/pipes_connected_account_connected.rb} +10 -10
  85. data/lib/workos/shared/pipes_connected_account_disconnected.rb +34 -0
  86. data/lib/workos/shared/pipes_connected_account_reauthorization_needed.rb +34 -0
  87. data/lib/workos/shared/waitlist_user_approved.rb +5 -5
  88. data/lib/workos/shared/waitlist_user_created.rb +5 -5
  89. data/lib/workos/shared/waitlist_user_denied.rb +5 -5
  90. data/lib/workos/sso/connection_activated.rb +5 -5
  91. data/lib/workos/sso/connection_deactivated.rb +5 -5
  92. data/lib/workos/sso/connection_deleted.rb +5 -5
  93. data/lib/workos/sso/connection_saml_certificate_renewal_required.rb +5 -5
  94. data/lib/workos/sso/connection_saml_certificate_renewed.rb +5 -5
  95. data/lib/workos/types/create_webhook_endpoint_events.rb +4 -1
  96. data/lib/workos/types/pipe_connected_account_state.rb +13 -0
  97. data/lib/workos/types/{radar_action.rb → radar_list_action.rb} +1 -1
  98. data/lib/workos/types/radar_list_type.rb +18 -0
  99. data/lib/workos/types/radar_standalone_assess_request_action.rb +1 -7
  100. data/lib/workos/types/radar_standalone_response_blocklist_type.rb +1 -10
  101. data/lib/workos/types/radar_standalone_response_control.rb +1 -3
  102. data/lib/workos/types/user_management_authentication_screen_hint.rb +1 -5
  103. data/{rbi/workos/types/request_options.rbi → lib/workos/types/vault_order.rb} +4 -3
  104. data/lib/workos/types/webhook_endpoint_status.rb +1 -5
  105. data/lib/workos/user_management/action_authentication_denied.rb +6 -6
  106. data/lib/workos/user_management/action_user_registration_denied.rb +6 -6
  107. data/lib/workos/user_management/authentication_email_verification_failed.rb +5 -5
  108. data/lib/workos/user_management/authentication_email_verification_succeeded.rb +5 -5
  109. data/lib/workos/user_management/authentication_magic_auth_failed.rb +5 -5
  110. data/lib/workos/user_management/authentication_magic_auth_succeeded.rb +5 -5
  111. data/lib/workos/user_management/authentication_mfa_failed.rb +5 -5
  112. data/lib/workos/user_management/authentication_mfa_succeeded.rb +5 -5
  113. data/lib/workos/user_management/authentication_oauth_failed.rb +5 -5
  114. data/lib/workos/user_management/authentication_oauth_succeeded.rb +5 -5
  115. data/lib/workos/user_management/authentication_passkey_failed.rb +5 -5
  116. data/lib/workos/user_management/authentication_passkey_succeeded.rb +5 -5
  117. data/lib/workos/user_management/authentication_password_failed.rb +5 -5
  118. data/lib/workos/user_management/authentication_password_succeeded.rb +5 -5
  119. data/lib/workos/user_management/authentication_radar_risk_detected.rb +5 -5
  120. data/lib/workos/user_management/authentication_sso_failed.rb +5 -5
  121. data/lib/workos/user_management/authentication_sso_started.rb +5 -5
  122. data/lib/workos/user_management/authentication_sso_succeeded.rb +5 -5
  123. data/lib/workos/user_management/authentication_sso_timed_out.rb +5 -5
  124. data/lib/workos/user_management/create_user_api_key.rb +5 -2
  125. data/lib/workos/user_management/email_verification_created.rb +5 -5
  126. data/lib/workos/user_management/invitation_accepted.rb +5 -5
  127. data/lib/workos/user_management/invitation_created.rb +5 -5
  128. data/lib/workos/user_management/invitation_resent.rb +5 -5
  129. data/lib/workos/user_management/invitation_revoked.rb +5 -5
  130. data/lib/workos/user_management/magic_auth_created.rb +5 -5
  131. data/lib/workos/user_management/password_reset_created.rb +5 -5
  132. data/lib/workos/user_management/password_reset_succeeded.rb +5 -5
  133. data/lib/workos/user_management/session_created.rb +5 -5
  134. data/lib/workos/user_management/session_revoked.rb +5 -5
  135. data/lib/workos/user_management/user_api_key.rb +3 -0
  136. data/lib/workos/user_management/user_api_key_with_value.rb +3 -0
  137. data/lib/workos/user_management/user_created.rb +5 -5
  138. data/lib/workos/user_management/user_deleted.rb +5 -5
  139. data/lib/workos/user_management/user_updated.rb +5 -5
  140. data/lib/workos/user_management.rb +4 -214
  141. data/lib/workos/vault/actor.rb +22 -0
  142. data/lib/workos/vault/create_data_key_request.rb +18 -0
  143. data/lib/workos/vault/create_data_key_response.rb +28 -0
  144. data/lib/workos/vault/create_object_request.rb +25 -0
  145. data/lib/workos/vault/decrypt_request.rb +18 -0
  146. data/lib/workos/vault/decrypt_response.rb +22 -0
  147. data/lib/workos/vault/delete_object_response.rb +22 -0
  148. data/lib/workos/vault/object.rb +28 -0
  149. data/lib/workos/vault/object_metadata.rb +37 -0
  150. data/lib/workos/{audit_logs/audit_log_action_json.rb → vault/object_summary.rb} +4 -10
  151. data/lib/workos/vault/object_version.rb +31 -0
  152. data/lib/workos/vault/object_without_value.rb +25 -0
  153. data/lib/workos/vault/rekey_request.rb +22 -0
  154. data/lib/workos/vault/update_object_request.rb +22 -0
  155. data/lib/workos/vault/vault_byok_key_deleted.rb +5 -5
  156. data/lib/workos/vault/vault_byok_key_verification_completed.rb +5 -5
  157. data/lib/workos/vault/vault_data_created.rb +5 -5
  158. data/lib/workos/vault/vault_data_deleted.rb +5 -5
  159. data/lib/workos/vault/vault_data_read.rb +5 -5
  160. data/lib/workos/vault/vault_data_updated.rb +5 -5
  161. data/lib/workos/vault/vault_dek_decrypted.rb +5 -5
  162. data/lib/workos/vault/vault_dek_read.rb +5 -5
  163. data/lib/workos/vault/vault_kek_created.rb +5 -5
  164. data/lib/workos/vault/vault_metadata_read.rb +5 -5
  165. data/lib/workos/vault/vault_names_listed.rb +5 -5
  166. data/lib/workos/vault/version_list_response.rb +22 -0
  167. data/lib/workos/vault.rb +273 -139
  168. data/lib/workos/version.rb +1 -1
  169. data/lib/workos/webhooks/webhook_endpoint.rb +2 -7
  170. data/lib/workos/webhooks.rb +7 -8
  171. data/lib/workos.rb +1 -0
  172. data/rbi/workos/action_authentication_denied.rbi +10 -10
  173. data/rbi/workos/action_user_registration_denied.rbi +10 -10
  174. data/rbi/workos/actor.rbi +30 -0
  175. data/rbi/workos/api_key.rbi +6 -0
  176. data/rbi/workos/api_key_created.rbi +6 -6
  177. data/rbi/workos/api_key_created_data.rbi +6 -0
  178. data/rbi/workos/api_key_revoked.rbi +6 -6
  179. data/rbi/workos/api_key_revoked_data.rbi +6 -0
  180. data/rbi/workos/api_keys.rbi +2 -1
  181. data/rbi/workos/audit_log_action.rbi +1 -0
  182. data/rbi/workos/audit_log_export.rbi +1 -0
  183. data/rbi/workos/audit_log_schema.rbi +18 -0
  184. data/rbi/workos/{audit_log_schema_json_actor.rbi → audit_log_schema_actor_input.rbi} +1 -1
  185. data/rbi/workos/audit_log_schema_input.rbi +36 -0
  186. data/rbi/workos/{audit_log_schema_json_target.rbi → audit_log_schema_target_input.rbi} +1 -1
  187. data/rbi/workos/audit_logs.rbi +9 -9
  188. data/rbi/workos/audit_logs_retention.rbi +1 -0
  189. data/rbi/workos/authentication_email_verification_failed.rbi +6 -6
  190. data/rbi/workos/authentication_email_verification_succeeded.rbi +6 -6
  191. data/rbi/workos/authentication_magic_auth_failed.rbi +6 -6
  192. data/rbi/workos/authentication_magic_auth_succeeded.rbi +6 -6
  193. data/rbi/workos/authentication_mfa_failed.rbi +6 -6
  194. data/rbi/workos/authentication_mfa_succeeded.rbi +6 -6
  195. data/rbi/workos/authentication_oauth_failed.rbi +6 -6
  196. data/rbi/workos/authentication_oauth_succeeded.rbi +6 -6
  197. data/rbi/workos/authentication_passkey_failed.rbi +6 -6
  198. data/rbi/workos/authentication_passkey_succeeded.rbi +6 -6
  199. data/rbi/workos/authentication_password_failed.rbi +6 -6
  200. data/rbi/workos/authentication_password_succeeded.rbi +6 -6
  201. data/rbi/workos/authentication_radar_risk_detected.rbi +6 -6
  202. data/rbi/workos/authentication_sso_failed.rbi +6 -6
  203. data/rbi/workos/authentication_sso_started.rbi +6 -6
  204. data/rbi/workos/authentication_sso_succeeded.rbi +6 -6
  205. data/rbi/workos/authentication_sso_timed_out.rbi +6 -6
  206. data/rbi/workos/authorization.rbi +9 -5
  207. data/rbi/workos/client.rbi +6 -3
  208. data/rbi/workos/connect_application.rbi +0 -12
  209. data/rbi/workos/{webhook_endpoint_json.rbi → connect_application_m2m.rbi} +23 -11
  210. data/rbi/workos/connect_application_oauth.rbi +102 -0
  211. data/rbi/workos/connect_application_oauth_redirect_uris.rbi +30 -0
  212. data/rbi/workos/connection_activated.rbi +6 -6
  213. data/rbi/workos/connection_deactivated.rbi +6 -6
  214. data/rbi/workos/connection_deleted.rbi +6 -6
  215. data/rbi/workos/connection_saml_certificate_renewal_required.rbi +6 -6
  216. data/rbi/workos/connection_saml_certificate_renewed.rbi +6 -6
  217. data/rbi/workos/{audit_logs_retention_json.rbi → create_data_key_request.rbi} +5 -5
  218. data/rbi/workos/create_data_key_response.rbi +42 -0
  219. data/rbi/workos/create_object_request.rbi +36 -0
  220. data/rbi/workos/create_organization_api_key.rbi +6 -0
  221. data/rbi/workos/create_user_api_key.rbi +6 -0
  222. data/rbi/workos/decrypt_request.rbi +24 -0
  223. data/rbi/workos/decrypt_response.rbi +30 -0
  224. data/rbi/workos/delete_object_response.rbi +30 -0
  225. data/rbi/workos/dsync_activated.rbi +6 -6
  226. data/rbi/workos/dsync_deactivated.rbi +6 -6
  227. data/rbi/workos/dsync_deleted.rbi +6 -6
  228. data/rbi/workos/dsync_group_created.rbi +6 -6
  229. data/rbi/workos/dsync_group_deleted.rbi +6 -6
  230. data/rbi/workos/dsync_group_updated.rbi +6 -6
  231. data/rbi/workos/dsync_group_user_added.rbi +6 -6
  232. data/rbi/workos/dsync_group_user_removed.rbi +6 -6
  233. data/rbi/workos/dsync_user_created.rbi +6 -6
  234. data/rbi/workos/dsync_user_deleted.rbi +6 -6
  235. data/rbi/workos/dsync_user_updated.rbi +6 -6
  236. data/rbi/workos/email_verification_created.rbi +6 -6
  237. data/rbi/workos/error_response.rbi +24 -0
  238. data/rbi/workos/flag_created.rbi +6 -6
  239. data/rbi/workos/flag_deleted.rbi +6 -6
  240. data/rbi/workos/flag_rule_updated.rbi +6 -6
  241. data/rbi/workos/flag_updated.rbi +6 -6
  242. data/rbi/workos/group_created.rbi +6 -6
  243. data/rbi/workos/group_deleted.rbi +6 -6
  244. data/rbi/workos/group_member_added.rbi +6 -6
  245. data/rbi/workos/group_member_removed.rbi +6 -6
  246. data/rbi/workos/group_updated.rbi +6 -6
  247. data/rbi/workos/invitation_accepted.rbi +6 -6
  248. data/rbi/workos/invitation_created.rbi +6 -6
  249. data/rbi/workos/invitation_resent.rbi +6 -6
  250. data/rbi/workos/invitation_revoked.rbi +6 -6
  251. data/rbi/workos/magic_auth_created.rbi +6 -6
  252. data/rbi/workos/object.rbi +42 -0
  253. data/rbi/workos/object_metadata.rbi +60 -0
  254. data/rbi/workos/object_summary.rbi +36 -0
  255. data/rbi/workos/{audit_log_action_json.rbi → object_version.rbi} +17 -17
  256. data/rbi/workos/object_without_value.rbi +36 -0
  257. data/rbi/workos/organization_api_key.rbi +6 -0
  258. data/rbi/workos/organization_api_key_with_value.rbi +6 -0
  259. data/rbi/workos/organization_created.rbi +6 -6
  260. data/rbi/workos/organization_deleted.rbi +6 -6
  261. data/rbi/workos/organization_domain_created.rbi +6 -6
  262. data/rbi/workos/organization_domain_deleted.rbi +6 -6
  263. data/rbi/workos/organization_domain_updated.rbi +6 -6
  264. data/rbi/workos/organization_domain_verification_failed.rbi +6 -6
  265. data/rbi/workos/organization_domain_verified.rbi +6 -6
  266. data/rbi/workos/organization_membership_created.rbi +6 -6
  267. data/rbi/workos/organization_membership_deleted.rbi +6 -6
  268. data/rbi/workos/organization_membership_service.rbi +114 -0
  269. data/rbi/workos/organization_membership_updated.rbi +6 -6
  270. data/rbi/workos/organization_role_created.rbi +6 -6
  271. data/rbi/workos/organization_role_deleted.rbi +6 -6
  272. data/rbi/workos/organization_role_updated.rbi +6 -6
  273. data/rbi/workos/organization_updated.rbi +6 -6
  274. data/rbi/workos/password_reset_created.rbi +6 -6
  275. data/rbi/workos/password_reset_succeeded.rbi +6 -6
  276. data/rbi/workos/permission_created.rbi +6 -6
  277. data/rbi/workos/permission_deleted.rbi +6 -6
  278. data/rbi/workos/permission_updated.rbi +6 -6
  279. data/rbi/workos/pipe_connected_account.rbi +78 -0
  280. data/rbi/workos/{audit_log_export_json.rbi → pipes_connected_account_connected.rbi} +11 -11
  281. data/rbi/workos/pipes_connected_account_disconnected.rbi +54 -0
  282. data/rbi/workos/pipes_connected_account_reauthorization_needed.rbi +54 -0
  283. data/rbi/workos/radar.rbi +1 -3
  284. data/rbi/workos/radar_standalone_assess_request.rbi +0 -12
  285. data/rbi/workos/rekey_request.rbi +30 -0
  286. data/rbi/workos/role_created.rbi +6 -6
  287. data/rbi/workos/role_deleted.rbi +6 -6
  288. data/rbi/workos/role_updated.rbi +6 -6
  289. data/rbi/workos/session_created.rbi +6 -6
  290. data/rbi/workos/session_manager.rbi +1 -1
  291. data/rbi/workos/session_revoked.rbi +6 -6
  292. data/rbi/workos/update_object_request.rbi +30 -0
  293. data/rbi/workos/user_api_key.rbi +6 -0
  294. data/rbi/workos/user_api_key_with_value.rbi +6 -0
  295. data/rbi/workos/user_created.rbi +6 -6
  296. data/rbi/workos/user_deleted.rbi +6 -6
  297. data/rbi/workos/user_management.rbi +2 -90
  298. data/rbi/workos/user_updated.rbi +6 -6
  299. data/rbi/workos/vault.rbi +70 -95
  300. data/rbi/workos/vault_byok_key_deleted.rbi +6 -6
  301. data/rbi/workos/vault_byok_key_verification_completed.rbi +6 -6
  302. data/rbi/workos/vault_data_created.rbi +6 -6
  303. data/rbi/workos/vault_data_deleted.rbi +6 -6
  304. data/rbi/workos/vault_data_read.rbi +6 -6
  305. data/rbi/workos/vault_data_updated.rbi +6 -6
  306. data/rbi/workos/vault_dek_decrypted.rbi +6 -6
  307. data/rbi/workos/vault_dek_read.rbi +6 -6
  308. data/rbi/workos/vault_kek_created.rbi +6 -6
  309. data/rbi/workos/vault_metadata_read.rbi +6 -6
  310. data/rbi/workos/vault_names_listed.rbi +6 -6
  311. data/rbi/workos/waitlist_user_approved.rbi +6 -6
  312. data/rbi/workos/waitlist_user_created.rbi +6 -6
  313. data/rbi/workos/waitlist_user_denied.rbi +6 -6
  314. data/rbi/workos/webhook_endpoint.rbi +1 -0
  315. data/rbi/workos/webhooks.rbi +2 -2
  316. data/renovate.json +1 -1
  317. data/test/workos/test_model_round_trip.rb +577 -212
  318. data/test/workos/test_organization_membership_service.rb +107 -0
  319. data/test/workos/test_user_management.rb +0 -74
  320. data/test/workos/test_vault.rb +91 -87
  321. metadata +65 -41
  322. data/lib/workos/audit_logs/audit_log_schema_json.rb +0 -34
  323. data/lib/workos/organizations/audit_logs_retention_json.rb +0 -18
  324. data/lib/workos/types/audit_log_export_json_state.rb +0 -14
  325. data/lib/workos/types/webhook_endpoint_json_status.rb +0 -9
  326. data/lib/workos/user_management_organization_membership_groups.rb +0 -60
  327. data/lib/workos/webhooks/webhook_endpoint_json.rb +0 -40
  328. data/rbi/workos/actions.rbi +0 -48
  329. data/rbi/workos/audit_log_schema_json.rbi +0 -54
  330. data/rbi/workos/base_client.rbi +0 -132
  331. data/rbi/workos/configuration.rbi +0 -68
  332. data/rbi/workos/encryptors/aes_gcm.rbi +0 -19
  333. data/rbi/workos/errors.rbi +0 -43
  334. data/rbi/workos/hash_provider.rbi +0 -18
  335. data/rbi/workos/passwordless.rbi +0 -47
  336. data/rbi/workos/public_client.rbi +0 -12
  337. data/rbi/workos/session.rbi +0 -43
  338. data/rbi/workos/types/api_response.rbi +0 -29
  339. data/rbi/workos/types/base_model.rbi +0 -22
  340. data/rbi/workos/types/list_struct.rbi +0 -89
  341. data/rbi/workos/user_management_organization_membership_groups.rbi +0 -25
  342. data/rbi/workos/util.rbi +0 -12
  343. data/test/workos/test_user_management_organization_membership_groups.rb +0 -33
  344. /data/lib/workos/{user_management → organization_membership}/create_user_organization_membership.rb +0 -0
  345. /data/lib/workos/{user_management → organization_membership}/organization_membership.rb +0 -0
  346. /data/lib/workos/{user_management → organization_membership}/update_user_organization_membership.rb +0 -0
  347. /data/lib/workos/{user_management → organization_membership}/user_organization_membership.rb +0 -0
@@ -0,0 +1,107 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ require "test_helper"
6
+
7
+ class OrganizationMembershipServiceTest < Minitest::Test
8
+ include FixtureHelper
9
+
10
+ def setup
11
+ @client = WorkOS::Client.new(api_key: "sk_test_123")
12
+ end
13
+
14
+ def test_list_organization_memberships_returns_expected_result
15
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
16
+ .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
17
+ result = @client.organization_membership.list_organization_memberships
18
+ assert_kind_of WorkOS::Types::ListStruct, result
19
+ end
20
+
21
+ def test_create_organization_membership_returns_expected_result
22
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
23
+ .with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slug" => "stub"))
24
+ .to_return(body: "{}", status: 200)
25
+ result = @client.organization_membership.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub"))
26
+ refute_nil result
27
+ end
28
+
29
+ def test_create_organization_membership_with_role_multiple_returns_expected_result
30
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
31
+ .with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slugs" => ["stub"]))
32
+ .to_return(body: "{}", status: 200)
33
+ result = @client.organization_membership.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleMultiple.new(role_slugs: ["stub"]))
34
+ refute_nil result
35
+ end
36
+
37
+ def test_get_organization_membership_returns_expected_result
38
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
39
+ .to_return(body: "{}", status: 200)
40
+ result = @client.organization_membership.get_organization_membership(id: "stub")
41
+ refute_nil result
42
+ end
43
+
44
+ def test_update_organization_membership_returns_expected_result
45
+ stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
46
+ .with(body: hash_including("role_slug" => "stub"))
47
+ .to_return(body: "{}", status: 200)
48
+ result = @client.organization_membership.update_organization_membership(id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub"))
49
+ refute_nil result
50
+ end
51
+
52
+ def test_update_organization_membership_with_role_multiple_returns_expected_result
53
+ stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
54
+ .with(body: hash_including("role_slugs" => ["stub"]))
55
+ .to_return(body: "{}", status: 200)
56
+ result = @client.organization_membership.update_organization_membership(id: "stub", role: WorkOS::OrganizationMembershipService::RoleMultiple.new(role_slugs: ["stub"]))
57
+ refute_nil result
58
+ end
59
+
60
+ def test_delete_organization_membership_returns_expected_result
61
+ stub_request(:delete, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
62
+ .to_return(body: "{}", status: 200)
63
+ result = @client.organization_membership.delete_organization_membership(id: "stub")
64
+ assert_nil result
65
+ end
66
+
67
+ def test_deactivate_organization_membership_returns_expected_result
68
+ stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)})
69
+ .to_return(body: "{}", status: 200)
70
+ result = @client.organization_membership.deactivate_organization_membership(id: "stub")
71
+ refute_nil result
72
+ end
73
+
74
+ def test_reactivate_organization_membership_returns_expected_result
75
+ stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)})
76
+ .to_return(body: "{}", status: 200)
77
+ result = @client.organization_membership.reactivate_organization_membership(id: "stub")
78
+ refute_nil result
79
+ end
80
+
81
+ def test_list_organization_membership_groups_returns_expected_result
82
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/groups(\?|\z)})
83
+ .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
84
+ result = @client.organization_membership.list_organization_membership_groups(om_id: "stub")
85
+ assert_kind_of WorkOS::Types::ListStruct, result
86
+ end
87
+
88
+ # Parameterized authentication error tests (one per endpoint).
89
+ [
90
+ {name: :list_organization_memberships, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}},
91
+ {name: :create_organization_membership, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}, args: {user_id: "stub", organization_id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub")}},
92
+ {name: :get_organization_membership, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
93
+ {name: :update_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub", role: WorkOS::OrganizationMembershipService::RoleSingle.new(role_slug: "stub")}},
94
+ {name: :delete_organization_membership, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
95
+ {name: :deactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)}, args: {id: "stub"}},
96
+ {name: :reactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)}, args: {id: "stub"}},
97
+ {name: :list_organization_membership_groups, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/groups(\?|\z)}, args: {om_id: "stub"}}
98
+ ].each do |spec|
99
+ define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
100
+ stub_request(spec[:verb], spec[:url])
101
+ .to_return(body: '{"message": "Unauthorized"}', status: 401)
102
+ assert_raises(WorkOS::AuthenticationError) do
103
+ @client.organization_membership.send(spec[:name], **(spec[:args] || {}))
104
+ end
105
+ end
106
+ end
107
+ end
@@ -373,73 +373,6 @@ class UserManagementTest < Minitest::Test
373
373
  refute_nil result
374
374
  end
375
375
 
376
- def test_list_organization_memberships_returns_expected_result
377
- stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
378
- .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
379
- result = @client.user_management.list_organization_memberships
380
- assert_kind_of WorkOS::Types::ListStruct, result
381
- end
382
-
383
- def test_create_organization_membership_returns_expected_result
384
- stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
385
- .with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slug" => "stub"))
386
- .to_return(body: "{}", status: 200)
387
- result = @client.user_management.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub"))
388
- refute_nil result
389
- end
390
-
391
- def test_create_organization_membership_with_role_multiple_returns_expected_result
392
- stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)})
393
- .with(body: hash_including("user_id" => "stub", "organization_id" => "stub", "role_slugs" => ["stub"]))
394
- .to_return(body: "{}", status: 200)
395
- result = @client.user_management.create_organization_membership(user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleMultiple.new(role_slugs: ["stub"]))
396
- refute_nil result
397
- end
398
-
399
- def test_get_organization_membership_returns_expected_result
400
- stub_request(:get, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
401
- .to_return(body: "{}", status: 200)
402
- result = @client.user_management.get_organization_membership(id: "stub")
403
- refute_nil result
404
- end
405
-
406
- def test_update_organization_membership_returns_expected_result
407
- stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
408
- .with(body: hash_including("role_slug" => "stub"))
409
- .to_return(body: "{}", status: 200)
410
- result = @client.user_management.update_organization_membership(id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub"))
411
- refute_nil result
412
- end
413
-
414
- def test_update_organization_membership_with_role_multiple_returns_expected_result
415
- stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
416
- .with(body: hash_including("role_slugs" => ["stub"]))
417
- .to_return(body: "{}", status: 200)
418
- result = @client.user_management.update_organization_membership(id: "stub", role: WorkOS::UserManagement::RoleMultiple.new(role_slugs: ["stub"]))
419
- refute_nil result
420
- end
421
-
422
- def test_delete_organization_membership_returns_expected_result
423
- stub_request(:delete, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)})
424
- .to_return(body: "{}", status: 200)
425
- result = @client.user_management.delete_organization_membership(id: "stub")
426
- assert_nil result
427
- end
428
-
429
- def test_deactivate_organization_membership_returns_expected_result
430
- stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)})
431
- .to_return(body: "{}", status: 200)
432
- result = @client.user_management.deactivate_organization_membership(id: "stub")
433
- refute_nil result
434
- end
435
-
436
- def test_reactivate_organization_membership_returns_expected_result
437
- stub_request(:put, %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)})
438
- .to_return(body: "{}", status: 200)
439
- result = @client.user_management.reactivate_organization_membership(id: "stub")
440
- refute_nil result
441
- end
442
-
443
376
  def test_create_redirect_uri_returns_expected_result
444
377
  stub_request(:post, %r{\Ahttps://api\.workos\.com/user_management/redirect_uris(\?|\z)})
445
378
  .to_return(body: "{}", status: 200)
@@ -509,13 +442,6 @@ class UserManagementTest < Minitest::Test
509
442
  {name: :update_jwt_template, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/jwt_template(\?|\z)}, args: {content: "stub"}},
510
443
  {name: :create_magic_auth, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/magic_auth(\?|\z)}, args: {email: "stub"}},
511
444
  {name: :get_magic_auth, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/magic_auth/stub(\?|\z)}, args: {id: "stub"}},
512
- {name: :list_organization_memberships, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}},
513
- {name: :create_organization_membership, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships(\?|\z)}, args: {user_id: "stub", organization_id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub")}},
514
- {name: :get_organization_membership, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
515
- {name: :update_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub", role: WorkOS::UserManagement::RoleSingle.new(role_slug: "stub")}},
516
- {name: :delete_organization_membership, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub(\?|\z)}, args: {id: "stub"}},
517
- {name: :deactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/deactivate(\?|\z)}, args: {id: "stub"}},
518
- {name: :reactivate_organization_membership, verb: :put, url: %r{\Ahttps://api\.workos\.com/user_management/organization_memberships/stub/reactivate(\?|\z)}, args: {id: "stub"}},
519
445
  {name: :create_redirect_uri, verb: :post, url: %r{\Ahttps://api\.workos\.com/user_management/redirect_uris(\?|\z)}, args: {uri: "stub"}},
520
446
  {name: :list_user_authorized_applications, verb: :get, url: %r{\Ahttps://api\.workos\.com/user_management/users/stub/authorized_applications(\?|\z)}, args: {user_id: "stub"}},
521
447
  {name: :delete_user_authorized_application, verb: :delete, url: %r{\Ahttps://api\.workos\.com/user_management/users/stub/authorized_applications/stub(\?|\z)}, args: {application_id: "stub", user_id: "stub"}},
@@ -1,119 +1,118 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # @oagen-ignore-file
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
4
5
  require "test_helper"
5
6
  require "base64"
6
7
 
7
8
  class VaultTest < Minitest::Test
9
+ include FixtureHelper
10
+
8
11
  def setup
9
- @client = WorkOS::Client.new(api_key: "sk_test_vault")
12
+ @client = WorkOS::Client.new(api_key: "sk_test_123")
10
13
  end
11
14
 
12
- def test_vault_accessor_exists
13
- assert_kind_of WorkOS::Vault, @client.vault
15
+ def test_create_data_key_returns_expected_result
16
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/data-key(\?|\z)})
17
+ .to_return(body: "{}", status: 200)
18
+ result = @client.vault.create_data_key(context: {})
19
+ refute_nil result
14
20
  end
15
21
 
16
- def test_create_object_returns_metadata
17
- body = {
18
- "id" => "obj_01", "key_id" => "key_01", "version_id" => "v1",
19
- "context" => {"tenant" => "t1"}, "environment_id" => "env_1",
20
- "updated_at" => "2026-04-15T00:00:00Z",
21
- "updated_by" => {"id" => "u1", "name" => "alice"}
22
- }
23
- stub_request(:post, "https://api.workos.com/vault/v1/kv")
24
- .with(body: hash_including("name" => "secret", "value" => "hello"))
25
- .to_return(status: 200, body: body.to_json)
26
-
27
- meta = @client.vault.create_object(name: "secret", value: "hello", key_context: {"tenant" => "t1"})
28
- assert_equal "obj_01", meta.id
29
- assert_equal "v1", meta.version_id
30
- assert_equal "alice", meta.updated_by.name
22
+ def test_create_decrypt_returns_expected_result
23
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/decrypt(\?|\z)})
24
+ .to_return(body: "{}", status: 200)
25
+ result = @client.vault.create_decrypt(keys: "stub")
26
+ refute_nil result
31
27
  end
32
28
 
33
- def test_read_object_returns_decrypted_value
34
- body = {
35
- "id" => "obj_01", "name" => "secret", "value" => "hello",
36
- "metadata" => {
37
- "id" => "obj_01", "key_id" => "k", "version_id" => "v",
38
- "context" => {}, "environment_id" => "env",
39
- "updated_at" => "x", "updated_by" => {"id" => "u", "name" => "n"}
40
- }
41
- }
42
- stub_request(:get, "https://api.workos.com/vault/v1/kv/obj_01")
43
- .to_return(status: 200, body: body.to_json)
44
-
45
- obj = @client.vault.read_object(object_id: "obj_01")
46
- assert_equal "hello", obj.value
47
- assert_equal "secret", obj.name
29
+ def test_create_rekey_returns_expected_result
30
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/keys/rekey(\?|\z)})
31
+ .to_return(body: "{}", status: 200)
32
+ result = @client.vault.create_rekey(context: {}, encrypted_keys: "stub")
33
+ refute_nil result
48
34
  end
49
35
 
50
- def test_list_objects_returns_digests
51
- body = {"data" => [{"id" => "o1", "name" => "a", "updated_at" => "x"}, {"id" => "o2", "name" => "b", "updated_at" => "y"}]}
52
- stub_request(:get, /vault\/v1\/kv\?/).to_return(status: 200, body: body.to_json)
53
-
54
- digests = @client.vault.list_objects(limit: 10)
55
- assert_equal 2, digests.size
56
- assert_equal "o1", digests.first.id
36
+ def test_list_kv_returns_expected_result
37
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)})
38
+ .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
39
+ result = @client.vault.list_kv
40
+ assert_kind_of WorkOS::Types::ListStruct, result
57
41
  end
58
42
 
59
- def test_list_object_versions
60
- body = {"data" => [{"id" => "v1", "created_at" => "x", "current_version" => true}]}
61
- stub_request(:get, "https://api.workos.com/vault/v1/kv/obj_1/versions").to_return(status: 200, body: body.to_json)
62
-
63
- versions = @client.vault.list_object_versions(object_id: "obj_1")
64
- assert_equal 1, versions.size
65
- assert versions.first.current_version
43
+ def test_create_kv_returns_expected_result
44
+ stub_request(:post, %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)})
45
+ .to_return(body: "{}", status: 200)
46
+ result = @client.vault.create_kv(key_context: {}, name: "stub", value: "stub")
47
+ refute_nil result
66
48
  end
67
49
 
68
- def test_get_object_metadata
69
- body = {"id" => "obj_1", "name" => "n", "metadata" => {
70
- "id" => "obj_1", "key_id" => "k", "version_id" => "v",
71
- "context" => {}, "environment_id" => "env",
72
- "updated_at" => "x", "updated_by" => {"id" => "u", "name" => "n"}
73
- }}
74
- stub_request(:get, "https://api.workos.com/vault/v1/kv/obj_1/metadata").to_return(status: 200, body: body.to_json)
75
-
76
- obj = @client.vault.get_object_metadata(object_id: "obj_1")
77
- assert_nil obj.value
78
- assert_equal "obj_1", obj.metadata.id
50
+ def test_get_name_returns_expected_result
51
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/name/stub(\?|\z)})
52
+ .to_return(body: "{}", status: 200)
53
+ result = @client.vault.get_name(name: "stub")
54
+ refute_nil result
79
55
  end
80
56
 
81
- def test_delete_object_returns_nil
82
- stub_request(:delete, "https://api.workos.com/vault/v1/kv/obj_1").to_return(status: 200, body: "")
83
- assert_nil @client.vault.delete_object(object_id: "obj_1")
57
+ def test_get_kv_returns_expected_result
58
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
59
+ .to_return(body: "{}", status: 200)
60
+ result = @client.vault.get_kv(id: "stub")
61
+ refute_nil result
84
62
  end
85
63
 
86
- def test_update_object_with_version_check
87
- body = {"id" => "obj_1", "name" => "n", "value" => "newval", "metadata" => nil}
88
- stub_request(:put, "https://api.workos.com/vault/v1/kv/obj_1")
89
- .with(body: hash_including("value" => "newval", "version_check" => "v1"))
90
- .to_return(status: 200, body: body.to_json)
91
-
92
- obj = @client.vault.update_object(object_id: "obj_1", value: "newval", version_check: "v1")
93
- assert_equal "newval", obj.value
64
+ def test_update_kv_returns_expected_result
65
+ stub_request(:put, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
66
+ .to_return(body: "{}", status: 200)
67
+ result = @client.vault.update_kv(id: "stub", value: "stub")
68
+ refute_nil result
94
69
  end
95
70
 
96
- def test_create_data_key
97
- body = {"context" => {"t" => "1"}, "id" => "dek_1", "data_key" => Base64.strict_encode64("k" * 32), "encrypted_keys" => Base64.strict_encode64("blob")}
98
- stub_request(:post, "https://api.workos.com/vault/v1/keys/data-key")
99
- .with(body: hash_including("context" => {"t" => "1"}))
100
- .to_return(status: 200, body: body.to_json)
71
+ def test_delete_kv_returns_expected_result
72
+ stub_request(:delete, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)})
73
+ .to_return(body: "{}", status: 200)
74
+ result = @client.vault.delete_kv(id: "stub")
75
+ refute_nil result
76
+ end
101
77
 
102
- pair = @client.vault.create_data_key(key_context: {"t" => "1"})
103
- assert_equal "dek_1", pair.data_key.id
104
- assert_equal "blob", Base64.decode64(pair.encrypted_keys)
78
+ def test_list_kv_metadata_returns_expected_result
79
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/metadata(\?|\z)})
80
+ .to_return(body: "{}", status: 200)
81
+ result = @client.vault.list_kv_metadata(id: "stub")
82
+ refute_nil result
105
83
  end
106
84
 
107
- def test_decrypt_data_key
108
- body = {"id" => "dek_1", "data_key" => Base64.strict_encode64("k" * 32)}
109
- stub_request(:post, "https://api.workos.com/vault/v1/keys/decrypt")
110
- .with(body: hash_including("keys" => "abc"))
111
- .to_return(status: 200, body: body.to_json)
85
+ def test_list_kv_versions_returns_expected_result
86
+ stub_request(:get, %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/versions(\?|\z)})
87
+ .to_return(body: '{"data": [], "list_metadata": {}}', status: 200)
88
+ result = @client.vault.list_kv_versions(id: "stub")
89
+ assert_kind_of WorkOS::Types::ListStruct, result
90
+ end
112
91
 
113
- dk = @client.vault.decrypt_data_key(keys: "abc")
114
- assert_equal "dek_1", dk.id
92
+ # Parameterized authentication error tests (one per endpoint).
93
+ [
94
+ {name: :create_data_key, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/data-key(\?|\z)}, args: {context: {}}},
95
+ {name: :create_decrypt, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/decrypt(\?|\z)}, args: {keys: "stub"}},
96
+ {name: :create_rekey, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/keys/rekey(\?|\z)}, args: {context: {}, encrypted_keys: "stub"}},
97
+ {name: :list_kv, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)}},
98
+ {name: :create_kv, verb: :post, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv(\?|\z)}, args: {key_context: {}, name: "stub", value: "stub"}},
99
+ {name: :get_name, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/name/stub(\?|\z)}, args: {name: "stub"}},
100
+ {name: :get_kv, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub"}},
101
+ {name: :update_kv, verb: :put, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub", value: "stub"}},
102
+ {name: :delete_kv, verb: :delete, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub(\?|\z)}, args: {id: "stub"}},
103
+ {name: :list_kv_metadata, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/metadata(\?|\z)}, args: {id: "stub"}},
104
+ {name: :list_kv_versions, verb: :get, url: %r{\Ahttps://api\.workos\.com/vault/v1/kv/stub/versions(\?|\z)}, args: {id: "stub"}}
105
+ ].each do |spec|
106
+ define_method("test_#{spec[:name]}_raises_authentication_error_on_401") do
107
+ stub_request(spec[:verb], spec[:url])
108
+ .to_return(body: '{"message": "Unauthorized"}', status: 401)
109
+ assert_raises(WorkOS::AuthenticationError) do
110
+ @client.vault.send(spec[:name], **(spec[:args] || {}))
111
+ end
112
+ end
115
113
  end
116
114
 
115
+ # @oagen-ignore-start — client-side AES-GCM encrypt/decrypt tests (hand-maintained)
117
116
  def test_local_encrypt_then_decrypt_roundtrip
118
117
  plaintext_key = "k" * 32
119
118
  create_resp = {"context" => {"t" => "1"}, "id" => "dek_1",
@@ -125,7 +124,7 @@ class VaultTest < Minitest::Test
125
124
  stub_request(:post, "https://api.workos.com/vault/v1/keys/decrypt").to_return(status: 200, body: decrypt_resp.to_json)
126
125
 
127
126
  payload = "the quick brown fox"
128
- encrypted = @client.vault.encrypt(data: payload, key_context: {"t" => "1"})
127
+ encrypted = @client.vault.encrypt(data: payload, context: {"t" => "1"})
129
128
  refute_equal payload, encrypted
130
129
 
131
130
  plaintext = @client.vault.decrypt(encrypted_data: encrypted)
@@ -140,7 +139,7 @@ class VaultTest < Minitest::Test
140
139
  stub_request(:post, "https://api.workos.com/vault/v1/keys/data-key").to_return(status: 200, body: create_resp.to_json)
141
140
  stub_request(:post, "https://api.workos.com/vault/v1/keys/decrypt").to_return(status: 200, body: decrypt_resp.to_json)
142
141
 
143
- encrypted = @client.vault.encrypt(data: "secret", key_context: {}, associated_data: "tenant=42")
142
+ encrypted = @client.vault.encrypt(data: "secret", context: {}, associated_data: "tenant=42")
144
143
  plaintext = @client.vault.decrypt(encrypted_data: encrypted, associated_data: "tenant=42")
145
144
  assert_equal "secret", plaintext
146
145
 
@@ -148,4 +147,9 @@ class VaultTest < Minitest::Test
148
147
  @client.vault.decrypt(encrypted_data: encrypted, associated_data: "wrong")
149
148
  end
150
149
  end
150
+ # @oagen-ignore-end
151
+
152
+ # @oagen-ignore-start — client-side encrypt/decrypt test requires
153
+ require "base64"
154
+ # @oagen-ignore-end
151
155
  end