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
data/lib/workos/vault.rb CHANGED
@@ -1,176 +1,309 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # @oagen-ignore-file
4
- # Hand-maintained Vault service: 8 KV endpoints + 2 key endpoints + client-side
5
- # AES-GCM encrypt/decrypt (H18). The Vault HTTP API is not in the OpenAPI spec
6
- # and the AES-GCM helpers are inherently client-side, so this stays
7
- # hand-maintained regardless of spec coverage.
8
- require "base64"
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
9
5
  require "json"
6
+ require "base64"
10
7
  require "openssl"
11
8
  require "securerandom"
12
9
 
13
10
  module WorkOS
14
- # WorkOS Vault: KV secret storage, server-managed key wrapping, and
15
- # client-side AES-GCM encrypt/decrypt.
16
- #
17
- # @example Store and retrieve a secret
18
- # client.vault.create_object(name: "api-key", value: "sk_...", key_context: { "tenant" => "t1" })
19
- # obj = client.vault.read_object_by_name(name: "api-key")
20
- # obj.value # => "sk_..."
21
- #
22
- # @example Client-side encrypt/decrypt
23
- # encrypted = client.vault.encrypt(data: "plaintext", key_context: { "tenant" => "t1" })
24
- # client.vault.decrypt(encrypted_data: encrypted)
25
11
  class Vault
26
- DEFAULT_RESPONSE_LIMIT = 10
27
-
28
- DataKey = Data.define(:id, :key) do
29
- def self.from_response(hash)
30
- new(id: hash["id"], key: hash["data_key"])
31
- end
32
- end
33
-
34
- DataKeyPair = Data.define(:context, :data_key, :encrypted_keys) do
35
- def self.from_response(hash)
36
- new(
37
- context: hash["context"],
38
- data_key: DataKey.new(id: hash["id"], key: hash["data_key"]),
39
- encrypted_keys: hash["encrypted_keys"]
40
- )
41
- end
42
- end
43
-
44
- ObjectUpdateBy = Data.define(:id, :name) do
45
- def self.from_hash(hash)
46
- return nil if hash.nil?
47
- new(id: hash["id"], name: hash["name"])
48
- end
49
- end
50
-
51
- ObjectMetadata = Data.define(:context, :environment_id, :id, :key_id, :updated_at, :updated_by, :version_id) do
52
- def self.from_hash(hash)
53
- new(
54
- context: hash["context"],
55
- environment_id: hash["environment_id"],
56
- id: hash["id"],
57
- key_id: hash["key_id"],
58
- updated_at: hash["updated_at"],
59
- updated_by: ObjectUpdateBy.from_hash(hash["updated_by"]),
60
- version_id: hash["version_id"]
61
- )
62
- end
63
- end
64
-
65
- VaultObject = Data.define(:id, :name, :value, :metadata) do
66
- def self.from_hash(hash)
67
- new(
68
- id: hash["id"],
69
- name: hash["name"],
70
- value: hash["value"],
71
- metadata: hash["metadata"] ? ObjectMetadata.from_hash(hash["metadata"]) : nil
72
- )
73
- end
74
- end
75
-
76
- ObjectDigest = Data.define(:id, :name, :updated_at) do
77
- def self.from_hash(hash)
78
- new(id: hash["id"], name: hash["name"], updated_at: hash["updated_at"])
79
- end
80
- end
81
-
82
- ObjectVersion = Data.define(:id, :created_at, :current_version) do
83
- def self.from_hash(hash)
84
- new(id: hash["id"], created_at: hash["created_at"], current_version: hash["current_version"])
85
- end
86
- end
87
-
88
12
  def initialize(client)
89
13
  @client = client
90
14
  end
91
15
 
92
- # -- KV operations --------------------------------------------------------
93
-
94
- # Get a Vault object with the value decrypted.
95
- def read_object(object_id:, request_options: {})
96
- response = @client.request(method: :get, path: "/vault/v1/kv/#{WorkOS::Util.encode_path(object_id)}", auth: true, request_options: request_options)
97
- VaultObject.from_hash(JSON.parse(response.body))
16
+ # Create a data key
17
+ # @param context [Hash{String => String}] Map of values used to determine the encryption key.
18
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
19
+ # @return [WorkOS::CreateDataKeyResponse]
20
+ def create_data_key(
21
+ context:,
22
+ request_options: {}
23
+ )
24
+ body = {
25
+ "context" => context
26
+ }
27
+ response = @client.request(
28
+ method: :post,
29
+ path: "/vault/v1/keys/data-key",
30
+ auth: true,
31
+ body: body,
32
+ request_options: request_options
33
+ )
34
+ result = WorkOS::CreateDataKeyResponse.new(response.body)
35
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
36
+ result
98
37
  end
