univapay-apimatic-sdk 0.0.1

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 (272) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +224 -0
  4. data/bin/console +15 -0
  5. data/lib/univapay_client_sdk/api_helper.rb +10 -0
  6. data/lib/univapay_client_sdk/apis/base_api.rb +67 -0
  7. data/lib/univapay_client_sdk/apis/cancels_api.rb +293 -0
  8. data/lib/univapay_client_sdk/apis/charges_api.rb +903 -0
  9. data/lib/univapay_client_sdk/apis/merchants_api.rb +57 -0
  10. data/lib/univapay_client_sdk/apis/refunds_api.rb +298 -0
  11. data/lib/univapay_client_sdk/apis/stores_api.rb +126 -0
  12. data/lib/univapay_client_sdk/apis/subscriptions_api.rb +1014 -0
  13. data/lib/univapay_client_sdk/apis/transaction_tokens_api.rb +455 -0
  14. data/lib/univapay_client_sdk/apis/webhooks_api.rb +463 -0
  15. data/lib/univapay_client_sdk/client.rb +116 -0
  16. data/lib/univapay_client_sdk/configuration.rb +178 -0
  17. data/lib/univapay_client_sdk/events/unknown_event.rb +32 -0
  18. data/lib/univapay_client_sdk/events/webhooks/bank_transfer_handler.rb +37 -0
  19. data/lib/univapay_client_sdk/events/webhooks/cancel_handler.rb +37 -0
  20. data/lib/univapay_client_sdk/events/webhooks/charge_finished_handler.rb +37 -0
  21. data/lib/univapay_client_sdk/events/webhooks/charge_updated_handler.rb +37 -0
  22. data/lib/univapay_client_sdk/events/webhooks/customs_handler.rb +37 -0
  23. data/lib/univapay_client_sdk/events/webhooks/recurring_token_deleted_handler.rb +37 -0
  24. data/lib/univapay_client_sdk/events/webhooks/refund_handler.rb +37 -0
  25. data/lib/univapay_client_sdk/events/webhooks/subscription_canceled_handler.rb +37 -0
  26. data/lib/univapay_client_sdk/events/webhooks/subscription_completed_handler.rb +37 -0
  27. data/lib/univapay_client_sdk/events/webhooks/subscription_created_handler.rb +37 -0
  28. data/lib/univapay_client_sdk/events/webhooks/subscription_failure_handler.rb +37 -0
  29. data/lib/univapay_client_sdk/events/webhooks/subscription_payment_handler.rb +37 -0
  30. data/lib/univapay_client_sdk/events/webhooks/subscription_suspended_handler.rb +37 -0
  31. data/lib/univapay_client_sdk/events/webhooks/token_created_handler.rb +37 -0
  32. data/lib/univapay_client_sdk/events/webhooks/token_cvv_auth_check_updated_handler.rb +37 -0
  33. data/lib/univapay_client_sdk/events/webhooks/token_cvv_auth_updated_handler.rb +37 -0
  34. data/lib/univapay_client_sdk/events/webhooks/token_replaced_handler.rb +37 -0
  35. data/lib/univapay_client_sdk/events/webhooks/token_three_ds_updated_handler.rb +37 -0
  36. data/lib/univapay_client_sdk/events/webhooks/token_updated_handler.rb +37 -0
  37. data/lib/univapay_client_sdk/exceptions/api_error_exception.rb +199 -0
  38. data/lib/univapay_client_sdk/exceptions/api_exception.rb +21 -0
  39. data/lib/univapay_client_sdk/http/api_response.rb +19 -0
  40. data/lib/univapay_client_sdk/http/auth/oauth_2.rb +53 -0
  41. data/lib/univapay_client_sdk/http/http_call_back.rb +10 -0
  42. data/lib/univapay_client_sdk/http/http_method_enum.rb +10 -0
  43. data/lib/univapay_client_sdk/http/http_request.rb +10 -0
  44. data/lib/univapay_client_sdk/http/http_response.rb +10 -0
  45. data/lib/univapay_client_sdk/http/proxy_settings.rb +22 -0
  46. data/lib/univapay_client_sdk/logging/configuration/api_logging_configuration.rb +186 -0
  47. data/lib/univapay_client_sdk/logging/sdk_logger.rb +17 -0
  48. data/lib/univapay_client_sdk/models/api_error_detail.rb +87 -0
  49. data/lib/univapay_client_sdk/models/api_error_status.rb +26 -0
  50. data/lib/univapay_client_sdk/models/bank_transfer_event.rb +27 -0
  51. data/lib/univapay_client_sdk/models/bank_transfer_ledger.rb +199 -0
  52. data/lib/univapay_client_sdk/models/bank_transfer_ledger_bank_ledger_type.rb +36 -0
  53. data/lib/univapay_client_sdk/models/bank_transfer_ledger_list.rb +104 -0
  54. data/lib/univapay_client_sdk/models/bank_transfer_ledger_mode.rb +36 -0
  55. data/lib/univapay_client_sdk/models/bank_transfer_payment_status.rb +44 -0
  56. data/lib/univapay_client_sdk/models/bank_transfer_status_data.rb +229 -0
  57. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback.rb +134 -0
  58. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback_extension.rb +75 -0
  59. data/lib/univapay_client_sdk/models/base_bank_transfer_data.rb +100 -0
  60. data/lib/univapay_client_sdk/models/base_konbini_data.rb +99 -0
  61. data/lib/univapay_client_sdk/models/base_konbini_data_convenience_store.rb +60 -0
  62. data/lib/univapay_client_sdk/models/base_model.rb +110 -0
  63. data/lib/univapay_client_sdk/models/base_online_data.rb +123 -0
  64. data/lib/univapay_client_sdk/models/base_online_data_brand.rb +48 -0
  65. data/lib/univapay_client_sdk/models/base_online_data_call_method.rb +52 -0
  66. data/lib/univapay_client_sdk/models/base_online_data_os_type.rb +36 -0
  67. data/lib/univapay_client_sdk/models/base_online_data_user_identifier_source.rb +36 -0
  68. data/lib/univapay_client_sdk/models/cancel.rb +183 -0
  69. data/lib/univapay_client_sdk/models/cancel_create_request.rb +77 -0
  70. data/lib/univapay_client_sdk/models/cancel_event.rb +26 -0
  71. data/lib/univapay_client_sdk/models/cancel_list.rb +94 -0
  72. data/lib/univapay_client_sdk/models/cancel_status.rb +44 -0
  73. data/lib/univapay_client_sdk/models/cancel_update_request.rb +76 -0
  74. data/lib/univapay_client_sdk/models/cancel_webhook_callback.rb +132 -0
  75. data/lib/univapay_client_sdk/models/cancel_webhook_callback_extension.rb +74 -0
  76. data/lib/univapay_client_sdk/models/card_processor_installment_config.rb +89 -0
  77. data/lib/univapay_client_sdk/models/charge.rb +411 -0
  78. data/lib/univapay_client_sdk/models/charge_capture_request.rb +84 -0
  79. data/lib/univapay_client_sdk/models/charge_create_request.rb +179 -0
  80. data/lib/univapay_client_sdk/models/charge_create_request_client_metadata.rb +76 -0
  81. data/lib/univapay_client_sdk/models/charge_create_request_redirect.rb +75 -0
  82. data/lib/univapay_client_sdk/models/charge_create_request_three_ds.rb +88 -0
  83. data/lib/univapay_client_sdk/models/charge_create_request_three_ds_mode.rb +44 -0
  84. data/lib/univapay_client_sdk/models/charge_finished_webhook_callback.rb +131 -0
  85. data/lib/univapay_client_sdk/models/charge_list.rb +104 -0
  86. data/lib/univapay_client_sdk/models/charge_mode.rb +36 -0
  87. data/lib/univapay_client_sdk/models/charge_redirect.rb +96 -0
  88. data/lib/univapay_client_sdk/models/charge_status.rb +56 -0
  89. data/lib/univapay_client_sdk/models/charge_three_ds.rb +97 -0
  90. data/lib/univapay_client_sdk/models/charge_transaction_token_type.rb +40 -0
  91. data/lib/univapay_client_sdk/models/charge_update_request.rb +75 -0
  92. data/lib/univapay_client_sdk/models/charge_updated_webhook_callback.rb +131 -0
  93. data/lib/univapay_client_sdk/models/cursor_direction_query.rb +36 -0
  94. data/lib/univapay_client_sdk/models/customs_declaration_create_request.rb +106 -0
  95. data/lib/univapay_client_sdk/models/customs_declaration_event.rb +27 -0
  96. data/lib/univapay_client_sdk/models/customs_declaration_patch_request.rb +77 -0
  97. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback.rb +135 -0
  98. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback_extension.rb +76 -0
  99. data/lib/univapay_client_sdk/models/customs_declaration_webhook_data.rb +232 -0
  100. data/lib/univapay_client_sdk/models/customs_declaration_webhook_declaration.rb +121 -0
  101. data/lib/univapay_client_sdk/models/customs_declaration_webhook_error.rb +127 -0
  102. data/lib/univapay_client_sdk/models/customs_declaration_webhook_other_error.rb +120 -0
  103. data/lib/univapay_client_sdk/models/customs_declaration_webhook_result.rb +125 -0
  104. data/lib/univapay_client_sdk/models/customs_declaration_webhook_status.rb +44 -0
  105. data/lib/univapay_client_sdk/models/generic_metadata.rb +111 -0
  106. data/lib/univapay_client_sdk/models/installment_fixed_cycles.rb +70 -0
  107. data/lib/univapay_client_sdk/models/installment_plan_type.rb +36 -0
  108. data/lib/univapay_client_sdk/models/issuer_token.rb +177 -0
  109. data/lib/univapay_client_sdk/models/issuer_token_call_method.rb +51 -0
  110. data/lib/univapay_client_sdk/models/issuer_token_payload.rb +105 -0
  111. data/lib/univapay_client_sdk/models/issuer_token_payment_type.rb +36 -0
  112. data/lib/univapay_client_sdk/models/merchant.rb +179 -0
  113. data/lib/univapay_client_sdk/models/merchant_webhook_bank_transfer_configuration.rb +342 -0
  114. data/lib/univapay_client_sdk/models/merchant_webhook_card_brand_percent_fees.rb +167 -0
  115. data/lib/univapay_client_sdk/models/merchant_webhook_card_configuration.rb +301 -0
  116. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_configuration.rb +87 -0
  117. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_toggle.rb +77 -0
  118. data/lib/univapay_client_sdk/models/merchant_webhook_configuration.rb +505 -0
  119. data/lib/univapay_client_sdk/models/merchant_webhook_convenience_configuration.rb +88 -0
  120. data/lib/univapay_client_sdk/models/merchant_webhook_customer_management_configuration.rb +99 -0
  121. data/lib/univapay_client_sdk/models/merchant_webhook_installment_plan_configuration.rb +139 -0
  122. data/lib/univapay_client_sdk/models/merchant_webhook_limit_charge_by_card_configuration.rb +88 -0
  123. data/lib/univapay_client_sdk/models/merchant_webhook_limit_refund_by_sales_configuration.rb +100 -0
  124. data/lib/univapay_client_sdk/models/merchant_webhook_money_amount.rb +85 -0
  125. data/lib/univapay_client_sdk/models/merchant_webhook_online_configuration.rb +77 -0
  126. data/lib/univapay_client_sdk/models/merchant_webhook_paidy_configuration.rb +77 -0
  127. data/lib/univapay_client_sdk/models/merchant_webhook_qr_merchant_configuration.rb +77 -0
  128. data/lib/univapay_client_sdk/models/merchant_webhook_qr_scan_configuration.rb +93 -0
  129. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_cvv_confirmation_config.rb +97 -0
  130. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_token_configuration.rb +109 -0
  131. data/lib/univapay_client_sdk/models/merchant_webhook_security_configuration.rb +234 -0
  132. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_configuration.rb +138 -0
  133. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_plan_configuration.rb +138 -0
  134. data/lib/univapay_client_sdk/models/merchant_webhook_transfer_schedule_configuration.rb +159 -0
  135. data/lib/univapay_client_sdk/models/merchant_webhook_user_transactions_configuration.rb +349 -0
  136. data/lib/univapay_client_sdk/models/mode_query.rb +36 -0
  137. data/lib/univapay_client_sdk/models/payment_error.rb +178 -0
  138. data/lib/univapay_client_sdk/models/plan_settings_type.rb +36 -0
  139. data/lib/univapay_client_sdk/models/recurring_token_deleted_webhook_callback.rb +132 -0
  140. data/lib/univapay_client_sdk/models/refund.rb +240 -0
  141. data/lib/univapay_client_sdk/models/refund_create_request.rb +118 -0
  142. data/lib/univapay_client_sdk/models/refund_event.rb +26 -0
  143. data/lib/univapay_client_sdk/models/refund_list.rb +104 -0
  144. data/lib/univapay_client_sdk/models/refund_reason_request.rb +42 -0
  145. data/lib/univapay_client_sdk/models/refund_reason_response.rb +62 -0
  146. data/lib/univapay_client_sdk/models/refund_status.rb +47 -0
  147. data/lib/univapay_client_sdk/models/refund_update_request.rb +99 -0
  148. data/lib/univapay_client_sdk/models/refund_webhook_callback.rb +132 -0
  149. data/lib/univapay_client_sdk/models/refund_webhook_callback_extension.rb +74 -0
  150. data/lib/univapay_client_sdk/models/restrict_ip_after_failed_charge_config.rb +99 -0
  151. data/lib/univapay_client_sdk/models/store.rb +119 -0
  152. data/lib/univapay_client_sdk/models/store_list.rb +104 -0
  153. data/lib/univapay_client_sdk/models/store_list_item.rb +114 -0
  154. data/lib/univapay_client_sdk/models/subscription.rb +310 -0
  155. data/lib/univapay_client_sdk/models/subscription_canceled_webhook_callback.rb +132 -0
  156. data/lib/univapay_client_sdk/models/subscription_completed_webhook_callback.rb +132 -0
  157. data/lib/univapay_client_sdk/models/subscription_create_request.rb +216 -0
  158. data/lib/univapay_client_sdk/models/subscription_created_webhook_callback.rb +132 -0
  159. data/lib/univapay_client_sdk/models/subscription_failure_webhook_callback.rb +132 -0
  160. data/lib/univapay_client_sdk/models/subscription_installment_plan.rb +86 -0
  161. data/lib/univapay_client_sdk/models/subscription_list.rb +104 -0
  162. data/lib/univapay_client_sdk/models/subscription_list_item.rb +352 -0
  163. data/lib/univapay_client_sdk/models/subscription_next_payment.rb +222 -0
  164. data/lib/univapay_client_sdk/models/subscription_patch_payment_request.rb +117 -0
  165. data/lib/univapay_client_sdk/models/subscription_patch_token_request.rb +79 -0
  166. data/lib/univapay_client_sdk/models/subscription_payment.rb +185 -0
  167. data/lib/univapay_client_sdk/models/subscription_payment_list.rb +94 -0
  168. data/lib/univapay_client_sdk/models/subscription_payment_webhook_callback.rb +132 -0
  169. data/lib/univapay_client_sdk/models/subscription_period.rb +56 -0
  170. data/lib/univapay_client_sdk/models/subscription_plan_settings.rb +98 -0
  171. data/lib/univapay_client_sdk/models/subscription_schedule_settings.rb +132 -0
  172. data/lib/univapay_client_sdk/models/subscription_status.rb +56 -0
  173. data/lib/univapay_client_sdk/models/subscription_suspend_request.rb +79 -0
  174. data/lib/univapay_client_sdk/models/subscription_suspended_webhook_callback.rb +132 -0
  175. data/lib/univapay_client_sdk/models/subscription_terminate_with_status.rb +36 -0
  176. data/lib/univapay_client_sdk/models/subscription_termination_mode.rb +36 -0
  177. data/lib/univapay_client_sdk/models/subscription_update_next_payment.rb +104 -0
  178. data/lib/univapay_client_sdk/models/subscription_update_request.rb +134 -0
  179. data/lib/univapay_client_sdk/models/subscription_update_schedule_settings.rb +110 -0
  180. data/lib/univapay_client_sdk/models/subscription_update_status.rb +37 -0
  181. data/lib/univapay_client_sdk/models/subscription_user_data.rb +134 -0
  182. data/lib/univapay_client_sdk/models/suspend_schedule_settings.rb +78 -0
  183. data/lib/univapay_client_sdk/models/three_ds_issuer_token.rb +116 -0
  184. data/lib/univapay_client_sdk/models/three_ds_issuer_token_call_method.rb +26 -0
  185. data/lib/univapay_client_sdk/models/three_ds_issuer_token_payment_type.rb +26 -0
  186. data/lib/univapay_client_sdk/models/token_create_bank_transfer_data.rb +122 -0
  187. data/lib/univapay_client_sdk/models/token_create_card_data.rb +231 -0
  188. data/lib/univapay_client_sdk/models/token_create_card_data_cvv_authorize.rb +95 -0
  189. data/lib/univapay_client_sdk/models/token_create_card_data_three_ds.rb +97 -0
  190. data/lib/univapay_client_sdk/models/token_create_konbini_data.rb +147 -0
  191. data/lib/univapay_client_sdk/models/token_create_online_data.rb +142 -0
  192. data/lib/univapay_client_sdk/models/token_create_phone_number.rb +104 -0
  193. data/lib/univapay_client_sdk/models/token_created_webhook_callback.rb +131 -0
  194. data/lib/univapay_client_sdk/models/token_cvv_auth_check_updated_webhook_callback.rb +132 -0
  195. data/lib/univapay_client_sdk/models/token_cvv_auth_updated_webhook_callback.rb +132 -0
  196. data/lib/univapay_client_sdk/models/token_replaced_webhook_callback.rb +131 -0
  197. data/lib/univapay_client_sdk/models/token_response_bank_transfer_data.rb +181 -0
  198. data/lib/univapay_client_sdk/models/token_response_card_data.rb +129 -0
  199. data/lib/univapay_client_sdk/models/token_response_card_data_billing.rb +153 -0
  200. data/lib/univapay_client_sdk/models/token_response_card_data_card.rb +187 -0
  201. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize.rb +132 -0
  202. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize_check.rb +118 -0
  203. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds.rb +142 -0
  204. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds_status.rb +48 -0
  205. data/lib/univapay_client_sdk/models/token_response_konbini_data.rb +135 -0
  206. data/lib/univapay_client_sdk/models/token_response_online_data.rb +158 -0
  207. data/lib/univapay_client_sdk/models/token_response_phone_number.rb +96 -0
  208. data/lib/univapay_client_sdk/models/token_three_ds_updated_webhook_callback.rb +132 -0
  209. data/lib/univapay_client_sdk/models/token_updated_webhook_callback.rb +131 -0
  210. data/lib/univapay_client_sdk/models/transaction_token.rb +250 -0
  211. data/lib/univapay_client_sdk/models/transaction_token_create_request.rb +161 -0
  212. data/lib/univapay_client_sdk/models/transaction_token_create_request_metadata.rb +124 -0
  213. data/lib/univapay_client_sdk/models/transaction_token_create_request_payment_type.rb +44 -0
  214. data/lib/univapay_client_sdk/models/transaction_token_create_request_type.rb +40 -0
  215. data/lib/univapay_client_sdk/models/transaction_token_list.rb +104 -0
  216. data/lib/univapay_client_sdk/models/transaction_token_list_item.rb +204 -0
  217. data/lib/univapay_client_sdk/models/transaction_token_list_item_user_data.rb +96 -0
  218. data/lib/univapay_client_sdk/models/transaction_token_mode.rb +36 -0
  219. data/lib/univapay_client_sdk/models/transaction_token_payment_type.rb +48 -0
  220. data/lib/univapay_client_sdk/models/transaction_token_type.rb +40 -0
  221. data/lib/univapay_client_sdk/models/transaction_token_update_request.rb +95 -0
  222. data/lib/univapay_client_sdk/models/transaction_token_update_request_data.rb +184 -0
  223. data/lib/univapay_client_sdk/models/transaction_token_update_request_data_phone_number.rb +86 -0
  224. data/lib/univapay_client_sdk/models/webhook.rb +191 -0
  225. data/lib/univapay_client_sdk/models/webhook_callback_envelope.rb +98 -0
  226. data/lib/univapay_client_sdk/models/webhook_create_request.rb +97 -0
  227. data/lib/univapay_client_sdk/models/webhook_event.rb +166 -0
  228. data/lib/univapay_client_sdk/models/webhook_event_list.rb +94 -0
  229. data/lib/univapay_client_sdk/models/webhook_list.rb +94 -0
  230. data/lib/univapay_client_sdk/models/webhook_trigger.rb +104 -0
  231. data/lib/univapay_client_sdk/models/webhook_update_request.rb +108 -0
  232. data/lib/univapay_client_sdk/utilities/date_time_helper.rb +11 -0
  233. data/lib/univapay_client_sdk/utilities/file_wrapper.rb +28 -0
  234. data/lib/univapay_client_sdk/utilities/union_type_lookup.rb +242 -0
  235. data/lib/univapay_client_sdk.rb +322 -0
  236. data/test/apis/api_test_base.rb +23 -0
  237. data/test/apis/test_cancels_api.rb +162 -0
  238. data/test/apis/test_charges_api.rb +564 -0
  239. data/test/apis/test_merchants_api.rb +50 -0
  240. data/test/apis/test_refunds_api.rb +172 -0
  241. data/test/apis/test_stores_api.rb +86 -0
  242. data/test/apis/test_subscriptions_api.rb +579 -0
  243. data/test/apis/test_transaction_tokens_api.rb +305 -0
  244. data/test/apis/test_webhooks_api.rb +245 -0
  245. data/test/events/webhooks/test_bank_transfer_handler.rb +95 -0
  246. data/test/events/webhooks/test_cancel_handler.rb +90 -0
  247. data/test/events/webhooks/test_charge_finished_handler.rb +95 -0
  248. data/test/events/webhooks/test_charge_updated_handler.rb +95 -0
  249. data/test/events/webhooks/test_customs_handler.rb +100 -0
  250. data/test/events/webhooks/test_recurring_token_deleted_handler.rb +92 -0
  251. data/test/events/webhooks/test_refund_handler.rb +95 -0
  252. data/test/events/webhooks/test_subscription_canceled_handler.rb +101 -0
  253. data/test/events/webhooks/test_subscription_completed_handler.rb +101 -0
  254. data/test/events/webhooks/test_subscription_created_handler.rb +101 -0
  255. data/test/events/webhooks/test_subscription_failure_handler.rb +101 -0
  256. data/test/events/webhooks/test_subscription_payment_handler.rb +101 -0
  257. data/test/events/webhooks/test_subscription_suspended_handler.rb +101 -0
  258. data/test/events/webhooks/test_token_created_handler.rb +92 -0
  259. data/test/events/webhooks/test_token_cvv_auth_check_updated_handler.rb +92 -0
  260. data/test/events/webhooks/test_token_cvv_auth_updated_handler.rb +92 -0
  261. data/test/events/webhooks/test_token_replaced_handler.rb +92 -0
  262. data/test/events/webhooks/test_token_three_ds_updated_handler.rb +92 -0
  263. data/test/events/webhooks/test_token_updated_handler.rb +92 -0
  264. data/test/framework_integrations/rails_app_test_helper.rb +14 -0
  265. data/test/framework_integrations/webhooks/apps/hanami_charge_updated_app.rb +61 -0
  266. data/test/framework_integrations/webhooks/apps/rails_charge_updated_app.rb +24 -0
  267. data/test/framework_integrations/webhooks/apps/sinatra_charge_updated_app.rb +27 -0
  268. data/test/framework_integrations/webhooks/test/test_hanami_charge_updated_app.rb +57 -0
  269. data/test/framework_integrations/webhooks/test/test_rails_charge_updated_app.rb +57 -0
  270. data/test/framework_integrations/webhooks/test/test_sinatra_charge_updated_app.rb +58 -0
  271. data/test/http_response_catcher.rb +19 -0
  272. metadata +397 -0
