workos 7.1.2 → 9.5.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 (582) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +2 -2
  3. data/.github/workflows/docs.yml +49 -0
  4. data/.github/workflows/lint.yml +2 -2
  5. data/.github/workflows/release-please.yml +164 -10
  6. data/.github/workflows/release.yml +2 -2
  7. data/.gitignore +2 -0
  8. data/.last-synced-sha +1 -1
  9. data/.oagen-manifest.json +403 -84
  10. data/.release-please-manifest.json +1 -1
  11. data/.ruby-version +1 -1
  12. data/.yardopts +6 -0
  13. data/CHANGELOG.md +331 -0
  14. data/Gemfile +6 -0
  15. data/Gemfile.lock +35 -4
  16. data/README.md +19 -0
  17. data/docs/V7_MIGRATION_GUIDE.md +21 -0
  18. data/lib/workos/actions.rb +1 -1
  19. data/lib/workos/admin_portal/generate_link.rb +0 -3
  20. data/lib/workos/admin_portal.rb +0 -3
  21. data/lib/workos/api_keys/api_key.rb +4 -1
  22. data/lib/workos/api_keys/api_key_created.rb +5 -5
  23. data/lib/workos/api_keys/api_key_created_data.rb +4 -1
  24. data/lib/workos/api_keys/api_key_revoked.rb +5 -5
  25. data/lib/workos/{audit_logs/audit_log_export_json.rb → api_keys/api_key_updated.rb} +10 -10
  26. data/lib/workos/api_keys/api_key_updated_data.rb +49 -0
  27. data/lib/workos/{directory_sync/dsync_deactivated_data_domain.rb → api_keys/api_key_updated_data_owner.rb} +1 -1
  28. data/lib/workos/api_keys/api_key_updated_data_previous_attribute.rb +18 -0
  29. data/lib/workos/api_keys/create_organization_api_key.rb +5 -2
  30. data/lib/workos/api_keys/expire_api_key.rb +18 -0
  31. data/lib/workos/api_keys/organization_api_key.rb +46 -0
  32. data/lib/workos/{types/events_order.rb → api_keys/organization_api_key_owner.rb} +1 -3
  33. data/lib/workos/api_keys/organization_api_key_with_value.rb +49 -0
  34. data/lib/workos/{types/audit_logs_order.rb → api_keys/organization_api_key_with_value_owner.rb} +1 -3
  35. data/lib/workos/api_keys.rb +75 -47
  36. data/lib/workos/audit_logs/audit_log_action.rb +2 -7
  37. data/lib/workos/audit_logs/audit_log_export.rb +2 -7
  38. data/lib/workos/audit_logs/audit_log_schema.rb +11 -2
  39. data/lib/workos/audit_logs/audit_log_schema_actor_input.rb +7 -0
  40. data/lib/workos/audit_logs/audit_log_schema_input.rb +25 -0
  41. data/lib/workos/audit_logs/audit_log_schema_target.rb +16 -1
  42. data/lib/workos/audit_logs/audit_log_schema_target_input.rb +7 -0
  43. data/lib/workos/audit_logs.rb +20 -20
  44. data/lib/workos/{audit_logs/audit_log_schema_json_actor.rb → authorization/create_group_role_assignment.rb} +1 -1
  45. data/lib/workos/authorization/delete_group_role_assignments_by_criteria.rb +7 -0
  46. data/lib/workos/authorization/{role_assignment.rb → group_role_assignment.rb} +5 -2
  47. data/lib/workos/authorization/group_role_assignment_list.rb +25 -0
  48. data/lib/workos/authorization/{role_assignment_resource.rb → group_role_assignment_resource.rb} +1 -1
  49. data/lib/workos/authorization/permission_created.rb +5 -5
  50. data/lib/workos/authorization/permission_deleted.rb +5 -5
  51. data/lib/workos/authorization/permission_updated.rb +5 -5
  52. data/lib/workos/{api_keys/api_key_with_value_owner.rb → authorization/replace_group_role_assignment_entry.rb} +1 -1
  53. data/lib/workos/authorization/replace_group_role_assignments.rb +18 -0
  54. data/lib/workos/authorization/role_created.rb +5 -5
  55. data/lib/workos/authorization/role_deleted.rb +5 -5
  56. data/lib/workos/authorization/role_updated.rb +5 -5
  57. data/lib/workos/authorization/user_role_assignment.rb +40 -0
  58. data/lib/workos/authorization/user_role_assignment_resource.rb +7 -0
  59. data/lib/workos/{audit_logs/audit_log_schema_json_target.rb → authorization/user_role_assignment_source.rb} +4 -4
  60. data/lib/workos/authorization.rb +326 -30
  61. data/lib/workos/base_client.rb +90 -7
  62. data/lib/workos/client.rb +18 -10
  63. data/lib/workos/client_api/client_api_token.rb +22 -0
  64. data/lib/workos/client_api/client_api_token_response.rb +18 -0
  65. data/lib/workos/client_api.rb +39 -0
  66. data/lib/workos/connect/connect_application.rb +12 -0
  67. data/lib/workos/connect/connect_application_redirect_uri.rb +22 -0
  68. data/lib/workos/connect/user_object.rb +3 -0
  69. data/lib/workos/connect.rb +2 -2
  70. data/lib/workos/directory_sync/directory_user.rb +3 -0
  71. data/lib/workos/directory_sync/directory_user_with_groups.rb +4 -1
  72. data/lib/workos/directory_sync/dsync_activated.rb +5 -5
  73. data/lib/workos/directory_sync/dsync_deleted.rb +5 -5
  74. data/lib/workos/directory_sync/dsync_group_created.rb +5 -5
  75. data/lib/workos/directory_sync/dsync_group_deleted.rb +5 -5
  76. data/lib/workos/directory_sync/dsync_group_updated.rb +5 -5
  77. data/lib/workos/directory_sync/dsync_group_user_added.rb +5 -5
  78. data/lib/workos/directory_sync/dsync_group_user_removed.rb +5 -5
  79. data/lib/workos/directory_sync/dsync_token_created.rb +34 -0
  80. data/lib/workos/directory_sync/dsync_token_created_data.rb +34 -0
  81. data/lib/workos/directory_sync/dsync_token_revoked.rb +34 -0
  82. data/lib/workos/directory_sync/dsync_token_revoked_data.rb +7 -0
  83. data/lib/workos/directory_sync/dsync_user_created.rb +5 -5
  84. data/lib/workos/directory_sync/dsync_user_deleted.rb +5 -5
  85. data/lib/workos/directory_sync/dsync_user_updated.rb +5 -5
  86. data/lib/workos/directory_sync/dsync_user_updated_data.rb +3 -0
  87. data/lib/workos/directory_sync.rb +6 -6
  88. data/lib/workos/encryptors/aes_gcm.rb +19 -5
  89. data/lib/workos/events.rb +2 -2
  90. data/lib/workos/feature_flags/flag_created.rb +5 -5
  91. data/lib/workos/feature_flags/flag_deleted.rb +5 -5
  92. data/lib/workos/feature_flags/flag_rule_updated.rb +5 -5
  93. data/lib/workos/feature_flags/flag_rule_updated_context_configured_target_organization.rb +1 -16
  94. data/lib/workos/feature_flags/flag_rule_updated_context_previous_attribute_context_configured_target_organization.rb +1 -1
  95. data/lib/workos/feature_flags/flag_updated.rb +5 -5
  96. data/lib/workos/feature_flags.rb +6 -6
  97. data/lib/workos/{authorization → groups}/user_organization_membership_base_list_data.rb +5 -2
  98. data/lib/workos/groups.rb +4 -4
  99. data/lib/workos/inflections.rb +3 -1
  100. data/lib/workos/multi_factor_auth.rb +2 -2
  101. data/lib/workos/organization_domains/organization_domain_created.rb +5 -5
  102. data/lib/workos/organization_domains/organization_domain_deleted.rb +5 -5
  103. data/lib/workos/organization_domains/organization_domain_updated.rb +5 -5
  104. data/lib/workos/organization_domains/organization_domain_verification_failed.rb +5 -5
  105. data/lib/workos/organization_domains/organization_domain_verified.rb +5 -5
  106. data/lib/workos/{user_management → organization_membership}/organization_membership.rb +8 -2
  107. data/lib/workos/{user_management → organization_membership}/user_organization_membership.rb +8 -2
  108. data/lib/workos/organization_membership_service.rb +273 -0
  109. data/lib/workos/organizations/audit_logs_retention.rb +2 -7
  110. data/lib/workos/organizations/organization_created.rb +5 -5
  111. data/lib/workos/organizations/organization_deleted.rb +5 -5
  112. data/lib/workos/organizations/organization_membership_created.rb +5 -5
  113. data/lib/workos/organizations/organization_membership_deleted.rb +5 -5
  114. data/lib/workos/organizations/organization_membership_updated.rb +5 -5
  115. data/lib/workos/organizations/organization_role_created.rb +5 -5
  116. data/lib/workos/organizations/organization_role_deleted.rb +5 -5
  117. data/lib/workos/organizations/organization_role_updated.rb +5 -5
  118. data/lib/workos/organizations/organization_updated.rb +5 -5
  119. data/lib/workos/organizations.rb +2 -2
  120. data/lib/workos/pipes/connected_account.rb +6 -0
  121. data/lib/workos/pipes/connected_account_dto.rb +31 -0
  122. data/lib/workos/pipes/create_data_integration.rb +34 -0
  123. data/lib/workos/pipes/custom_provider_definition.rb +49 -0
  124. data/lib/workos/pipes/data_integration.rb +55 -0
  125. data/lib/workos/pipes/data_integration_credential.rb +25 -0
  126. data/lib/workos/pipes/data_integration_credentials_dto.rb +25 -0
  127. data/lib/workos/pipes/data_integration_credentials_response.rb +25 -0
  128. data/lib/workos/pipes/data_integration_credentials_response_credential.rb +34 -0
  129. data/lib/workos/pipes/data_integration_custom_provider.rb +49 -0
  130. data/lib/workos/pipes/data_integrations_list_response_data.rb +3 -0
  131. data/lib/workos/pipes/data_integrations_list_response_data_connected_account.rb +6 -0
  132. data/lib/workos/pipes/data_integrations_upsert_api_key_request.rb +25 -0
  133. data/lib/workos/pipes/data_integrations_vend_credentials_request.rb +22 -0
  134. data/lib/workos/pipes/update_custom_provider_definition.rb +49 -0
  135. data/lib/workos/pipes/update_data_integration.rb +31 -0
  136. data/lib/workos/pipes.rb +309 -5
  137. data/lib/workos/pipes_provider/configure_data_integration_body.rb +28 -0
  138. data/lib/workos/pipes_provider/data_integration_configuration_list_response.rb +22 -0
  139. data/lib/workos/{directory_sync/dsync_deactivated_data.rb → pipes_provider/data_integration_configuration_response.rb} +13 -13
  140. data/lib/workos/pipes_provider/data_integration_credentials.rb +31 -0
  141. data/lib/workos/pipes_provider.rb +68 -0
  142. data/lib/workos/radar/radar_standalone_assess_request.rb +3 -6
  143. data/lib/workos/radar.rb +7 -10
  144. data/lib/workos/session.rb +28 -7
  145. data/lib/workos/session_manager.rb +24 -1
  146. data/lib/workos/shared/auth_method_mismatch_error.rb +22 -0
  147. data/lib/workos/shared/connect_application_m2m.rb +46 -0
  148. data/lib/workos/shared/connect_application_oauth.rb +58 -0
  149. data/lib/workos/shared/connect_application_oauth_redirect_uris.rb +22 -0
  150. data/lib/workos/shared/error_response.rb +18 -0
  151. data/lib/workos/shared/group_created.rb +5 -5
  152. data/lib/workos/shared/group_deleted.rb +5 -5
  153. data/lib/workos/shared/group_member_added.rb +5 -5
  154. data/lib/workos/shared/group_member_removed.rb +5 -5
  155. data/lib/workos/shared/group_updated.rb +5 -5
  156. data/lib/workos/shared/pipe_connected_account.rb +46 -0
  157. data/lib/workos/{directory_sync/dsync_deactivated.rb → shared/pipes_connected_account_connected.rb} +7 -7
  158. data/lib/workos/shared/pipes_connected_account_disconnected.rb +34 -0
  159. data/lib/workos/shared/pipes_connected_account_reauthorization_needed.rb +34 -0
  160. data/lib/workos/shared/waitlist_user_approved.rb +5 -5
  161. data/lib/workos/shared/waitlist_user_created.rb +5 -5
  162. data/lib/workos/shared/waitlist_user_denied.rb +5 -5
  163. data/lib/workos/sso/connection_activated.rb +5 -5
  164. data/lib/workos/sso/connection_deactivated.rb +5 -5
  165. data/lib/workos/sso/connection_deleted.rb +5 -5
  166. data/lib/workos/sso/connection_saml_certificate_renewal_required.rb +5 -5
  167. data/lib/workos/sso/connection_saml_certificate_renewed.rb +5 -5
  168. data/lib/workos/sso/profile.rb +3 -0
  169. data/lib/workos/sso.rb +2 -2
  170. data/lib/workos/types/audit_log_configuration_log_stream_type.rb +2 -1
  171. data/lib/workos/types/audit_log_export_state.rb +2 -1
  172. data/lib/workos/types/connected_account_auth_method.rb +13 -0
  173. data/lib/workos/types/connected_account_state.rb +1 -2
  174. data/lib/workos/types/create_webhook_endpoint_events.rb +12 -1
  175. data/lib/workos/types/custom_provider_definition_authenticate_via.rb +13 -0
  176. data/lib/workos/types/data_integration_access_token_response_error.rb +2 -2
  177. data/lib/workos/types/data_integration_credential_type.rb +13 -0
  178. data/lib/workos/types/data_integration_credentials_credentials_type.rb +14 -0
  179. data/lib/workos/types/{directories_order.rb → data_integration_credentials_response_error.rb} +1 -1
  180. data/lib/workos/types/{authorization_order.rb → data_integration_credentials_type.rb} +1 -1
  181. data/lib/workos/types/data_integration_custom_provider_authenticate_via.rb +9 -0
  182. data/lib/workos/types/data_integration_state.rb +14 -0
  183. data/lib/workos/types/{connections_order.rb → data_integrations_list_response_data_auth_methods.rb} +1 -1
  184. data/lib/workos/types/data_integrations_list_response_data_connected_account_auth_method.rb +9 -0
  185. data/lib/workos/types/data_integrations_list_response_data_connected_account_state.rb +6 -1
  186. data/lib/workos/types/event_context_actor_source.rb +2 -1
  187. data/lib/workos/types/{applications_order.rb → pagination_order.rb} +1 -1
  188. data/lib/workos/types/pipe_connected_account_state.rb +13 -0
  189. data/lib/workos/types/{radar_action.rb → radar_list_action.rb} +1 -1
  190. data/lib/workos/types/radar_list_type.rb +18 -0
  191. data/lib/workos/types/radar_standalone_assess_request_action.rb +1 -7
  192. data/lib/workos/types/radar_standalone_response_blocklist_type.rb +1 -10
  193. data/lib/workos/types/radar_standalone_response_control.rb +1 -4
  194. data/lib/workos/types/update_custom_provider_definition_authenticate_via.rb +9 -0
  195. data/lib/workos/types/user_management_authentication_screen_hint.rb +1 -5
  196. data/lib/workos/types/user_role_assignment_source_type.rb +13 -0
  197. data/lib/workos/types/{vault_byok_key_verification_completed_data_key_provider.rb → vault_byok_key_provider.rb} +1 -1
  198. data/{rbi/workos/types/request_options.rbi → lib/workos/types/vault_order.rb} +4 -3
  199. data/lib/workos/types/webhook_endpoint_status.rb +1 -5
  200. data/lib/workos/types/widget_session_token_scopes.rb +2 -1
  201. data/lib/workos/user_management/action_authentication_denied.rb +6 -6
  202. data/lib/workos/user_management/action_user_registration_denied.rb +6 -6
  203. data/lib/workos/user_management/authentication_email_verification_failed.rb +5 -5
  204. data/lib/workos/user_management/authentication_email_verification_succeeded.rb +5 -5
  205. data/lib/workos/user_management/authentication_magic_auth_failed.rb +5 -5
  206. data/lib/workos/user_management/authentication_magic_auth_succeeded.rb +5 -5
  207. data/lib/workos/user_management/authentication_mfa_failed.rb +5 -5
  208. data/lib/workos/user_management/authentication_mfa_succeeded.rb +5 -5
  209. data/lib/workos/user_management/authentication_oauth_failed.rb +5 -5
  210. data/lib/workos/user_management/authentication_oauth_succeeded.rb +5 -5
  211. data/lib/workos/user_management/authentication_passkey_failed.rb +5 -5
  212. data/lib/workos/user_management/authentication_passkey_succeeded.rb +5 -5
  213. data/lib/workos/user_management/authentication_password_failed.rb +5 -5
  214. data/lib/workos/user_management/authentication_password_succeeded.rb +5 -5
  215. data/lib/workos/user_management/authentication_radar_risk_detected.rb +5 -5
  216. data/lib/workos/user_management/authentication_sso_failed.rb +5 -5
  217. data/lib/workos/user_management/authentication_sso_started.rb +5 -5
  218. data/lib/workos/user_management/authentication_sso_succeeded.rb +5 -5
  219. data/lib/workos/user_management/authentication_sso_timed_out.rb +5 -5
  220. data/lib/workos/user_management/authorization_code_session_authenticate_request.rb +5 -2
  221. data/lib/workos/user_management/create_magic_code_and_return.rb +14 -2
  222. data/lib/workos/user_management/create_user.rb +12 -0
  223. data/lib/workos/user_management/create_user_api_key.rb +28 -0
  224. data/lib/workos/user_management/email_change_confirmation_user.rb +3 -0
  225. data/lib/workos/user_management/email_verification_created.rb +5 -5
  226. data/lib/workos/user_management/invitation_accepted.rb +5 -5
  227. data/lib/workos/user_management/invitation_created.rb +5 -5
  228. data/lib/workos/user_management/invitation_resent.rb +5 -5
  229. data/lib/workos/user_management/invitation_revoked.rb +5 -5
  230. data/lib/workos/user_management/magic_auth_code_session_authenticate_request.rb +5 -2
  231. data/lib/workos/user_management/magic_auth_created.rb +5 -5
  232. data/lib/workos/user_management/magic_auth_send_magic_auth_code_and_return_response.rb +43 -0
  233. data/lib/workos/user_management/password_reset_created.rb +5 -5
  234. data/lib/workos/user_management/password_reset_succeeded.rb +5 -5
  235. data/lib/workos/user_management/password_session_authenticate_request.rb +8 -2
  236. data/lib/workos/user_management/radar_email_challenge_code_session_authenticate_request.rb +43 -0
  237. data/lib/workos/user_management/radar_sms_challenge_code_session_authenticate_request.rb +46 -0
  238. data/lib/workos/user_management/revoke_session.rb +2 -6
  239. data/lib/workos/user_management/send_radar_sms_challenge.rb +31 -0
  240. data/lib/workos/user_management/send_radar_sms_challenge_response.rb +22 -0
  241. data/lib/workos/user_management/session_created.rb +5 -5
  242. data/lib/workos/user_management/session_revoked.rb +5 -5
  243. data/lib/workos/user_management/update_user.rb +3 -0
  244. data/lib/workos/user_management/user_api_key.rb +46 -0
  245. data/lib/workos/user_management/user_api_key_created_data_owner.rb +25 -0
  246. data/lib/workos/user_management/user_api_key_owner.rb +7 -0
  247. data/lib/workos/user_management/user_api_key_revoked_data_owner.rb +7 -0
  248. data/lib/workos/user_management/user_api_key_updated_data_owner.rb +7 -0
  249. data/lib/workos/{api_keys/api_key_with_value.rb → user_management/user_api_key_with_value.rb} +5 -2
  250. data/lib/workos/user_management/user_api_key_with_value_owner.rb +7 -0
  251. data/lib/workos/user_management/user_create_response.rb +61 -0
  252. data/lib/workos/user_management/user_created.rb +5 -5
  253. data/lib/workos/user_management/user_deleted.rb +5 -5
  254. data/lib/workos/user_management/user_updated.rb +5 -5
  255. data/lib/workos/user_management.rb +351 -202
  256. data/lib/workos/vault/actor.rb +22 -0
  257. data/lib/workos/vault/create_data_key_request.rb +18 -0
  258. data/lib/workos/vault/create_data_key_response.rb +28 -0
  259. data/lib/workos/vault/create_object_request.rb +25 -0
  260. data/lib/workos/vault/decrypt_request.rb +18 -0
  261. data/lib/workos/vault/decrypt_response.rb +22 -0
  262. data/lib/workos/vault/delete_object_response.rb +22 -0
  263. data/lib/workos/vault/object_metadata.rb +37 -0
  264. data/lib/workos/{audit_logs/audit_log_action_json.rb → vault/object_summary.rb} +4 -10
  265. data/lib/workos/vault/object_version.rb +31 -0
  266. data/lib/workos/vault/object_without_value.rb +25 -0
  267. data/lib/workos/vault/rekey_request.rb +22 -0
  268. data/lib/workos/vault/update_object_request.rb +22 -0
  269. data/lib/workos/vault/vault_byok_key_deleted.rb +34 -0
  270. data/lib/workos/vault/vault_byok_key_deleted_data.rb +22 -0
  271. data/lib/workos/vault/vault_byok_key_verification_completed.rb +5 -5
  272. data/lib/workos/vault/vault_data_created.rb +5 -5
  273. data/lib/workos/vault/vault_data_deleted.rb +5 -5
  274. data/lib/workos/vault/vault_data_read.rb +5 -5
  275. data/lib/workos/vault/vault_data_updated.rb +5 -5
  276. data/lib/workos/vault/vault_dek_decrypted.rb +5 -5
  277. data/lib/workos/vault/vault_dek_read.rb +5 -5
  278. data/lib/workos/vault/vault_kek_created.rb +5 -5
  279. data/lib/workos/vault/vault_metadata_read.rb +5 -5
  280. data/lib/workos/vault/vault_names_listed.rb +5 -5
  281. data/lib/workos/vault/vault_object.rb +28 -0
  282. data/lib/workos/vault/version_list_response.rb +22 -0
  283. data/lib/workos/vault.rb +273 -139
  284. data/lib/workos/version.rb +1 -1
  285. data/lib/workos/webhooks/webhook_endpoint.rb +2 -7
  286. data/lib/workos/webhooks.rb +10 -11
  287. data/lib/workos/widgets/widget_session_token_response.rb +1 -12
  288. data/lib/workos.rb +3 -0
  289. data/rbi/workos/action_authentication_denied.rbi +10 -10
  290. data/rbi/workos/action_user_registration_denied.rbi +10 -10
  291. data/rbi/workos/actor.rbi +30 -0
  292. data/rbi/workos/admin_portal.rbi +1 -2
  293. data/rbi/workos/api_key.rbi +8 -2
  294. data/rbi/workos/api_key_created.rbi +6 -6
  295. data/rbi/workos/api_key_created_data.rbi +8 -2
  296. data/rbi/workos/api_key_revoked.rbi +6 -6
  297. data/rbi/workos/api_key_revoked_data.rbi +8 -2
  298. data/rbi/workos/{dsync_deactivated.rbi → api_key_updated.rbi} +9 -9
  299. data/rbi/workos/api_key_updated_data.rbi +84 -0
  300. data/rbi/workos/{api_key_with_value_owner.rbi → api_key_updated_data_owner.rbi} +1 -1
  301. data/rbi/workos/{audit_logs_retention_json.rbi → api_key_updated_data_previous_attribute.rbi} +5 -5
  302. data/rbi/workos/api_keys.rbi +27 -17
  303. data/rbi/workos/audit_log_action.rbi +1 -0
  304. data/rbi/workos/audit_log_export.rbi +1 -0
  305. data/rbi/workos/audit_log_schema.rbi +18 -0
  306. data/rbi/workos/{audit_log_schema_json_actor.rbi → audit_log_schema_actor_input.rbi} +1 -1
  307. data/rbi/workos/audit_log_schema_input.rbi +36 -0
  308. data/rbi/workos/{audit_log_schema_json_target.rbi → audit_log_schema_target_input.rbi} +1 -1
  309. data/rbi/workos/audit_logs.rbi +9 -9
  310. data/rbi/workos/audit_logs_retention.rbi +1 -0
  311. data/rbi/workos/auth_method_mismatch_error.rbi +30 -0
  312. data/rbi/workos/authentication_email_verification_failed.rbi +6 -6
  313. data/rbi/workos/authentication_email_verification_succeeded.rbi +6 -6
  314. data/rbi/workos/authentication_magic_auth_failed.rbi +6 -6
  315. data/rbi/workos/authentication_magic_auth_succeeded.rbi +6 -6
  316. data/rbi/workos/authentication_mfa_failed.rbi +6 -6
  317. data/rbi/workos/authentication_mfa_succeeded.rbi +6 -6
  318. data/rbi/workos/authentication_oauth_failed.rbi +6 -6
  319. data/rbi/workos/authentication_oauth_succeeded.rbi +6 -6
  320. data/rbi/workos/authentication_passkey_failed.rbi +6 -6
  321. data/rbi/workos/authentication_passkey_succeeded.rbi +6 -6
  322. data/rbi/workos/authentication_password_failed.rbi +6 -6
  323. data/rbi/workos/authentication_password_succeeded.rbi +6 -6
  324. data/rbi/workos/authentication_radar_risk_detected.rbi +6 -6
  325. data/rbi/workos/authentication_sso_failed.rbi +6 -6
  326. data/rbi/workos/authentication_sso_started.rbi +6 -6
  327. data/rbi/workos/authentication_sso_succeeded.rbi +6 -6
  328. data/rbi/workos/authentication_sso_timed_out.rbi +6 -6
  329. data/rbi/workos/authorization.rbi +97 -4
  330. data/rbi/workos/authorization_code_session_authenticate_request.rbi +8 -2
  331. data/rbi/workos/client.rbi +15 -6
  332. data/rbi/workos/client_api.rbi +22 -0
  333. data/rbi/workos/client_api_token.rbi +30 -0
  334. data/rbi/workos/client_api_token_response.rbi +24 -0
  335. data/rbi/workos/configure_data_integration_body.rbi +42 -0
  336. data/rbi/workos/connect_application.rbi +0 -12
  337. data/rbi/workos/{dsync_deactivated_data.rbi → connect_application_m2m.rbi} +19 -19
  338. data/rbi/workos/connect_application_oauth.rbi +102 -0
  339. data/rbi/workos/connect_application_oauth_redirect_uris.rbi +30 -0
  340. data/rbi/workos/connected_account.rbi +12 -0
  341. data/rbi/workos/connected_account_dto.rbi +48 -0
  342. data/rbi/workos/connection_activated.rbi +6 -6
  343. data/rbi/workos/connection_deactivated.rbi +6 -6
  344. data/rbi/workos/connection_deleted.rbi +6 -6
  345. data/rbi/workos/connection_saml_certificate_renewal_required.rbi +6 -6
  346. data/rbi/workos/connection_saml_certificate_renewed.rbi +6 -6
  347. data/rbi/workos/create_data_integration.rbi +54 -0
  348. data/rbi/workos/create_data_key_request.rbi +24 -0
  349. data/rbi/workos/create_data_key_response.rbi +42 -0
  350. data/rbi/workos/create_group_role_assignment.rbi +42 -0
  351. data/rbi/workos/create_magic_code_and_return.rbi +24 -0
  352. data/rbi/workos/create_object_request.rbi +36 -0
  353. data/rbi/workos/create_organization_api_key.rbi +6 -0
  354. data/rbi/workos/create_user.rbi +24 -0
  355. data/rbi/workos/create_user_api_key.rbi +42 -0
  356. data/rbi/workos/custom_provider_definition.rbi +84 -0
  357. data/rbi/workos/data_integration.rbi +96 -0
  358. data/rbi/workos/data_integration_configuration_list_response.rbi +30 -0
  359. data/rbi/workos/data_integration_configuration_response.rbi +78 -0
  360. data/rbi/workos/data_integration_credential.rbi +36 -0
  361. data/rbi/workos/data_integration_credentials.rbi +48 -0
  362. data/rbi/workos/data_integration_credentials_dto.rbi +36 -0
  363. data/rbi/workos/data_integration_credentials_response.rbi +36 -0
  364. data/rbi/workos/data_integration_credentials_response_credential.rbi +54 -0
  365. data/rbi/workos/data_integration_custom_provider.rbi +84 -0
  366. data/rbi/workos/data_integrations_list_response_data.rbi +6 -0
  367. data/rbi/workos/data_integrations_list_response_data_connected_account.rbi +12 -0
  368. data/rbi/workos/data_integrations_upsert_api_key_request.rbi +36 -0
  369. data/rbi/workos/data_integrations_vend_credentials_request.rbi +30 -0
  370. data/rbi/workos/decrypt_request.rbi +24 -0
  371. data/rbi/workos/decrypt_response.rbi +30 -0
  372. data/rbi/workos/delete_group_role_assignments_by_criteria.rbi +42 -0
  373. data/rbi/workos/delete_object_response.rbi +30 -0
  374. data/rbi/workos/directory_user.rbi +6 -0
  375. data/rbi/workos/directory_user_with_groups.rbi +6 -0
  376. data/rbi/workos/dsync_activated.rbi +6 -6
  377. data/rbi/workos/dsync_deleted.rbi +6 -6
  378. data/rbi/workos/dsync_group_created.rbi +6 -6
  379. data/rbi/workos/dsync_group_deleted.rbi +6 -6
  380. data/rbi/workos/dsync_group_updated.rbi +6 -6
  381. data/rbi/workos/dsync_group_user_added.rbi +6 -6
  382. data/rbi/workos/dsync_group_user_removed.rbi +6 -6
  383. data/rbi/workos/dsync_token_created.rbi +54 -0
  384. data/rbi/workos/{audit_log_export_json.rbi → dsync_token_created_data.rbi} +9 -9
  385. data/rbi/workos/dsync_token_revoked.rbi +54 -0
  386. data/rbi/workos/{audit_log_action_json.rbi → dsync_token_revoked_data.rbi} +17 -11
  387. data/rbi/workos/dsync_user_created.rbi +6 -6
  388. data/rbi/workos/dsync_user_deleted.rbi +6 -6
  389. data/rbi/workos/dsync_user_updated.rbi +6 -6
  390. data/rbi/workos/dsync_user_updated_data.rbi +6 -0
  391. data/rbi/workos/email_change_confirmation_user.rbi +6 -0
  392. data/rbi/workos/email_verification_created.rbi +6 -6
  393. data/rbi/workos/error_response.rbi +24 -0
  394. data/rbi/workos/expire_api_key.rbi +24 -0
  395. data/rbi/workos/flag_created.rbi +6 -6
  396. data/rbi/workos/flag_deleted.rbi +6 -6
  397. data/rbi/workos/flag_rule_updated.rbi +6 -6
  398. data/rbi/workos/flag_updated.rbi +6 -6
  399. data/rbi/workos/generate_link.rbi +0 -6
  400. data/rbi/workos/group_created.rbi +6 -6
  401. data/rbi/workos/group_deleted.rbi +6 -6
  402. data/rbi/workos/group_member_added.rbi +6 -6
  403. data/rbi/workos/group_member_removed.rbi +6 -6
  404. data/rbi/workos/{role_assignment.rbi → group_role_assignment.rbi} +9 -3
  405. data/rbi/workos/group_role_assignment_resource.rbi +36 -0
  406. data/rbi/workos/group_updated.rbi +6 -6
  407. data/rbi/workos/invitation_accepted.rbi +6 -6
  408. data/rbi/workos/invitation_created.rbi +6 -6
  409. data/rbi/workos/invitation_resent.rbi +6 -6
  410. data/rbi/workos/invitation_revoked.rbi +6 -6
  411. data/rbi/workos/magic_auth_code_session_authenticate_request.rbi +6 -0
  412. data/rbi/workos/magic_auth_created.rbi +6 -6
  413. data/rbi/workos/{webhook_endpoint_json.rbi → magic_auth_send_magic_auth_code_and_return_response.rbi} +19 -13
  414. data/rbi/workos/object_metadata.rbi +60 -0
  415. data/rbi/workos/object_summary.rbi +36 -0
  416. data/rbi/workos/object_version.rbi +48 -0
  417. data/rbi/workos/object_without_value.rbi +36 -0
  418. data/rbi/workos/organization_api_key.rbi +78 -0
  419. data/rbi/workos/organization_api_key_owner.rbi +30 -0
  420. data/rbi/workos/organization_api_key_with_value.rbi +84 -0
  421. data/rbi/workos/organization_api_key_with_value_owner.rbi +30 -0
  422. data/rbi/workos/organization_created.rbi +6 -6
  423. data/rbi/workos/organization_deleted.rbi +6 -6
  424. data/rbi/workos/organization_domain_created.rbi +6 -6
  425. data/rbi/workos/organization_domain_deleted.rbi +6 -6
  426. data/rbi/workos/organization_domain_updated.rbi +6 -6
  427. data/rbi/workos/organization_domain_verification_failed.rbi +6 -6
  428. data/rbi/workos/organization_domain_verified.rbi +6 -6
  429. data/rbi/workos/organization_membership.rbi +12 -0
  430. data/rbi/workos/organization_membership_created.rbi +6 -6
  431. data/rbi/workos/organization_membership_deleted.rbi +6 -6
  432. data/rbi/workos/organization_membership_service.rbi +114 -0
  433. data/rbi/workos/organization_membership_updated.rbi +6 -6
  434. data/rbi/workos/organization_role_created.rbi +6 -6
  435. data/rbi/workos/organization_role_deleted.rbi +6 -6
  436. data/rbi/workos/organization_role_updated.rbi +6 -6
  437. data/rbi/workos/organization_updated.rbi +6 -6
  438. data/rbi/workos/password_reset_created.rbi +6 -6
  439. data/rbi/workos/password_reset_succeeded.rbi +6 -6
  440. data/rbi/workos/password_session_authenticate_request.rbi +12 -0
  441. data/rbi/workos/permission_created.rbi +6 -6
  442. data/rbi/workos/permission_deleted.rbi +6 -6
  443. data/rbi/workos/permission_updated.rbi +6 -6
  444. data/rbi/workos/pipe_connected_account.rbi +78 -0
  445. data/rbi/workos/pipes.rbi +105 -1
  446. data/rbi/workos/pipes_connected_account_connected.rbi +54 -0
  447. data/rbi/workos/pipes_connected_account_disconnected.rbi +54 -0
  448. data/rbi/workos/pipes_connected_account_reauthorization_needed.rbi +54 -0
  449. data/rbi/workos/pipes_provider.rbi +34 -0
  450. data/rbi/workos/profile.rbi +6 -0
  451. data/rbi/workos/radar.rbi +2 -3
  452. data/rbi/workos/radar_email_challenge_code_session_authenticate_request.rbi +72 -0
  453. data/rbi/workos/radar_sms_challenge_code_session_authenticate_request.rbi +78 -0
  454. data/rbi/workos/radar_standalone_assess_request.rbi +2 -8
  455. data/rbi/workos/refresh_token_session_authenticate_request.rbi +2 -2
  456. data/rbi/workos/rekey_request.rbi +30 -0
  457. data/rbi/workos/replace_group_role_assignment_entry.rbi +42 -0
  458. data/rbi/workos/replace_group_role_assignments.rbi +24 -0
  459. data/rbi/workos/revoke_session.rbi +0 -6
  460. data/rbi/workos/role_created.rbi +6 -6
  461. data/rbi/workos/role_deleted.rbi +6 -6
  462. data/rbi/workos/role_updated.rbi +6 -6
  463. data/rbi/workos/send_radar_sms_challenge.rbi +48 -0
  464. data/rbi/workos/send_radar_sms_challenge_response.rbi +30 -0
  465. data/rbi/workos/session_created.rbi +6 -6
  466. data/rbi/workos/session_manager.rbi +1 -1
  467. data/rbi/workos/session_revoked.rbi +6 -6
  468. data/rbi/workos/update_custom_provider_definition.rbi +84 -0
  469. data/rbi/workos/update_data_integration.rbi +48 -0
  470. data/rbi/workos/update_object_request.rbi +30 -0
  471. data/rbi/workos/update_user.rbi +6 -0
  472. data/rbi/workos/user.rbi +6 -0
  473. data/rbi/workos/{api_key_with_value.rbi → user_api_key.rbi} +9 -9
  474. data/rbi/workos/user_api_key_created_data_owner.rbi +36 -0
  475. data/rbi/workos/{dsync_deactivated_data_domain.rbi → user_api_key_owner.rbi} +5 -5
  476. data/rbi/workos/user_api_key_revoked_data_owner.rbi +36 -0
  477. data/rbi/workos/user_api_key_updated_data_owner.rbi +36 -0
  478. data/rbi/workos/user_api_key_with_value.rbi +84 -0
  479. data/rbi/workos/user_api_key_with_value_owner.rbi +36 -0
  480. data/rbi/workos/user_create_response.rbi +108 -0
  481. data/rbi/workos/user_created.rbi +6 -6
  482. data/rbi/workos/user_deleted.rbi +6 -6
  483. data/rbi/workos/user_management.rbi +72 -86
  484. data/rbi/workos/user_object.rbi +6 -0
  485. data/rbi/workos/user_organization_membership.rbi +12 -0
  486. data/rbi/workos/user_organization_membership_base_list_data.rbi +6 -0
  487. data/rbi/workos/user_role_assignment.rbi +66 -0
  488. data/rbi/workos/{role_assignment_resource.rbi → user_role_assignment_resource.rbi} +1 -1
  489. data/rbi/workos/user_role_assignment_source.rbi +30 -0
  490. data/rbi/workos/user_updated.rbi +6 -6
  491. data/rbi/workos/vault.rbi +70 -95
  492. data/rbi/workos/vault_byok_key_deleted.rbi +54 -0
  493. data/rbi/workos/vault_byok_key_deleted_data.rbi +30 -0
  494. data/rbi/workos/vault_byok_key_verification_completed.rbi +6 -6
  495. data/rbi/workos/vault_data_created.rbi +6 -6
  496. data/rbi/workos/vault_data_deleted.rbi +6 -6
  497. data/rbi/workos/vault_data_read.rbi +6 -6
  498. data/rbi/workos/vault_data_updated.rbi +6 -6
  499. data/rbi/workos/vault_dek_decrypted.rbi +6 -6
  500. data/rbi/workos/vault_dek_read.rbi +6 -6
  501. data/rbi/workos/vault_kek_created.rbi +6 -6
  502. data/rbi/workos/vault_metadata_read.rbi +6 -6
  503. data/rbi/workos/vault_names_listed.rbi +6 -6
  504. data/rbi/workos/vault_object.rbi +42 -0
  505. data/rbi/workos/waitlist_user_approved.rbi +6 -6
  506. data/rbi/workos/waitlist_user_created.rbi +6 -6
  507. data/rbi/workos/waitlist_user_denied.rbi +6 -6
  508. data/rbi/workos/webhook_endpoint.rbi +1 -0
  509. data/rbi/workos/webhooks.rbi +2 -2
  510. data/renovate.json +1 -61
  511. data/script/docs +16 -0
  512. data/script/docs-serve +12 -0
  513. data/script/llms-txt +37 -0
  514. data/test/workos/test_actions.rb +9 -0
  515. data/test/workos/test_admin_portal_model_round_trip.rb +33 -0
  516. data/test/workos/test_api_keys.rb +20 -12
  517. data/test/workos/test_audit_logs_model_round_trip.rb +218 -0
  518. data/test/workos/test_authorization.rb +64 -0
  519. data/test/workos/test_authorization_model_round_trip.rb +456 -0
  520. data/test/workos/test_base_client.rb +108 -0
  521. data/test/workos/test_client_api.rb +33 -0
  522. data/test/workos/test_connect_model_round_trip.rb +30 -0
  523. data/test/workos/test_encryptors_aes_gcm.rb +16 -1
  524. data/test/workos/test_groups_model_round_trip.rb +33 -0
  525. data/test/workos/test_model_round_trip.rb +2 -7138
  526. data/test/workos/test_organization_membership_service.rb +107 -0
  527. data/test/workos/test_organizations_model_round_trip.rb +29 -0
  528. data/test/workos/test_pipes.rb +75 -3
  529. data/test/workos/test_pipes_model_round_trip.rb +389 -0
  530. data/test/workos/test_pipes_provider.rb +41 -0
  531. data/test/workos/test_radar_model_round_trip.rb +85 -0
  532. data/test/workos/test_session.rb +43 -4
  533. data/test/workos/test_shared_model_round_trip.rb +92 -0
  534. data/test/workos/test_user_management.rb +77 -73
  535. data/test/workos/test_user_management_model_round_trip.rb +1087 -0
  536. data/test/workos/test_vault.rb +91 -88
  537. data/test/workos/test_webhook_verify.rb +11 -0
  538. data/test/workos/test_webhooks_model_round_trip.rb +53 -0
  539. metadata +220 -85
  540. data/lib/workos/audit_logs/audit_log_schema_json.rb +0 -34
  541. data/lib/workos/organizations/audit_logs_retention_json.rb +0 -18
  542. data/lib/workos/types/audit_log_export_json_state.rb +0 -14
  543. data/lib/workos/types/directory_groups_order.rb +0 -9
  544. data/lib/workos/types/directory_users_order.rb +0 -9
  545. data/lib/workos/types/dsync_deactivated_data_state.rb +0 -9
  546. data/lib/workos/types/dsync_deactivated_data_type.rb +0 -9
  547. data/lib/workos/types/feature_flags_order.rb +0 -9
  548. data/lib/workos/types/groups_order.rb +0 -9
  549. data/lib/workos/types/organizations_api_keys_order.rb +0 -9
  550. data/lib/workos/types/organizations_feature_flags_order.rb +0 -9
  551. data/lib/workos/types/organizations_order.rb +0 -9
  552. data/lib/workos/types/permissions_order.rb +0 -9
  553. data/lib/workos/types/radar_type.rb +0 -9
  554. data/lib/workos/types/user_management_invitations_order.rb +0 -9
  555. data/lib/workos/types/user_management_multi_factor_authentication_order.rb +0 -9
  556. data/lib/workos/types/user_management_organization_membership_groups_order.rb +0 -9
  557. data/lib/workos/types/user_management_organization_membership_order.rb +0 -9
  558. data/lib/workos/types/user_management_users_authorized_applications_order.rb +0 -9
  559. data/lib/workos/types/user_management_users_feature_flags_order.rb +0 -9
  560. data/lib/workos/types/user_management_users_order.rb +0 -9
  561. data/lib/workos/types/webhook_endpoint_json_status.rb +0 -9
  562. data/lib/workos/types/webhooks_order.rb +0 -9
  563. data/lib/workos/user_management_organization_membership_groups.rb +0 -60
  564. data/lib/workos/webhooks/webhook_endpoint_json.rb +0 -40
  565. data/rbi/workos/actions.rbi +0 -48
  566. data/rbi/workos/audit_log_schema_json.rbi +0 -54
  567. data/rbi/workos/base_client.rbi +0 -132
  568. data/rbi/workos/configuration.rbi +0 -68
  569. data/rbi/workos/encryptors/aes_gcm.rbi +0 -19
  570. data/rbi/workos/errors.rbi +0 -43
  571. data/rbi/workos/hash_provider.rbi +0 -18
  572. data/rbi/workos/passwordless.rbi +0 -47
  573. data/rbi/workos/public_client.rbi +0 -12
  574. data/rbi/workos/session.rbi +0 -43
  575. data/rbi/workos/types/api_response.rbi +0 -29
  576. data/rbi/workos/types/base_model.rbi +0 -22
  577. data/rbi/workos/types/list_struct.rbi +0 -89
  578. data/rbi/workos/user_management_organization_membership_groups.rbi +0 -25
  579. data/rbi/workos/util.rbi +0 -12
  580. data/test/workos/test_user_management_organization_membership_groups.rb +0 -33
  581. /data/lib/workos/{user_management → organization_membership}/create_user_organization_membership.rb +0 -0
  582. /data/lib/workos/{user_management → organization_membership}/update_user_organization_membership.rb +0 -0