99
38
 
100
- # Get a Vault object by name with the value decrypted.
101
- def read_object_by_name(name:, request_options: {})
102
- response = @client.request(method: :get, path: "/vault/v1/kv/name/#{WorkOS::Util.encode_path(name)}", auth: true, request_options: request_options)
103
- VaultObject.from_hash(JSON.parse(response.body))
39
+ # Decrypt a data key
40
+ # @param keys [String] Base64-encoded encrypted data key to decrypt.
41
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
42
+ # @return [WorkOS::DecryptResponse]
43
+ def create_decrypt(
44
+ keys:,
45
+ request_options: {}
46
+ )
47
+ body = {
48
+ "keys" => keys
49
+ }
50
+ response = @client.request(
51
+ method: :post,
52
+ path: "/vault/v1/keys/decrypt",
53
+ auth: true,
54
+ body: body,
55
+ request_options: request_options
56
+ )
57
+ result = WorkOS::DecryptResponse.new(response.body)
58
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
59
+ result
104
60
  end
105
61
 
106
- # Get a Vault object's metadata without decrypting the value.
107
- def get_object_metadata(object_id:, request_options: {})
108
- response = @client.request(method: :get, path: "/vault/v1/kv/#{WorkOS::Util.encode_path(object_id)}/metadata", auth: true, request_options: request_options)
109
- VaultObject.from_hash(JSON.parse(response.body))
62
+ # Re-encrypt a data key
63
+ # @param context [Hash{String => String}] Map of values used to determine the new encryption key.
64
+ # @param encrypted_keys [String] Base64-encoded encrypted data key blob to re-encrypt.
65
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
66
+ # @return [WorkOS::CreateDataKeyResponse]
67
+ def create_rekey(
68
+ context:,
69
+ encrypted_keys:,
70
+ request_options: {}
71
+ )
72
+ body = {
73
+ "context" => context,
74
+ "encrypted_keys" => encrypted_keys
75
+ }
76
+ response = @client.request(
77
+ method: :post,
78
+ path: "/vault/v1/keys/rekey",
79
+ auth: true,
80
+ body: body,
81
+ request_options: request_options
82
+ )
83
+ result = WorkOS::CreateDataKeyResponse.new(response.body)
84
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
85
+ result
110
86
  end
111
87
 
112
- # List encrypted Vault objects.
113
- # @return [Array<ObjectDigest>]
114
- def list_objects(limit: DEFAULT_RESPONSE_LIMIT, before: nil, after: nil, request_options: {})
115
- params = {"limit" => limit, "before" => before, "after" => after}.compact
116
- response = @client.request(method: :get, path: "/vault/v1/kv", auth: true, params: params, request_options: request_options)
117
- parsed = JSON.parse(response.body)
118
- (parsed["data"] || []).map { |item| ObjectDigest.from_hash(item) }
88
+ # List objects
89
+ # @param limit [Integer, nil] Upper limit on the number of objects to return.
90
+ # @param before [String, nil] Cursor for the previous page of results.
91
+ # @param after [String, nil] Cursor for the next page of results.
92
+ # @param order [WorkOS::Types::VaultOrder, nil] Sort direction for results.
93
+ # @param search [String, nil] Filter results by name or structured search JSON.
94
+ # @param updated_after [String, nil] ISO 8601 timestamp to filter by last modified time.
95
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
96
+ # @return [WorkOS::Types::ListStruct<WorkOS::ObjectSummary>]
97
+ def list_kv(
98
+ limit: 10,
99
+ before: nil,
100
+ after: nil,
101
+ order: nil,
102
+ search: nil,
103
+ updated_after: nil,
104
+ request_options: {}
105
+ )
106
+ params = {
107
+ "limit" => limit,
108
+ "before" => before,
109
+ "after" => after,
110
+ "order" => order,
111
+ "search" => search,
112
+ "updatedAfter" => updated_after
113
+ }.compact
114
+ response = @client.request(
115
+ method: :get,
116
+ path: "/vault/v1/kv",
117
+ auth: true,
118
+ params: params,
119
+ request_options: request_options
120
+ )
121
+ fetch_next = ->(cursor) {
122
+ list_kv(
123
+ limit: limit,
124
+ before: before,
125
+ after: cursor,
126
+ order: order,
127
+ search: search,
128
+ updated_after: updated_after,
129
+ request_options: request_options
130
+ )
131
+ }
132
+ WorkOS::Types::ListStruct.from_response(
133
+ response,
134
+ model: WorkOS::ObjectSummary,
135
+ filters: {limit: limit, before: before, order: order, search: search, updated_after: updated_after},
136
+ fetch_next: fetch_next
137
+ )
119
138
  end