@@ -0,0 +1,104 @@
1
+ # univapay_client_sdk
2
+ #
3
+ # This file was automatically generated for Univapay
4
+ # by APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ module UnivapayClientSdk
7
+ # Paginated store search result.
8
+ class StoreList < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Store rows matching the current filter set.
13
+ # @return [Array[StoreListItem]]
14
+ attr_accessor :items
15
+
16
+ # Whether another page is available.
17
+ # @return [TrueClass | FalseClass]
18
+ attr_accessor :has_more
19
+
20
+ # Total number of matching stores when available.
21
+ # @return [Integer]
22
+ attr_accessor :total_hits
23
+
24
+ # A mapping from model property names to API property names.
25
+ def self.names
26
+ @_hash = {} if @_hash.nil?
27
+ @_hash['items'] = 'items'
28
+ @_hash['has_more'] = 'has_more'
29
+ @_hash['total_hits'] = 'total_hits'
30
+ @_hash
31
+ end
32
+
33
+ # An array for optional fields
34
+ def self.optionals
35
+ %w[
36
+ items
37
+ has_more
38
+ total_hits
39
+ ]
40
+ end
41
+
42
+ # An array for nullable fields
43
+ def self.nullables
44
+ []
45
+ end
46
+
47
+ def initialize(items: SKIP, has_more: SKIP, total_hits: SKIP,
48
+ additional_properties: nil)
49
+ # Add additional model properties to the instance
50
+ additional_properties = {} if additional_properties.nil?
51
+
52
+ @items = items unless items == SKIP
53
+ @has_more = has_more unless has_more == SKIP
54
+ @total_hits = total_hits unless total_hits == SKIP
55
+ @additional_properties = additional_properties
56
+ end
57
+
58
+ # Creates an instance of the object from a hash.
59
+ def self.from_hash(hash)
60
+ return nil unless hash
61
+
62
+ # Extract variables from the hash.
63
+ # Parameter is an array, so we need to iterate through it
64
+ items = nil
65
+ unless hash['items'].nil?
66
+ items = []
67
+ hash['items'].each do |structure|
68
+ items << (StoreListItem.from_hash(structure) if structure)
69
+ end
70
+ end
71
+
72
+ items = SKIP unless hash.key?('items')
73
+ has_more = hash.key?('has_more') ? hash['has_more'] : SKIP
74
+ total_hits = hash.key?('total_hits') ? hash['total_hits'] : SKIP
75
+
76
+ # Create a new hash for additional properties, removing known properties.
77
+ new_hash = hash.reject { |k, _| names.value?(k) }
78
+
79
+ additional_properties = APIHelper.get_additional_properties(
80
+ new_hash, proc { |value| value }
81
+ )
82
+
83
+ # Create object from extracted values.
84
+ StoreList.new(items: items,
85
+ has_more: has_more,
86
+ total_hits: total_hits,
87
+ additional_properties: additional_properties)
88
+ end
89
+
90
+ # Provides a human-readable string representation of the object.
91
+ def to_s
92
+ class_name = self.class.name.split('::').last
93
+ "<#{class_name} items: #{@items}, has_more: #{@has_more}, total_hits: #{@total_hits},"\
94
+ " additional_properties: #{@additional_properties}>"
95
+ end
96
+
97
+ # Provides a debugging-friendly string with detailed object information.
98
+ def inspect
99
+ class_name = self.class.name.split('::').last
100
+ "<#{class_name} items: #{@items.inspect}, has_more: #{@has_more.inspect}, total_hits:"\
101
+ " #{@total_hits.inspect}, additional_properties: #{@additional_properties}>"
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,114 @@
1
+ # univapay_client_sdk
2
+ #
3
+ # This file was automatically generated for Univapay
4
+ # by APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module UnivapayClientSdk
8
+ # Store row returned by store list queries.
9
+ class StoreListItem < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Store identifier.
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # Store display name.
18
+ # @return [String]
19
+ attr_accessor :name
20
+
21
+ # Merchant display name associated with the store row.
22
+ # @return [String]
23
+ attr_accessor :merchant_name
24
+
25
+ # Timestamp when the store was created.
26
+ # @return [DateTime]
27
+ attr_accessor :created_on
28
+
29
+ # A mapping from model property names to API property names.
30
+ def self.names
31
+ @_hash = {} if @_hash.nil?
32
+ @_hash['id'] = 'id'
33
+ @_hash['name'] = 'name'
34
+ @_hash['merchant_name'] = 'merchant_name'
35
+ @_hash['created_on'] = 'created_on'
36
+ @_hash
37
+ end
38
+
39
+ # An array for optional fields
40
+ def self.optionals
41
+ %w[
42
+ id
43
+ name
44
+ merchant_name
45
+ created_on
46
+ ]
47
+ end
48
+
49
+ # An array for nullable fields
50
+ def self.nullables
51
+ []
52
+ end
53
+
54
+ def initialize(id: SKIP, name: SKIP, merchant_name: SKIP, created_on: SKIP,
55
+ additional_properties: nil)
56
+ # Add additional model properties to the instance
57
+ additional_properties = {} if additional_properties.nil?
58
+
59
+ @id = id unless id == SKIP
60
+ @name = name unless name == SKIP
61
+ @merchant_name = merchant_name unless merchant_name == SKIP
62
+ @created_on = created_on unless created_on == SKIP
63
+ @additional_properties = additional_properties
64
+ end
65
+
66
+ # Creates an instance of the object from a hash.
67
+ def self.from_hash(hash)
68
+ return nil unless hash
69
+
70
+ # Extract variables from the hash.
71
+ id = hash.key?('id') ? hash['id'] : SKIP
72
+ name = hash.key?('name') ? hash['name'] : SKIP
73
+ merchant_name = hash.key?('merchant_name') ? hash['merchant_name'] : SKIP
74
+ created_on = if hash.key?('created_on')
75
+ (DateTimeHelper.from_rfc3339(hash['created_on']) if hash['created_on'])
76
+ else
77
+ SKIP
78
+ end
79
+
80
+ # Create a new hash for additional properties, removing known properties.
81
+ new_hash = hash.reject { |k, _| names.value?(k) }
82
+
83
+ additional_properties = APIHelper.get_additional_properties(
84
+ new_hash, proc { |value| value }
85
+ )
86
+
87
+ # Create object from extracted values.
88
+ StoreListItem.new(id: id,
89
+ name: name,
90
+ merchant_name: merchant_name,
91
+ created_on: created_on,
92
+ additional_properties: additional_properties)
93
+ end
94
+
95
+ def to_custom_created_on
96
+ DateTimeHelper.to_rfc3339(created_on)
97
+ end
98
+
99
+ # Provides a human-readable string representation of the object.
100
+ def to_s
101
+ class_name = self.class.name.split('::').last
102
+ "<#{class_name} id: #{@id}, name: #{@name}, merchant_name: #{@merchant_name}, created_on:"\
103
+ " #{@created_on}, additional_properties: #{@additional_properties}>"
104
+ end
105
+
106
+ # Provides a debugging-friendly string with detailed object information.
107
+ def inspect
108
+ class_name = self.class.name.split('::').last
109
+ "<#{class_name} id: #{@id.inspect}, name: #{@name.inspect}, merchant_name:"\
110
+ " #{@merchant_name.inspect}, created_on: #{@created_on.inspect}, additional_properties:"\
111
+ " #{@additional_properties}>"
112
+ end
113
+ end
114
+ end
@@ -0,0 +1,310 @@
1
+ # univapay_client_sdk
2
+ #
3
+ # This file was automatically generated for Univapay
4
+ # by APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module UnivapayClientSdk
8
+ # The Subscription object represents a recurring payment schedule.
9
+ class Subscription < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Unique identifier.
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # Store identifier.
18
+ # @return [UUID | String]
19
+ attr_accessor :store_id
20
+
21
+ # Transaction token identifier.
22
+ # @return [UUID | String]
23
+ attr_accessor :transaction_token_id
24
+
25
+ # Amount in the smallest currency unit.
26
+ # @return [Integer]
27
+ attr_accessor :amount
28
+
29
+ # ISO-4217 currency code.
30
+ # @return [String]
31
+ attr_accessor :currency
32
+
33
+ # Amount formatted for display.
34
+ # @return [Float]
35
+ attr_accessor :amount_formatted
36
+
37
+ # Initial amount in the smallest currency unit.
38
+ # @return [Integer]
39
+ attr_accessor :initial_amount
40
+
41
+ # Initial amount formatted for display.
42
+ # @return [Float]
43
+ attr_accessor :initial_amount_formatted
44
+
45
+ # Timestamp when recurring cycles begin.
46
+ # @return [DateTime]
47
+ attr_accessor :subsequent_cycles_start
48
+
49
+ # Schedule settings applied to a subscription.
50
+ # @return [SubscriptionScheduleSettings]
51
+ attr_accessor :schedule_settings
52
+
53
+ # Whether only direct currency processing is allowed.
54
+ # @return [TrueClass | FalseClass]
55
+ attr_accessor :only_direct_currency
56
+
57
+ # ISO-8601 Duration (e.g., P3D).
58
+ # @return [String]
59
+ attr_accessor :first_charge_capture_after
60
+
61
+ # Whether the first charge is authorization-only.
62
+ # @return [TrueClass | FalseClass]
63
+ attr_accessor :first_charge_authorization_only
64
+
65
+ # Subscription Status schema.
66
+ # @return [SubscriptionStatus]
67
+ attr_accessor :status
68
+
69
+ # A free-form dictionary for custom metadata.
70
+ # @return [GenericMetadata]
71
+ attr_accessor :metadata
72
+
73
+ # Charge Mode schema.
74
+ # @return [ChargeMode]
75
+ attr_accessor :mode
76
+
77
+ # Timestamp when the resource was created.
78
+ # @return [DateTime]
79
+ attr_accessor :created_on
80
+
81
+ # Subscription Period schema.
82
+ # @return [SubscriptionPeriod]
83
+ attr_accessor :period
84
+
85
+ # Next scheduled payment details for a subscription.
86
+ # @return [SubscriptionNextPayment]
87
+ attr_accessor :next_payment
88
+
89
+ # A mapping from model property names to API property names.
90
+ def self.names
91
+ @_hash = {} if @_hash.nil?
92
+ @_hash['id'] = 'id'
93
+ @_hash['store_id'] = 'store_id'
94
+ @_hash['transaction_token_id'] = 'transaction_token_id'
95
+ @_hash['amount'] = 'amount'
96
+ @_hash['currency'] = 'currency'
97
+ @_hash['amount_formatted'] = 'amount_formatted'
98
+ @_hash['initial_amount'] = 'initial_amount'
99
+ @_hash['initial_amount_formatted'] = 'initial_amount_formatted'
100
+ @_hash['subsequent_cycles_start'] = 'subsequent_cycles_start'
101
+ @_hash['schedule_settings'] = 'schedule_settings'
102
+ @_hash['only_direct_currency'] = 'only_direct_currency'
103
+ @_hash['first_charge_capture_after'] = 'first_charge_capture_after'
104
+ @_hash['first_charge_authorization_only'] =
105
+ 'first_charge_authorization_only'
106
+ @_hash['status'] = 'status'
107
+ @_hash['metadata'] = 'metadata'
108
+ @_hash['mode'] = 'mode'
109
+ @_hash['created_on'] = 'created_on'
110
+ @_hash['period'] = 'period'
111
+ @_hash['next_payment'] = 'next_payment'
112
+ @_hash
113
+ end
114
+
115
+ # An array for optional fields
116
+ def self.optionals
117
+ %w[
118
+ id
119
+ store_id
120
+ transaction_token_id
121
+ amount
122
+ currency
123
+ amount_formatted
124
+ initial_amount
125
+ initial_amount_formatted
126
+ subsequent_cycles_start
127
+ schedule_settings
128
+ only_direct_currency
129
+ first_charge_capture_after
130
+ first_charge_authorization_only
131
+ status
132
+ metadata
133
+ mode
134
+ created_on
135
+ period
136
+ next_payment
137
+ ]
138
+ end
139
+
140
+ # An array for nullable fields
141
+ def self.nullables
142
+ %w[
143
+ initial_amount
144
+ initial_amount_formatted
145
+ subsequent_cycles_start
146
+ first_charge_capture_after
147
+ ]
148
+ end
149
+
150
+ def initialize(id: SKIP, store_id: SKIP, transaction_token_id: SKIP,
151
+ amount: SKIP, currency: SKIP, amount_formatted: SKIP,
152
+ initial_amount: SKIP, initial_amount_formatted: SKIP,
153
+ subsequent_cycles_start: SKIP, schedule_settings: SKIP,
154
+ only_direct_currency: SKIP, first_charge_capture_after: SKIP,
155
+ first_charge_authorization_only: SKIP, status: SKIP,
156
+ metadata: SKIP, mode: SKIP, created_on: SKIP, period: SKIP,
157
+ next_payment: SKIP, additional_properties: nil)
158
+ # Add additional model properties to the instance
159
+ additional_properties = {} if additional_properties.nil?
160
+
161
+ @id = id unless id == SKIP
162
+ @store_id = store_id unless store_id == SKIP
163
+ @transaction_token_id = transaction_token_id unless transaction_token_id == SKIP
164
+ @amount = amount unless amount == SKIP
165
+ @currency = currency unless currency == SKIP
166
+ @amount_formatted = amount_formatted unless amount_formatted == SKIP
167
+ @initial_amount = initial_amount unless initial_amount == SKIP
168
+ @initial_amount_formatted = initial_amount_formatted unless initial_amount_formatted == SKIP
169
+ @subsequent_cycles_start = subsequent_cycles_start unless subsequent_cycles_start == SKIP
170
+ @schedule_settings = schedule_settings unless schedule_settings == SKIP
171
+ @only_direct_currency = only_direct_currency unless only_direct_currency == SKIP
172
+ unless first_charge_capture_after == SKIP
173
+ @first_charge_capture_after =
174
+ first_charge_capture_after
175
+ end
176
+ unless first_charge_authorization_only == SKIP
177
+ @first_charge_authorization_only =
178
+ first_charge_authorization_only
179
+ end
180
+ @status = status unless status == SKIP
181
+ @metadata = metadata unless metadata == SKIP
182
+ @mode = mode unless mode == SKIP
183
+ @created_on = created_on unless created_on == SKIP
184
+ @period = period unless period == SKIP
185
+ @next_payment = next_payment unless next_payment == SKIP
186
+ @additional_properties = additional_properties
187
+ end
188
+
189
+ # Creates an instance of the object from a hash.
190
+ def self.from_hash(hash)
191
+ return nil unless hash
192
+
193
+ # Extract variables from the hash.
194
+ id = hash.key?('id') ? hash['id'] : SKIP
195
+ store_id = hash.key?('store_id') ? hash['store_id'] : SKIP
196
+ transaction_token_id =
197
+ hash.key?('transaction_token_id') ? hash['transaction_token_id'] : SKIP
198
+ amount = hash.key?('amount') ? hash['amount'] : SKIP
199
+ currency = hash.key?('currency') ? hash['currency'] : SKIP
200
+ amount_formatted =
201
+ hash.key?('amount_formatted') ? hash['amount_formatted'] : SKIP
202
+ initial_amount =
203
+ hash.key?('initial_amount') ? hash['initial_amount'] : SKIP
204
+ initial_amount_formatted =
205
+ hash.key?('initial_amount_formatted') ? hash['initial_amount_formatted'] : SKIP
206
+ subsequent_cycles_start = if hash.key?('subsequent_cycles_start')
207
+ (DateTimeHelper.from_rfc3339(hash['subsequent_cycles_start']) if hash['subsequent_cycles_start'])
208
+ else
209
+ SKIP
210
+ end
211
+ schedule_settings = SubscriptionScheduleSettings.from_hash(hash['schedule_settings']) if
212
+ hash['schedule_settings']
213
+ only_direct_currency =
214
+ hash.key?('only_direct_currency') ? hash['only_direct_currency'] : SKIP
215
+ first_charge_capture_after =
216
+ hash.key?('first_charge_capture_after') ? hash['first_charge_capture_after'] : SKIP
217
+ first_charge_authorization_only =
218
+ hash.key?('first_charge_authorization_only') ? hash['first_charge_authorization_only'] : SKIP
219
+ status = hash.key?('status') ? hash['status'] : SKIP
220
+ metadata = GenericMetadata.from_hash(hash['metadata']) if hash['metadata']
221
+ mode = hash.key?('mode') ? hash['mode'] : SKIP
222
+ created_on = if hash.key?('created_on')
223
+ (DateTimeHelper.from_rfc3339(hash['created_on']) if hash['created_on'])
224
+ else
225
+ SKIP
226
+ end
227
+ period = hash.key?('period') ? hash['period'] : SKIP
228
+ next_payment = SubscriptionNextPayment.from_hash(hash['next_payment']) if
229
+ hash['next_payment']
230
+
231
+ # Create a new hash for additional properties, removing known properties.
232
+ new_hash = hash.reject { |k, _| names.value?(k) }
233
+
234
+ additional_properties = APIHelper.get_additional_properties(
235
+ new_hash, proc { |value| value }
236
+ )
237
+
238
+ # Create object from extracted values.
239
+ Subscription.new(id: id,
240
+ store_id: store_id,
241
+ transaction_token_id: transaction_token_id,
242
+ amount: amount,
243
+ currency: currency,
244
+ amount_formatted: amount_formatted,
245
+ initial_amount: initial_amount,
246
+ initial_amount_formatted: initial_amount_formatted,
247
+ subsequent_cycles_start: subsequent_cycles_start,
248
+ schedule_settings: schedule_settings,
249
+ only_direct_currency: only_direct_currency,
250
+ first_charge_capture_after: first_charge_capture_after,
251
+ first_charge_authorization_only: first_charge_authorization_only,
252
+ status: status,
253
+ metadata: metadata,
254
+ mode: mode,
255
+ created_on: created_on,
256
+ period: period,
257
+ next_payment: next_payment,
258
+ additional_properties: additional_properties)
259
+ end
260
+
261
+ def to_custom_subsequent_cycles_start
262
+ DateTimeHelper.to_rfc3339(subsequent_cycles_start)
263
+ end
264
+
265
+ def to_custom_created_on
266
+ DateTimeHelper.to_rfc3339(created_on)
267
+ end
268
+
269
+ # Validates an instance of the object from a given value.
270
+ # @param [Subscription | Hash] The value against the validation is performed.
271
+ def self.validate(value)
272
+ return true if value.instance_of? self
273
+
274
+ return false unless value.instance_of? Hash
275
+
276
+ true
277
+ end
278
+
279
+ # Provides a human-readable string representation of the object.
280
+ def to_s
281
+ class_name = self.class.name.split('::').last
282
+ "<#{class_name} id: #{@id}, store_id: #{@store_id}, transaction_token_id:"\
283
+ " #{@transaction_token_id}, amount: #{@amount}, currency: #{@currency}, amount_formatted:"\
284
+ " #{@amount_formatted}, initial_amount: #{@initial_amount}, initial_amount_formatted:"\
285
+ " #{@initial_amount_formatted}, subsequent_cycles_start: #{@subsequent_cycles_start},"\
286
+ " schedule_settings: #{@schedule_settings}, only_direct_currency: #{@only_direct_currency},"\
287
+ " first_charge_capture_after: #{@first_charge_capture_after},"\
288
+ " first_charge_authorization_only: #{@first_charge_authorization_only}, status: #{@status},"\
289
+ " metadata: #{@metadata}, mode: #{@mode}, created_on: #{@created_on}, period: #{@period},"\
290
+ " next_payment: #{@next_payment}, additional_properties: #{@additional_properties}>"
291
+ end
292
+
293
+ # Provides a debugging-friendly string with detailed object information.
294
+ def inspect
295
+ class_name = self.class.name.split('::').last
296
+ "<#{class_name} id: #{@id.inspect}, store_id: #{@store_id.inspect}, transaction_token_id:"\
297
+ " #{@transaction_token_id.inspect}, amount: #{@amount.inspect}, currency:"\
298
+ " #{@currency.inspect}, amount_formatted: #{@amount_formatted.inspect}, initial_amount:"\
299
+ " #{@initial_amount.inspect}, initial_amount_formatted:"\
300
+ " #{@initial_amount_formatted.inspect}, subsequent_cycles_start:"\
301
+ " #{@subsequent_cycles_start.inspect}, schedule_settings: #{@schedule_settings.inspect},"\
302
+ " only_direct_currency: #{@only_direct_currency.inspect}, first_charge_capture_after:"\
303
+ " #{@first_charge_capture_after.inspect}, first_charge_authorization_only:"\
304
+ " #{@first_charge_authorization_only.inspect}, status: #{@status.inspect}, metadata:"\
305
+ " #{@metadata.inspect}, mode: #{@mode.inspect}, created_on: #{@created_on.inspect}, period:"\
306
+ " #{@period.inspect}, next_payment: #{@next_payment.inspect}, additional_properties:"\
307
+ " #{@additional_properties}>"
308
+ end
309
+ end
310
+ end
@@ -0,0 +1,132 @@
1
+ # univapay_client_sdk
2
+ #
3
+ # This file was automatically generated for Univapay
4
+ # by APIMATIC v3.0 ( https://www.apimatic.io ).
5
+
6
+ require 'date'
7
+ module UnivapayClientSdk
8
+ # Webhook envelope for the subscription_canceled event.
9
+ class SubscriptionCanceledWebhookCallback < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Unique ID of this webhook delivery.
14
+ # @return [UUID | String]
15
+ attr_accessor :id
16
+
17
+ # Event type discriminator — always `subscription_canceled` for this
18
+ # callback.
19
+ # @return [String]
20
+ attr_reader :event
21
+
22
+ # The Subscription object represents a recurring payment schedule.
23
+ # @return [Subscription]
24
+ attr_accessor :data
25
+
26
+ # Timestamp when the event was fired.
27
+ # @return [DateTime]
28
+ attr_accessor :created_on
29
+
30
+ # A mapping from model property names to API property names.
31
+ def self.names
32
+ @_hash = {} if @_hash.nil?
33
+ @_hash['id'] = 'id'
34
+ @_hash['event'] = 'event'
35
+ @_hash['data'] = 'data'
36
+ @_hash['created_on'] = 'created_on'
37
+ @_hash
38
+ end
39
+
40
+ # An array for optional fields
41
+ def self.optionals
42
+ %w[
43
+ data
44
+ ]
45
+ end
46
+
47
+ # An array for nullable fields
48
+ def self.nullables
49
+ []
50
+ end
51
+
52
+ def initialize(id:, created_on:, data: SKIP, additional_properties: nil)
53
+ # Add additional model properties to the instance
54
+ additional_properties = {} if additional_properties.nil?
55
+
56
+ @id = id
57
+ @event = 'subscription_canceled'
58
+ @data = data unless data == SKIP
59
+ @created_on = created_on
60
+ @additional_properties = additional_properties
61
+ end
62
+
63
+ # Creates an instance of the object from a hash.
64
+ def self.from_hash(hash)
65
+ return nil unless hash
66
+
67
+ # Extract variables from the hash.
68
+ id = hash.key?('id') ? hash['id'] : nil
69
+ created_on = if hash.key?('created_on')
70
+ (DateTimeHelper.from_rfc3339(hash['created_on']) if hash['created_on'])
71
+ end
72
+ data = Subscription.from_hash(hash['data']) if hash['data']
73
+
74
+ # Create a new hash for additional properties, removing known properties.
75
+ new_hash = hash.reject { |k, _| names.value?(k) }
76
+
77
+ additional_properties = APIHelper.get_additional_properties(
78
+ new_hash, proc { |value| value }
79
+ )
80
+
81
+ # Create object from extracted values.
82
+ SubscriptionCanceledWebhookCallback.new(id: id,
83
+ created_on: created_on,
84
+ data: data,
85
+ additional_properties: additional_properties)
86
+ end
87
+
88
+ def to_custom_created_on
89
+ DateTimeHelper.to_rfc3339(created_on)
90
+ end
91
+
92
+ # Validates an instance of the object from a given value.
93
+ # @param [SubscriptionCanceledWebhookCallback | Hash] The value against the validation is performed.
94
+ def self.validate(value)
95
+ if value.instance_of? self
96
+ return (
97
+ APIHelper.valid_type?(value.id,
98
+ ->(val) { val.instance_of? String }) and
99
+ APIHelper.valid_type?(value.event,
100
+ ->(val) { val.instance_of? String }) and
101
+ APIHelper.valid_type?(value.created_on,
102
+ ->(val) { val.instance_of? DateTime })
103
+ )
104
+ end
105
+
106
+ return false unless value.instance_of? Hash
107
+
108
+ (
109
+ APIHelper.valid_type?(value['id'],
110
+ ->(val) { val.instance_of? String }) and
111
+ APIHelper.valid_type?(value['event'],
112
+ ->(val) { val.instance_of? String }) and
113
+ APIHelper.valid_type?(value['created_on'],
114
+ ->(val) { val.instance_of? String })
115
+ )
116
+ end
117
+
118
+ # Provides a human-readable string representation of the object.
119
+ def to_s
120
+ class_name = self.class.name.split('::').last
121
+ "<#{class_name} id: #{@id}, event: #{@event}, data: #{@data}, created_on: #{@created_on},"\
122
+ " additional_properties: #{@additional_properties}>"
123
+ end
124
+
125
+ # Provides a debugging-friendly string with detailed object information.
126
+ def inspect
127
+ class_name = self.class.name.split('::').last
128
+ "<#{class_name} id: #{@id.inspect}, event: #{@event.inspect}, data: #{@data.inspect},"\
129
+ " created_on: #{@created_on.inspect}, additional_properties: #{@additional_properties}>"
130
+ end
131
+ end
132
+ end