@@ -5,30 +5,30 @@
5
5
  module WorkOS
6
6
  class VaultMetadataRead < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
+ object: :object,
8
9
  id: :id,
9
10
  event: :event,
10
11
  data: :data,
11
12
  created_at: :created_at,
12
- context: :context,
13
- object: :object
13
+ context: :context
14
14
  }.freeze
15
15
 
16
16
  attr_accessor \
17
+ :object,
17
18
  :id,
18
19
  :event,
19
20
  :data,
20
21
  :created_at,
21
- :context,
22
- :object
22
+ :context
23
23
 
24
24
  def initialize(json)
25
25
  hash = self.class.normalize(json)
26
+ @object = hash[:object]
26
27
  @id = hash[:id]
27
28
  @event = hash[:event]
28
29
  @data = hash[:data] ? WorkOS::VaultMetadataReadData.new(hash[:data]) : nil
29
30
  @created_at = hash[:created_at]
30
31
  @context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil
31
- @object = hash[:object]
32
32
  end
33
33
  end
34
34
  end
@@ -5,30 +5,30 @@
5
5
  module WorkOS
6
6
  class VaultNamesListed < WorkOS::Types::BaseModel
7
7
  HASH_ATTRS = {
8
+ object: :object,
8
9
  id: :id,
9
10
  event: :event,
10
11
  data: :data,
11
12
  created_at: :created_at,
12
- context: :context,
13
- object: :object
13
+ context: :context
14
14
  }.freeze