120
139
 
121
- # List versions for a specific Vault object.
122
- # @return [Array<ObjectVersion>]
123
- def list_object_versions(object_id:, request_options: {})
124
- response = @client.request(method: :get, path: "/vault/v1/kv/#{WorkOS::Util.encode_path(object_id)}/versions", auth: true, request_options: request_options)
125
- parsed = JSON.parse(response.body)
126
- (parsed["data"] || []).map { |item| ObjectVersion.from_hash(item) }
140
+ # Create an object
141
+ # @param key_context [Hash{String => String}] Map of values used to determine the encryption key.
142
+ # @param name [String] Unique name for the object.
143
+ # @param value [String] Plaintext data to encrypt and store.
144
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
145
+ # @return [WorkOS::ObjectMetadata]
146
+ def create_kv(
147
+ key_context:,
148
+ name:,
149
+ value:,
150
+ request_options: {}
151
+ )
152
+ body = {
153
+ "key_context" => key_context,
154
+ "name" => name,
155
+ "value" => value
156
+ }
157
+ response = @client.request(
158
+ method: :post,
159
+ path: "/vault/v1/kv",
160
+ auth: true,
161
+ body: body,
162
+ request_options: request_options
163
+ )
164
+ result = WorkOS::ObjectMetadata.new(response.body)
165
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
166
+ result
127
167
  end
128
168
 
129
- # Create a new Vault encrypted object.
130
- def create_object(name:, value:, key_context:, request_options: {})
131
- body = {"name" => name, "value" => value, "key_context" => key_context}
132
- response = @client.request(method: :post, path: "/vault/v1/kv", auth: true, body: body, request_options: request_options)
133
- ObjectMetadata.from_hash(JSON.parse(response.body))
169
+ # Read an object by name
170
+ # @param name [String] Unique name of the object.
171
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
172
+ # @return [WorkOS::ObjectModel]
173
+ def get_name(
174
+ name:,
175
+ request_options: {}
176
+ )
177
+ response = @client.request(
178
+ method: :get,
179
+ path: "/vault/v1/kv/name/#{WorkOS::Util.encode_path(name)}",
180
+ auth: true,
181
+ request_options: request_options
182
+ )
183
+ result = WorkOS::ObjectModel.new(response.body)
184
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
185
+ result
134
186
  end
135
187
 
136
- # Update an existing Vault object.
137
- def update_object(object_id:, value:, version_check: nil, request_options: {})
138
- body = {"value" => value, "version_check" => version_check}.compact
139
- response = @client.request(method: :put, path: "/vault/v1/kv/#{WorkOS::Util.encode_path(object_id)}", auth: true, body: body, request_options: request_options)
140
- VaultObject.from_hash(JSON.parse(response.body))
188
+ # Read an object by ID
189
+ # @param id [String] Unique identifier of the object.
190
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
191
+ # @return [WorkOS::ObjectModel]
192
+ def get_kv(
193
+ id:,
194
+ request_options: {}
195
+ )
196
+ response = @client.request(
197
+ method: :get,
198
+ path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
199
+ auth: true,
200
+ request_options: request_options
201
+ )
202
+ result = WorkOS::ObjectModel.new(response.body)
203
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
204
+ result
141
205
  end
142
206
 
143
- # Permanently delete a Vault encrypted object.
144
- def delete_object(object_id:, request_options: {})
145
- @client.request(method: :delete, path: "/vault/v1/kv/#{WorkOS::Util.encode_path(object_id)}", auth: true, request_options: request_options)
146
- nil
207
+ # Update an object
208
+ # @param id [String] Unique identifier of the object.
209
+ # @param value [String] New plaintext value.
210
+ # @param version_check [String, nil] ID of the expected current version for optimistic locking.
211
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
212
+ # @return [WorkOS::ObjectWithoutValue]
213
+ def update_kv(
214
+ id:,
215
+ value:,
216
+ version_check: nil,
217
+ request_options: {}
218
+ )
219
+ body = {
220
+ "value" => value,
221
+ "version_check" => version_check
222
+ }.compact
223
+ response = @client.request(
224
+ method: :put,
225
+ path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
226
+ auth: true,
227
+ body: body,
228
+ request_options: request_options
229
+ )
230
+ result = WorkOS::ObjectWithoutValue.new(response.body)
231
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
232
+ result
147
233
  end
148
234
 
149
- # -- Key operations -------------------------------------------------------
235
+ # Delete an object
236
+ # @param id [String] Unique identifier of the object.
237
+ # @param version_check [String, nil] Expected current version for optimistic locking.
238
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
239
+ # @return [WorkOS::DeleteObjectResponse]
240
+ def delete_kv(
241
+ id:,
242
+ version_check: nil,
243
+ request_options: {}
244
+ )
245
+ params = {
246
+ "version_check" => version_check
247
+ }.compact
248
+ response = @client.request(
249
+ method: :delete,
250
+ path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}",
251
+ auth: true,
252
+ params: params,
253
+ request_options: request_options
254
+ )
255
+ result = WorkOS::DeleteObjectResponse.new(response.body)
256
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
257
+ result
258
+ end
150
259
 
151
- # Generate a data key for local encryption.
152
- # @return [DataKeyPair]
153
- def create_data_key(key_context:, request_options: {})
154
- body = {"context" => key_context}
155
- response = @client.request(method: :post, path: "/vault/v1/keys/data-key", auth: true, body: body, request_options: request_options)
156
- DataKeyPair.from_response(JSON.parse(response.body))
260
+ # Describe an object
261
+ # @param id [String] Unique identifier of the object.
262
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
263
+ # @return [WorkOS::ObjectWithoutValue]
264
+ def list_kv_metadata(
265
+ id:,
266
+ request_options: {}
267
+ )
268
+ response = @client.request(
269
+ method: :get,
270
+ path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}/metadata",
271
+ auth: true,
272
+ request_options: request_options
273
+ )
274
+ result = WorkOS::ObjectWithoutValue.new(response.body)
275
+ result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
276
+ result
157
277
  end
158
278
 
159
- # Decrypt encrypted data keys previously generated by create_data_key.
160
- # @return [DataKey]
161
- def decrypt_data_key(keys:, request_options: {})
162
- body = {"keys" => keys}
163
- response = @client.request(method: :post, path: "/vault/v1/keys/decrypt", auth: true, body: body, request_options: request_options)
164
- DataKey.from_response(JSON.parse(response.body))
279
+ # List object versions
280
+ # @param id [String] Unique identifier of the object.
281
+ # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
282
+ # @return [WorkOS::Types::ListStruct<WorkOS::ObjectVersion>]
283
+ def list_kv_versions(
284
+ id:,
285
+ request_options: {}
286
+ )
287
+ response = @client.request(
288
+ method: :get,
289
+ path: "/vault/v1/kv/#{WorkOS::Util.encode_path(id)}/versions",
290
+ auth: true,
291
+ request_options: request_options
292
+ )
293
+ WorkOS::Types::ListStruct.from_response(
294
+ response,
295
+ model: WorkOS::ObjectVersion,
296
+ filters: {id: id}
297
+ )
165
298
  end
166
299
 
167
- # -- Client-side AES-GCM encrypt/decrypt (H18) ---------------------------
300
+ # @oagen-ignore-start — client-side AES-GCM encrypt/decrypt (H18, hand-maintained)
168
301
 
169
302
  # Encrypt data locally using AES-GCM with a data key derived from the context.
170
303
  # Returns base64(IV || TAG || LEB128(len(keyBlob)) || keyBlob || ciphertext).
171
- def encrypt(data:, key_context:, associated_data: nil)
172
- pair = create_data_key(key_context: key_context)
173
- key = Base64.decode64(pair.data_key.key)
304
+ def encrypt(data:, context:, associated_data: nil)
305
+ pair = create_data_key(context: context)
306
+ key = Base64.decode64(pair.data_key)
174
307
  key_blob = Base64.decode64(pair.encrypted_keys)
175
308
  prefix = encode_u32_leb128(key_blob.bytesize)
176
309
  iv, ciphertext, tag = aes_gcm_encrypt(data.b, key, associated_data&.b)