15
15
 
16
16
  attr_accessor \
17
+ :object,
17
18
  :id,
18
19
  :event,
19
20
  :data,
20
21
  :created_at,
21
- :context,
22
- :object
22
+ :context
23
23
 
24
24
  def initialize(json)
25
25
  hash = self.class.normalize(json)
26
+ @object = hash[:object]
26
27
  @id = hash[:id]
27
28
  @event = hash[:event]
28
29
  @data = hash[:data] ? WorkOS::VaultNamesListedData.new(hash[:data]) : nil
29
30
  @created_at = hash[:created_at]
30
31
  @context = hash[:context] ? WorkOS::EventContext.new(hash[:context]) : nil
31
- @object = hash[:object]
32
32
  end
33
33
  end
34
34
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class VaultObject < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ id: :id,
9
+ metadata: :metadata,
10
+ name: :name,
11
+ value: :value
12
+ }.freeze
13
+
14
+ attr_accessor \
15
+ :id,
16
+ :metadata,
17
+ :name,
18
+ :value
19
+
20
+ def initialize(json)
21
+ hash = self.class.normalize(json)
22
+ @id = hash[:id]
23
+ @metadata = hash[:metadata] ? WorkOS::ObjectMetadata.new(hash[:metadata]) : nil
24
+ @name = hash[:name]
25
+ @value = hash[:value]
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is auto-generated by oagen. Do not edit.
4
+
5
+ module WorkOS
6
+ class VersionListResponse < WorkOS::Types::BaseModel
7
+ HASH_ATTRS = {
8
+ data: :data,
9
+ list_metadata: :list_metadata
10
+ }.freeze
11
+
12
+ attr_accessor \
13
+ :data,
14
+ :list_metadata
15
+
16
+ def initialize(json)
17
+ hash = self.class.normalize(json)
18
+ @data = (hash[:data] || []).map { |item| item ? WorkOS::ObjectVersion.new(item) : nil }
19
+ @list_metadata = hash[:list_metadata] ? WorkOS::ListMetadata.new(hash[:list_metadata]) : nil
20
+ end
21
+ end
22
+ end
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::VaultObject]
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::VaultObject.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::VaultObject]
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::VaultObject.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 = "7.1.2"
5
+ VERSION = "9.5.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]