@@ -186,8 +319,8 @@ module WorkOS
186
319
  keys_index = 28 + leb_len
187
320
  key_blob = payload.byteslice(keys_index, key_len)
188
321
  ciphertext = payload.byteslice(keys_index + key_len, payload.bytesize - (keys_index + key_len))
189
- data_key = decrypt_data_key(keys: Base64.strict_encode64(key_blob))
190
- key = Base64.decode64(data_key.key)
322
+ dk = create_decrypt(keys: Base64.strict_encode64(key_blob))
323
+ key = Base64.decode64(dk.data_key)
191
324
  aes_gcm_decrypt(ciphertext, key, iv, tag, associated_data&.b)
192
325
  end
193
326
 
@@ -237,5 +370,6 @@ module WorkOS
237
370
  end
238
371
  raise ArgumentError, "LEB128 not terminated"
239
372
  end
373
+ # @oagen-ignore-end
240
374
  end
241
375
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # @oagen-ignore-file
4
4
  module WorkOS
5
- VERSION = "8.0.1"
5
+ VERSION = "9.0.0"
6
6
  end
@@ -2,12 +2,8 @@
2
2
 
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
- require "json"
6
-
7
5
  module WorkOS
8
- class WebhookEndpoint
9
- include HashProvider
10
-
6
+ class WebhookEndpoint < WorkOS::Types::BaseModel
11
7
  HASH_ATTRS = {
12
8
  object: :object,
13
9
  id: :id,
@@ -30,8 +26,7 @@ module WorkOS
30
26
  :updated_at
31
27
 
32
28
  def initialize(json)
33
- hash = json.is_a?(Hash) ? json : JSON.parse(json, symbolize_names: true)
34
- hash = hash.transform_keys(&:to_sym) if hash.keys.first.is_a?(String)
29
+ hash = self.class.normalize(json)
35
30
  @object = hash[:object]
36
31
  @id = hash[:id]
37
32
  @endpoint_url = hash[:endpoint_url]
@@ -3,6 +3,7 @@
3
3
  # This file is auto-generated by oagen. Do not edit.
4
4
 
5
5
  require "json"
6
+ require "openssl"
6
7
 
7
8
  module WorkOS
8
9
  class Webhooks
@@ -16,7 +17,7 @@ module WorkOS
16
17
  # @param limit [Integer, nil] Upper limit on the number of objects to return, between `1` and `100`.
17
18
  # @param order [WorkOS::Types::PaginationOrder, nil] Order the results by the creation time. Supported values are `"asc"` (ascending), `"desc"` (descending), and `"normal"` (descending with reversed cursor semantics where `before` fetches older records and `after` fetches newer records). Defaults to descending.
18
19
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
19
- # @return [WorkOS::Types::ListStruct<WorkOS::WebhookEndpointJson>]
20
+ # @return [WorkOS::Types::ListStruct<WorkOS::WebhookEndpoint>]
20
21
  def list_webhook_endpoints(
21
22
  before: nil,
22
23
  after: nil,
@@ -48,7 +49,7 @@ module WorkOS
48
49
  }
49
50
  WorkOS::Types::ListStruct.from_response(
50
51
  response,
51
- model: WorkOS::WebhookEndpointJson,
52
+ model: WorkOS::WebhookEndpoint,
52
53
  filters: {before: before, limit: limit, order: order},
53
54
  fetch_next: fetch_next
54
55
  )
@@ -58,7 +59,7 @@ module WorkOS
58
59
  # @param endpoint_url [String] The HTTPS URL where webhooks will be sent.
59
60
  # @param events [Array<WorkOS::Types::CreateWebhookEndpointEvents>] The events that the Webhook Endpoint is subscribed to.
60
61
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
61
- # @return [WorkOS::WebhookEndpointJson]
62
+ # @return [WorkOS::WebhookEndpoint]
62
63
  def create_webhook_endpoint(
63
64
  endpoint_url:,
64
65
  events:,
@@ -75,7 +76,7 @@ module WorkOS
75
76
  body: body,
76
77
  request_options: request_options
77
78
  )
78
- result = WorkOS::WebhookEndpointJson.new(response.body)
79
+ result = WorkOS::WebhookEndpoint.new(response.body)
79
80
  result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
80
81
  result
81
82
  end
@@ -86,7 +87,7 @@ module WorkOS
86
87
  # @param status [WorkOS::Types::UpdateWebhookEndpointStatus, nil] Whether the Webhook Endpoint is enabled or disabled.
87
88
  # @param events [Array<WorkOS::Types::UpdateWebhookEndpointEvents>, nil] The events that the Webhook Endpoint is subscribed to.
88
89
  # @param request_options [Hash] (see WorkOS::Types::RequestOptions)
89
- # @return [WorkOS::WebhookEndpointJson]
90
+ # @return [WorkOS::WebhookEndpoint]
90
91
  def update_webhook_endpoint(
91
92
  id:,
92
93
  endpoint_url: nil,
@@ -106,7 +107,7 @@ module WorkOS
106
107
  body: body,
107
108
  request_options: request_options
108
109
  )
109
- result = WorkOS::WebhookEndpointJson.new(response.body)
110
+ result = WorkOS::WebhookEndpoint.new(response.body)
110
111
  result.last_response = WorkOS::Types::ApiResponse.new(http_status: response.code.to_i, http_headers: response.each_header.to_h, request_id: response["x-request-id"])
111
112
  result
112
113
  end
@@ -129,8 +130,6 @@ module WorkOS
129
130
  end
130
131
 
131
132
  # @oagen-ignore-start — non-spec helpers (hand-maintained)
132
- require "openssl"
133
-
134
133
  DEFAULT_TOLERANCE_SECONDS = 180
135
134
 
136
135
  # Verify a webhook signature and return a typed event struct.
data/lib/workos.rb CHANGED
@@ -21,6 +21,7 @@ loader.collapse("#{__dir__}/workos/feature_flags")
21
21
  loader.collapse("#{__dir__}/workos/groups")
22
22
  loader.collapse("#{__dir__}/workos/multi_factor_auth")
23
23
  loader.collapse("#{__dir__}/workos/organization_domains")
24
+ loader.collapse("#{__dir__}/workos/organization_membership")
24
25
  loader.collapse("#{__dir__}/workos/organizations")
25
26
  loader.collapse("#{__dir__}/workos/pipes")
26
27
  loader.collapse("#{__dir__}/workos/radar")
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -27,23 +33,17 @@ module WorkOS
27
33
  sig { params(value: WorkOS::ActionAuthenticationDeniedData).returns(WorkOS::ActionAuthenticationDeniedData) }
28
34
  def data=(value); end
29
35
 
30
- sig { returns(T.nilable(WorkOS::EventContext)) }
31
- def context; end
32
-
33
- sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
34
- def context=(value); end
35
-
36
36
  sig { returns(String) }
37
37
  def created_at; end
38
38
 
39
39
  sig { params(value: String).returns(String) }
40
40
  def created_at=(value); end
41
41
 
42
- sig { returns(String) }
43
- def object; end
42
+ sig { returns(T.nilable(WorkOS::EventContext)) }
43
+ def context; end
44
44
 
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
45
+ sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
46
+ def context=(value); end
47
47
 
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end
@@ -9,6 +9,12 @@ module WorkOS
9
9
  sig { params(json: T.any(String, T::Hash[Symbol, T.untyped])).void }
10
10
  def initialize(json); end
11
11
 
12
+ sig { returns(String) }
13
+ def object; end
14
+
15
+ sig { params(value: String).returns(String) }
16
+ def object=(value); end
17
+
12
18
  sig { returns(String) }
13
19
  def id; end
14
20
 
@@ -27,23 +33,17 @@ module WorkOS
27
33
  sig { params(value: WorkOS::ActionUserRegistrationDeniedData).returns(WorkOS::ActionUserRegistrationDeniedData) }
28
34
  def data=(value); end
29
35
 
30
- sig { returns(T.nilable(WorkOS::EventContext)) }
31
- def context; end
32
-
33
- sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
34
- def context=(value); end
35
-
36
36
  sig { returns(String) }
37
37
  def created_at; end
38
38
 
39
39
  sig { params(value: String).returns(String) }
40
40
  def created_at=(value); end
41
41
 
42
- sig { returns(String) }
43
- def object; end
42
+ sig { returns(T.nilable(WorkOS::EventContext)) }
43
+ def context; end
44
44
 
45
- sig { params(value: String).returns(String) }
46
- def object=(value); end
45
+ sig { params(value: T.nilable(WorkOS::EventContext)).returns(T.nilable(WorkOS::EventContext)) }
46
+ def context=(value); end
47
47
 
48
48
  sig { returns(T::Hash[Symbol, T.untyped]) }
49
49
  def to_h; end