univapay-client-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +212 -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 +909 -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 +128 -0
  16. data/lib/univapay_client_sdk/configuration.rb +179 -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_handler.rb +37 -0
  21. data/lib/univapay_client_sdk/events/webhooks/customs_handler.rb +37 -0
  22. data/lib/univapay_client_sdk/events/webhooks/refund_handler.rb +37 -0
  23. data/lib/univapay_client_sdk/events/webhooks/subscription_handler.rb +37 -0
  24. data/lib/univapay_client_sdk/events/webhooks/token_handler.rb +37 -0
  25. data/lib/univapay_client_sdk/exceptions/api_error_exception.rb +199 -0
  26. data/lib/univapay_client_sdk/exceptions/api_exception.rb +21 -0
  27. data/lib/univapay_client_sdk/extensions.rb +127 -0
  28. data/lib/univapay_client_sdk/http/api_response.rb +19 -0
  29. data/lib/univapay_client_sdk/http/auth/oauth_2.rb +58 -0
  30. data/lib/univapay_client_sdk/http/http_call_back.rb +10 -0
  31. data/lib/univapay_client_sdk/http/http_method_enum.rb +10 -0
  32. data/lib/univapay_client_sdk/http/http_request.rb +10 -0
  33. data/lib/univapay_client_sdk/http/http_response.rb +10 -0
  34. data/lib/univapay_client_sdk/http/proxy_settings.rb +22 -0
  35. data/lib/univapay_client_sdk/logging/configuration/api_logging_configuration.rb +186 -0
  36. data/lib/univapay_client_sdk/logging/sdk_logger.rb +17 -0
  37. data/lib/univapay_client_sdk/models/api_error_detail.rb +87 -0
  38. data/lib/univapay_client_sdk/models/api_error_status.rb +26 -0
  39. data/lib/univapay_client_sdk/models/bank_transfer_event.rb +27 -0
  40. data/lib/univapay_client_sdk/models/bank_transfer_ledger.rb +199 -0
  41. data/lib/univapay_client_sdk/models/bank_transfer_ledger_bank_ledger_type.rb +36 -0
  42. data/lib/univapay_client_sdk/models/bank_transfer_ledger_list.rb +104 -0
  43. data/lib/univapay_client_sdk/models/bank_transfer_ledger_mode.rb +36 -0
  44. data/lib/univapay_client_sdk/models/bank_transfer_payment_status.rb +44 -0
  45. data/lib/univapay_client_sdk/models/bank_transfer_status_data.rb +229 -0
  46. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback.rb +134 -0
  47. data/lib/univapay_client_sdk/models/bank_transfer_status_webhook_callback_extension.rb +75 -0
  48. data/lib/univapay_client_sdk/models/base_bank_transfer_data.rb +100 -0
  49. data/lib/univapay_client_sdk/models/base_konbini_data.rb +99 -0
  50. data/lib/univapay_client_sdk/models/base_konbini_data_convenience_store.rb +60 -0
  51. data/lib/univapay_client_sdk/models/base_model.rb +110 -0
  52. data/lib/univapay_client_sdk/models/base_online_data.rb +123 -0
  53. data/lib/univapay_client_sdk/models/base_online_data_brand.rb +48 -0
  54. data/lib/univapay_client_sdk/models/base_online_data_call_method.rb +52 -0
  55. data/lib/univapay_client_sdk/models/base_online_data_os_type.rb +36 -0
  56. data/lib/univapay_client_sdk/models/base_online_data_user_identifier_source.rb +36 -0
  57. data/lib/univapay_client_sdk/models/cancel.rb +183 -0
  58. data/lib/univapay_client_sdk/models/cancel_create_request.rb +77 -0
  59. data/lib/univapay_client_sdk/models/cancel_event.rb +26 -0
  60. data/lib/univapay_client_sdk/models/cancel_list.rb +94 -0
  61. data/lib/univapay_client_sdk/models/cancel_status.rb +44 -0
  62. data/lib/univapay_client_sdk/models/cancel_update_request.rb +76 -0
  63. data/lib/univapay_client_sdk/models/cancel_webhook_callback.rb +132 -0
  64. data/lib/univapay_client_sdk/models/cancel_webhook_callback_extension.rb +74 -0
  65. data/lib/univapay_client_sdk/models/card_processor_installment_config.rb +89 -0
  66. data/lib/univapay_client_sdk/models/charge.rb +411 -0
  67. data/lib/univapay_client_sdk/models/charge_capture_request.rb +84 -0
  68. data/lib/univapay_client_sdk/models/charge_create_request.rb +179 -0
  69. data/lib/univapay_client_sdk/models/charge_create_request_client_metadata.rb +76 -0
  70. data/lib/univapay_client_sdk/models/charge_create_request_redirect.rb +75 -0
  71. data/lib/univapay_client_sdk/models/charge_create_request_three_ds.rb +88 -0
  72. data/lib/univapay_client_sdk/models/charge_create_request_three_ds_mode.rb +44 -0
  73. data/lib/univapay_client_sdk/models/charge_event.rb +36 -0
  74. data/lib/univapay_client_sdk/models/charge_list.rb +104 -0
  75. data/lib/univapay_client_sdk/models/charge_mode.rb +36 -0
  76. data/lib/univapay_client_sdk/models/charge_redirect.rb +96 -0
  77. data/lib/univapay_client_sdk/models/charge_status.rb +56 -0
  78. data/lib/univapay_client_sdk/models/charge_three_ds.rb +97 -0
  79. data/lib/univapay_client_sdk/models/charge_transaction_token_type.rb +40 -0
  80. data/lib/univapay_client_sdk/models/charge_update_request.rb +75 -0
  81. data/lib/univapay_client_sdk/models/charge_webhook_event.rb +138 -0
  82. data/lib/univapay_client_sdk/models/cursor_direction_query.rb +36 -0
  83. data/lib/univapay_client_sdk/models/customs_declaration_create_request.rb +106 -0
  84. data/lib/univapay_client_sdk/models/customs_declaration_event.rb +27 -0
  85. data/lib/univapay_client_sdk/models/customs_declaration_patch_request.rb +77 -0
  86. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback.rb +135 -0
  87. data/lib/univapay_client_sdk/models/customs_declaration_webhook_callback_extension.rb +76 -0
  88. data/lib/univapay_client_sdk/models/customs_declaration_webhook_data.rb +232 -0
  89. data/lib/univapay_client_sdk/models/customs_declaration_webhook_declaration.rb +121 -0
  90. data/lib/univapay_client_sdk/models/customs_declaration_webhook_error.rb +127 -0
  91. data/lib/univapay_client_sdk/models/customs_declaration_webhook_other_error.rb +120 -0
  92. data/lib/univapay_client_sdk/models/customs_declaration_webhook_result.rb +125 -0
  93. data/lib/univapay_client_sdk/models/customs_declaration_webhook_status.rb +44 -0
  94. data/lib/univapay_client_sdk/models/generic_metadata.rb +111 -0
  95. data/lib/univapay_client_sdk/models/installment_fixed_cycles.rb +70 -0
  96. data/lib/univapay_client_sdk/models/installment_plan_type.rb +36 -0
  97. data/lib/univapay_client_sdk/models/issuer_token.rb +177 -0
  98. data/lib/univapay_client_sdk/models/issuer_token_call_method.rb +51 -0
  99. data/lib/univapay_client_sdk/models/issuer_token_payload.rb +105 -0
  100. data/lib/univapay_client_sdk/models/issuer_token_payment_type.rb +36 -0
  101. data/lib/univapay_client_sdk/models/merchant.rb +179 -0
  102. data/lib/univapay_client_sdk/models/merchant_webhook_bank_transfer_configuration.rb +342 -0
  103. data/lib/univapay_client_sdk/models/merchant_webhook_card_brand_percent_fees.rb +167 -0
  104. data/lib/univapay_client_sdk/models/merchant_webhook_card_configuration.rb +301 -0
  105. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_configuration.rb +87 -0
  106. data/lib/univapay_client_sdk/models/merchant_webhook_checkout_toggle.rb +77 -0
  107. data/lib/univapay_client_sdk/models/merchant_webhook_configuration.rb +505 -0
  108. data/lib/univapay_client_sdk/models/merchant_webhook_convenience_configuration.rb +88 -0
  109. data/lib/univapay_client_sdk/models/merchant_webhook_customer_management_configuration.rb +99 -0
  110. data/lib/univapay_client_sdk/models/merchant_webhook_installment_plan_configuration.rb +139 -0
  111. data/lib/univapay_client_sdk/models/merchant_webhook_limit_charge_by_card_configuration.rb +88 -0
  112. data/lib/univapay_client_sdk/models/merchant_webhook_limit_refund_by_sales_configuration.rb +100 -0
  113. data/lib/univapay_client_sdk/models/merchant_webhook_money_amount.rb +85 -0
  114. data/lib/univapay_client_sdk/models/merchant_webhook_online_configuration.rb +77 -0
  115. data/lib/univapay_client_sdk/models/merchant_webhook_paidy_configuration.rb +77 -0
  116. data/lib/univapay_client_sdk/models/merchant_webhook_qr_merchant_configuration.rb +77 -0
  117. data/lib/univapay_client_sdk/models/merchant_webhook_qr_scan_configuration.rb +93 -0
  118. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_cvv_confirmation_config.rb +97 -0
  119. data/lib/univapay_client_sdk/models/merchant_webhook_recurring_token_configuration.rb +109 -0
  120. data/lib/univapay_client_sdk/models/merchant_webhook_security_configuration.rb +234 -0
  121. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_configuration.rb +138 -0
  122. data/lib/univapay_client_sdk/models/merchant_webhook_subscription_plan_configuration.rb +138 -0
  123. data/lib/univapay_client_sdk/models/merchant_webhook_transfer_schedule_configuration.rb +159 -0
  124. data/lib/univapay_client_sdk/models/merchant_webhook_user_transactions_configuration.rb +349 -0
  125. data/lib/univapay_client_sdk/models/mode_query.rb +36 -0
  126. data/lib/univapay_client_sdk/models/payment_error.rb +178 -0
  127. data/lib/univapay_client_sdk/models/plan_settings_type.rb +36 -0
  128. data/lib/univapay_client_sdk/models/refund.rb +240 -0
  129. data/lib/univapay_client_sdk/models/refund_create_request.rb +118 -0
  130. data/lib/univapay_client_sdk/models/refund_event.rb +26 -0
  131. data/lib/univapay_client_sdk/models/refund_list.rb +104 -0
  132. data/lib/univapay_client_sdk/models/refund_reason_request.rb +42 -0
  133. data/lib/univapay_client_sdk/models/refund_reason_response.rb +62 -0
  134. data/lib/univapay_client_sdk/models/refund_status.rb +47 -0
  135. data/lib/univapay_client_sdk/models/refund_update_request.rb +99 -0
  136. data/lib/univapay_client_sdk/models/refund_webhook_callback.rb +132 -0
  137. data/lib/univapay_client_sdk/models/refund_webhook_callback_extension.rb +74 -0
  138. data/lib/univapay_client_sdk/models/restrict_ip_after_failed_charge_config.rb +99 -0
  139. data/lib/univapay_client_sdk/models/store.rb +119 -0
  140. data/lib/univapay_client_sdk/models/store_list.rb +104 -0
  141. data/lib/univapay_client_sdk/models/store_list_item.rb +114 -0
  142. data/lib/univapay_client_sdk/models/subscription.rb +310 -0
  143. data/lib/univapay_client_sdk/models/subscription_create_request.rb +216 -0
  144. data/lib/univapay_client_sdk/models/subscription_event.rb +54 -0
  145. data/lib/univapay_client_sdk/models/subscription_installment_plan.rb +86 -0
  146. data/lib/univapay_client_sdk/models/subscription_list.rb +104 -0
  147. data/lib/univapay_client_sdk/models/subscription_list_item.rb +352 -0
  148. data/lib/univapay_client_sdk/models/subscription_next_payment.rb +222 -0
  149. data/lib/univapay_client_sdk/models/subscription_patch_payment_request.rb +117 -0
  150. data/lib/univapay_client_sdk/models/subscription_patch_token_request.rb +79 -0
  151. data/lib/univapay_client_sdk/models/subscription_payment.rb +185 -0
  152. data/lib/univapay_client_sdk/models/subscription_payment_list.rb +94 -0
  153. data/lib/univapay_client_sdk/models/subscription_period.rb +56 -0
  154. data/lib/univapay_client_sdk/models/subscription_plan_settings.rb +98 -0
  155. data/lib/univapay_client_sdk/models/subscription_schedule_settings.rb +132 -0
  156. data/lib/univapay_client_sdk/models/subscription_status.rb +56 -0
  157. data/lib/univapay_client_sdk/models/subscription_suspend_request.rb +79 -0
  158. data/lib/univapay_client_sdk/models/subscription_terminate_with_status.rb +36 -0
  159. data/lib/univapay_client_sdk/models/subscription_termination_mode.rb +36 -0
  160. data/lib/univapay_client_sdk/models/subscription_update_next_payment.rb +104 -0
  161. data/lib/univapay_client_sdk/models/subscription_update_request.rb +134 -0
  162. data/lib/univapay_client_sdk/models/subscription_update_schedule_settings.rb +110 -0
  163. data/lib/univapay_client_sdk/models/subscription_update_status.rb +37 -0
  164. data/lib/univapay_client_sdk/models/subscription_user_data.rb +134 -0
  165. data/lib/univapay_client_sdk/models/subscription_webhook_event.rb +143 -0
  166. data/lib/univapay_client_sdk/models/suspend_schedule_settings.rb +78 -0
  167. data/lib/univapay_client_sdk/models/three_ds_issuer_token.rb +116 -0
  168. data/lib/univapay_client_sdk/models/three_ds_issuer_token_call_method.rb +26 -0
  169. data/lib/univapay_client_sdk/models/three_ds_issuer_token_payment_type.rb +26 -0
  170. data/lib/univapay_client_sdk/models/token_create_bank_transfer_data.rb +122 -0
  171. data/lib/univapay_client_sdk/models/token_create_card_data.rb +230 -0
  172. data/lib/univapay_client_sdk/models/token_create_card_data_cvv_authorize.rb +95 -0
  173. data/lib/univapay_client_sdk/models/token_create_card_data_three_ds.rb +97 -0
  174. data/lib/univapay_client_sdk/models/token_create_konbini_data.rb +146 -0
  175. data/lib/univapay_client_sdk/models/token_create_online_data.rb +142 -0
  176. data/lib/univapay_client_sdk/models/token_create_phone_number.rb +104 -0
  177. data/lib/univapay_client_sdk/models/token_event.rb +59 -0
  178. data/lib/univapay_client_sdk/models/token_response_bank_transfer_data.rb +181 -0
  179. data/lib/univapay_client_sdk/models/token_response_card_data.rb +129 -0
  180. data/lib/univapay_client_sdk/models/token_response_card_data_billing.rb +153 -0
  181. data/lib/univapay_client_sdk/models/token_response_card_data_card.rb +187 -0
  182. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize.rb +132 -0
  183. data/lib/univapay_client_sdk/models/token_response_card_data_cvv_authorize_check.rb +118 -0
  184. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds.rb +142 -0
  185. data/lib/univapay_client_sdk/models/token_response_card_data_three_ds_status.rb +48 -0
  186. data/lib/univapay_client_sdk/models/token_response_konbini_data.rb +135 -0
  187. data/lib/univapay_client_sdk/models/token_response_online_data.rb +158 -0
  188. data/lib/univapay_client_sdk/models/token_response_phone_number.rb +96 -0
  189. data/lib/univapay_client_sdk/models/token_webhook_event.rb +144 -0
  190. data/lib/univapay_client_sdk/models/transaction_token.rb +250 -0
  191. data/lib/univapay_client_sdk/models/transaction_token_create_request.rb +161 -0
  192. data/lib/univapay_client_sdk/models/transaction_token_create_request_metadata.rb +124 -0
  193. data/lib/univapay_client_sdk/models/transaction_token_create_request_payment_type.rb +44 -0
  194. data/lib/univapay_client_sdk/models/transaction_token_create_request_type.rb +40 -0
  195. data/lib/univapay_client_sdk/models/transaction_token_list.rb +104 -0
  196. data/lib/univapay_client_sdk/models/transaction_token_list_item.rb +204 -0
  197. data/lib/univapay_client_sdk/models/transaction_token_list_item_user_data.rb +96 -0
  198. data/lib/univapay_client_sdk/models/transaction_token_mode.rb +36 -0
  199. data/lib/univapay_client_sdk/models/transaction_token_payment_type.rb +48 -0
  200. data/lib/univapay_client_sdk/models/transaction_token_type.rb +40 -0
  201. data/lib/univapay_client_sdk/models/transaction_token_update_request.rb +95 -0
  202. data/lib/univapay_client_sdk/models/transaction_token_update_request_data.rb +184 -0
  203. data/lib/univapay_client_sdk/models/transaction_token_update_request_data_phone_number.rb +86 -0
  204. data/lib/univapay_client_sdk/models/webhook.rb +191 -0
  205. data/lib/univapay_client_sdk/models/webhook_callback_envelope.rb +98 -0
  206. data/lib/univapay_client_sdk/models/webhook_create_request.rb +97 -0
  207. data/lib/univapay_client_sdk/models/webhook_event.rb +166 -0
  208. data/lib/univapay_client_sdk/models/webhook_event_list.rb +94 -0
  209. data/lib/univapay_client_sdk/models/webhook_list.rb +94 -0
  210. data/lib/univapay_client_sdk/models/webhook_trigger.rb +104 -0
  211. data/lib/univapay_client_sdk/models/webhook_update_request.rb +108 -0
  212. data/lib/univapay_client_sdk/utilities/date_time_helper.rb +11 -0
  213. data/lib/univapay_client_sdk/utilities/file_wrapper.rb +28 -0
  214. data/lib/univapay_client_sdk/utilities/union_type_lookup.rb +182 -0
  215. data/lib/univapay_client_sdk.rb +285 -0
  216. data/test/apis/api_test_base.rb +23 -0
  217. data/test/apis/test_cancels_api.rb +162 -0
  218. data/test/apis/test_charges_api.rb +565 -0
  219. data/test/apis/test_error_messages.rb +38 -0
  220. data/test/apis/test_merchants_api.rb +50 -0
  221. data/test/apis/test_refunds_api.rb +172 -0
  222. data/test/apis/test_stores_api.rb +86 -0
  223. data/test/apis/test_subscriptions_api.rb +579 -0
  224. data/test/apis/test_transaction_tokens_api.rb +305 -0
  225. data/test/apis/test_webhooks_api.rb +245 -0
  226. data/test/events/webhooks/test_bank_transfer_handler.rb +95 -0
  227. data/test/events/webhooks/test_cancel_handler.rb +90 -0
  228. data/test/events/webhooks/test_charge_handler.rb +138 -0
  229. data/test/events/webhooks/test_customs_handler.rb +100 -0
  230. data/test/events/webhooks/test_refund_handler.rb +95 -0
  231. data/test/events/webhooks/test_subscription_handler.rb +346 -0
  232. data/test/events/webhooks/test_token_handler.rb +332 -0
  233. data/test/framework_integrations/rails_app_test_helper.rb +14 -0
  234. data/test/framework_integrations/webhooks/apps/hanami_charge_app.rb +61 -0
  235. data/test/framework_integrations/webhooks/apps/rails_charge_app.rb +24 -0
  236. data/test/framework_integrations/webhooks/apps/sinatra_charge_app.rb +27 -0
  237. data/test/framework_integrations/webhooks/test/test_hanami_charge_app.rb +57 -0
  238. data/test/framework_integrations/webhooks/test/test_rails_charge_app.rb +57 -0
  239. data/test/framework_integrations/webhooks/test/test_sinatra_charge_app.rb +58 -0
  240. data/test/http_response_catcher.rb +32 -0
  241. metadata +366 -0
@@ -0,0 +1,161 @@
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
+ # TransactionTokenCreateRequest Model.
8
+ class TransactionTokenCreateRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Transaction Token Create Request Payment Type schema.
13
+ # @return [TransactionTokenCreateRequestPaymentType]
14
+ attr_accessor :payment_type
15
+
16
+ # Transaction Token Create Request Type schema.
17
+ # @return [TransactionTokenCreateRequestType]
18
+ attr_accessor :type
19
+
20
+ # Customer email address.
21
+ # @return [String]
22
+ attr_accessor :email
23
+
24
+ # Usage limit applied to the token.
25
+ # @return [String]
26
+ attr_accessor :usage_limit
27
+
28
+ # Consumer's IPv4 address. **Required** when `data.brand` is
29
+ # `we_chat_online` and `data.call_method` is `web` or `http_get`.
30
+ # @return [String]
31
+ attr_accessor :ip_address
32
+
33
+ # A free-form dictionary for custom metadata.
34
+ # @return [TransactionTokenCreateRequestMetadata]
35
+ attr_accessor :metadata
36
+
37
+ # Transaction Token Create Request Data schema.
38
+ # @return [Object]
39
+ attr_accessor :data
40
+
41
+ # A mapping from model property names to API property names.
42
+ def self.names
43
+ @_hash = {} if @_hash.nil?
44
+ @_hash['payment_type'] = 'payment_type'
45
+ @_hash['type'] = 'type'
46
+ @_hash['email'] = 'email'
47
+ @_hash['usage_limit'] = 'usage_limit'
48
+ @_hash['ip_address'] = 'ip_address'
49
+ @_hash['metadata'] = 'metadata'
50
+ @_hash['data'] = 'data'
51
+ @_hash
52
+ end
53
+
54
+ # An array for optional fields
55
+ def self.optionals
56
+ %w[
57
+ email
58
+ usage_limit
59
+ ip_address
60
+ metadata
61
+ ]
62
+ end
63
+
64
+ # An array for nullable fields
65
+ def self.nullables
66
+ []
67
+ end
68
+
69
+ def initialize(payment_type:, type:, data:, email: SKIP, usage_limit: SKIP,
70
+ ip_address: SKIP, metadata: SKIP, additional_properties: nil)
71
+ # Add additional model properties to the instance
72
+ additional_properties = {} if additional_properties.nil?
73
+
74
+ @payment_type = payment_type
75
+ @type = type
76
+ @email = email unless email == SKIP
77
+ @usage_limit = usage_limit unless usage_limit == SKIP
78
+ @ip_address = ip_address unless ip_address == SKIP
79
+ @metadata = metadata unless metadata == SKIP
80
+ @data = data
81
+ @additional_properties = additional_properties
82
+ end
83
+
84
+ # Creates an instance of the object from a hash.
85
+ def self.from_hash(hash)
86
+ return nil unless hash
87
+
88
+ # Extract variables from the hash.
89
+ payment_type = hash.key?('payment_type') ? hash['payment_type'] : nil
90
+ type = hash.key?('type') ? hash['type'] : nil
91
+ data = hash.key?('data') ? APIHelper.deserialize_union_type(
92
+ UnionTypeLookUp.get(:TransactionTokenCreateRequestData), hash['data']
93
+ ) : nil
94
+ email = hash.key?('email') ? hash['email'] : SKIP
95
+ usage_limit = hash.key?('usage_limit') ? hash['usage_limit'] : SKIP
96
+ ip_address = hash.key?('ip_address') ? hash['ip_address'] : SKIP
97
+ metadata = TransactionTokenCreateRequestMetadata.from_hash(hash['metadata']) if
98
+ hash['metadata']
99
+
100
+ # Create a new hash for additional properties, removing known properties.
101
+ new_hash = hash.reject { |k, _| names.value?(k) }
102
+
103
+ additional_properties = APIHelper.get_additional_properties(
104
+ new_hash, proc { |value| value }
105
+ )
106
+
107
+ # Create object from extracted values.
108
+ TransactionTokenCreateRequest.new(payment_type: payment_type,
109
+ type: type,
110
+ data: data,
111
+ email: email,
112
+ usage_limit: usage_limit,
113
+ ip_address: ip_address,
114
+ metadata: metadata,
115
+ additional_properties: additional_properties)
116
+ end
117
+
118
+ # Validates an instance of the object from a given value.
119
+ # @param [TransactionTokenCreateRequest | Hash] The value against the validation is performed.
120
+ def self.validate(value)
121
+ if value.instance_of? self
122
+ return (
123
+ APIHelper.valid_type?(value.payment_type,
124
+ ->(val) { TransactionTokenCreateRequestPaymentType.validate(val) }) and
125
+ APIHelper.valid_type?(value.type,
126
+ ->(val) { TransactionTokenCreateRequestType.validate(val) }) and
127
+ UnionTypeLookUp.get(:TransactionTokenCreateRequestData)
128
+ .validate(value.data)
129
+ )
130
+ end
131
+
132
+ return false unless value.instance_of? Hash
133
+
134
+ (
135
+ APIHelper.valid_type?(value['payment_type'],
136
+ ->(val) { TransactionTokenCreateRequestPaymentType.validate(val) }) and
137
+ APIHelper.valid_type?(value['type'],
138
+ ->(val) { TransactionTokenCreateRequestType.validate(val) }) and
139
+ UnionTypeLookUp.get(:TransactionTokenCreateRequestData)
140
+ .validate(value['data'])
141
+ )
142
+ end
143
+
144
+ # Provides a human-readable string representation of the object.
145
+ def to_s
146
+ class_name = self.class.name.split('::').last
147
+ "<#{class_name} payment_type: #{@payment_type}, type: #{@type}, email: #{@email},"\
148
+ " usage_limit: #{@usage_limit}, ip_address: #{@ip_address}, metadata: #{@metadata}, data:"\
149
+ " #{@data}, additional_properties: #{@additional_properties}>"
150
+ end
151
+
152
+ # Provides a debugging-friendly string with detailed object information.
153
+ def inspect
154
+ class_name = self.class.name.split('::').last
155
+ "<#{class_name} payment_type: #{@payment_type.inspect}, type: #{@type.inspect}, email:"\
156
+ " #{@email.inspect}, usage_limit: #{@usage_limit.inspect}, ip_address:"\
157
+ " #{@ip_address.inspect}, metadata: #{@metadata.inspect}, data: #{@data.inspect},"\
158
+ " additional_properties: #{@additional_properties}>"
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,124 @@
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
+ # A free-form dictionary for custom metadata.
8
+ class TransactionTokenCreateRequestMetadata < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Any arbitrary value (Free format).
13
+ # @return [String]
14
+ attr_accessor :univapay_reference_id
15
+
16
+ # Customer ID.
17
+ # @return [UUID | String]
18
+ attr_accessor :univapay_customer_id
19
+
20
+ # Consumer name passed to payment processors that require it (e.g., konbini,
21
+ # bank transfer).
22
+ # @return [String]
23
+ attr_accessor :univapay_name
24
+
25
+ # Consumer phone number passed to payment processors that require it.
26
+ # @return [String]
27
+ attr_accessor :univapay_phone_number
28
+
29
+ # A mapping from model property names to API property names.
30
+ def self.names
31
+ @_hash = {} if @_hash.nil?
32
+ @_hash['univapay_reference_id'] = 'univapay-reference-id'
33
+ @_hash['univapay_customer_id'] = 'univapay-customer-id'
34
+ @_hash['univapay_name'] = 'univapay-name'
35
+ @_hash['univapay_phone_number'] = 'univapay-phone-number'
36
+ @_hash
37
+ end
38
+
39
+ # An array for optional fields
40
+ def self.optionals
41
+ %w[
42
+ univapay_reference_id
43
+ univapay_customer_id
44
+ univapay_name
45
+ univapay_phone_number
46
+ ]
47
+ end
48
+
49
+ # An array for nullable fields
50
+ def self.nullables
51
+ []
52
+ end
53
+
54
+ def initialize(univapay_reference_id: SKIP, univapay_customer_id: SKIP,
55
+ univapay_name: SKIP, univapay_phone_number: SKIP,
56
+ additional_properties: nil)
57
+ # Add additional model properties to the instance
58
+ additional_properties = {} if additional_properties.nil?
59
+
60
+ @univapay_reference_id = univapay_reference_id unless univapay_reference_id == SKIP
61
+ @univapay_customer_id = univapay_customer_id unless univapay_customer_id == SKIP
62
+ @univapay_name = univapay_name unless univapay_name == SKIP
63
+ @univapay_phone_number = univapay_phone_number unless univapay_phone_number == SKIP
64
+ @additional_properties = additional_properties
65
+ end
66
+
67
+ # Creates an instance of the object from a hash.
68
+ def self.from_hash(hash)
69
+ return nil unless hash
70
+
71
+ # Extract variables from the hash.
72
+ univapay_reference_id =
73
+ hash.key?('univapay-reference-id') ? hash['univapay-reference-id'] : SKIP
74
+ univapay_customer_id =
75
+ hash.key?('univapay-customer-id') ? hash['univapay-customer-id'] : SKIP
76
+ univapay_name = hash.key?('univapay-name') ? hash['univapay-name'] : SKIP
77
+ univapay_phone_number =
78
+ hash.key?('univapay-phone-number') ? hash['univapay-phone-number'] : SKIP
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 { |x|
85
+ APIHelper.deserialize_union_type(UnionTypeLookUp.get(:TransactionTokenCreateMetadataProps), x)
86
+ }
87
+ )
88
+
89
+ # Create object from extracted values.
90
+ TransactionTokenCreateRequestMetadata.new(univapay_reference_id: univapay_reference_id,
91
+ univapay_customer_id: univapay_customer_id,
92
+ univapay_name: univapay_name,
93
+ univapay_phone_number: univapay_phone_number,
94
+ additional_properties: additional_properties)
95
+ end
96
+
97
+ # Validates an instance of the object from a given value.
98
+ # @param [TransactionTokenCreateRequestMetadata | Hash] The value against the validation is performed.
99
+ def self.validate(value)
100
+ return true if value.instance_of? self
101
+
102
+ return false unless value.instance_of? Hash
103
+
104
+ true
105
+ end
106
+
107
+ # Provides a human-readable string representation of the object.
108
+ def to_s
109
+ class_name = self.class.name.split('::').last
110
+ "<#{class_name} univapay_reference_id: #{@univapay_reference_id}, univapay_customer_id:"\
111
+ " #{@univapay_customer_id}, univapay_name: #{@univapay_name}, univapay_phone_number:"\
112
+ " #{@univapay_phone_number}, additional_properties: #{@additional_properties}>"
113
+ end
114
+
115
+ # Provides a debugging-friendly string with detailed object information.
116
+ def inspect
117
+ class_name = self.class.name.split('::').last
118
+ "<#{class_name} univapay_reference_id: #{@univapay_reference_id.inspect},"\
119
+ " univapay_customer_id: #{@univapay_customer_id.inspect}, univapay_name:"\
120
+ " #{@univapay_name.inspect}, univapay_phone_number: #{@univapay_phone_number.inspect},"\
121
+ " additional_properties: #{@additional_properties}>"
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,44 @@
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
+ # Transaction Token Create Request Payment Type schema.
8
+ class TransactionTokenCreateRequestPaymentType
9
+ TRANSACTION_TOKEN_CREATE_REQUEST_PAYMENT_TYPE = [
10
+ # TODO: Write general description for CARD
11
+ CARD = 'card'.freeze,
12
+
13
+ # TODO: Write general description for ONLINE
14
+ ONLINE = 'online'.freeze,
15
+
16
+ # TODO: Write general description for KONBINI
17
+ KONBINI = 'konbini'.freeze,
18
+
19
+ # TODO: Write general description for BANK_TRANSFER
20
+ BANK_TRANSFER = 'bank_transfer'.freeze
21
+ ].freeze
22
+
23
+ def self.validate(value)
24
+ return false if value.nil?
25
+
26
+ TRANSACTION_TOKEN_CREATE_REQUEST_PAYMENT_TYPE.include?(value)
27
+ end
28
+
29
+ def self.from_value(value, default_value = CARD)
30
+ return default_value if value.nil?
31
+
32
+ str = value.to_s.strip
33
+
34
+ case str.downcase
35
+ when 'card' then CARD
36
+ when 'online' then ONLINE
37
+ when 'konbini' then KONBINI
38
+ when 'bank_transfer' then BANK_TRANSFER
39
+ else
40
+ default_value
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,40 @@
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
+ # Transaction Token Create Request Type schema.
8
+ class TransactionTokenCreateRequestType
9
+ TRANSACTION_TOKEN_CREATE_REQUEST_TYPE = [
10
+ # TODO: Write general description for ONE_TIME
11
+ ONE_TIME = 'one_time'.freeze,
12
+
13
+ # TODO: Write general description for SUBSCRIPTION
14
+ SUBSCRIPTION = 'subscription'.freeze,
15
+
16
+ # TODO: Write general description for RECURRING
17
+ RECURRING = 'recurring'.freeze
18
+ ].freeze
19
+
20
+ def self.validate(value)
21
+ return false if value.nil?
22
+
23
+ TRANSACTION_TOKEN_CREATE_REQUEST_TYPE.include?(value)
24
+ end
25
+
26
+ def self.from_value(value, default_value = ONE_TIME)
27
+ return default_value if value.nil?
28
+
29
+ str = value.to_s.strip
30
+
31
+ case str.downcase
32
+ when 'one_time' then ONE_TIME
33
+ when 'subscription' then SUBSCRIPTION
34
+ when 'recurring' then RECURRING
35
+ else
36
+ default_value
37
+ end
38
+ end
39
+ end
40
+ end
@@ -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 list of transaction tokens.
8
+ class TransactionTokenList < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # List of resources.
13
+ # @return [Array[TransactionTokenListItem]]
14
+ attr_accessor :items
15
+
16
+ # Whether more results are available.
17
+ # @return [TrueClass | FalseClass]
18
+ attr_accessor :has_more
19
+
20
+ # Total number of matching resources.
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 << (TransactionTokenListItem.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
+ TransactionTokenList.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,204 @@
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
+ # Transaction token entry returned in list responses.
9
+ class TransactionTokenListItem < 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
+ # Merchant display name.
22
+ # @return [String]
23
+ attr_accessor :merchant_name
24
+
25
+ # Store display name.
26
+ # @return [String]
27
+ attr_accessor :store_name
28
+
29
+ # Customer email address.
30
+ # @return [String]
31
+ attr_accessor :email
32
+
33
+ # Payment method type.
34
+ # @return [String]
35
+ attr_accessor :payment_type
36
+
37
+ # Whether the resource is active.
38
+ # @return [TrueClass | FalseClass]
39
+ attr_accessor :active
40
+
41
+ # Processing mode for the resource.
42
+ # @return [String]
43
+ attr_accessor :mode
44
+
45
+ # Type of the resource.
46
+ # @return [String]
47
+ attr_accessor :type
48
+
49
+ # Timestamp when the resource was created.
50
+ # @return [DateTime]
51
+ attr_accessor :created_on
52
+
53
+ # Timestamp when the resource was last updated.
54
+ # @return [DateTime]
55
+ attr_accessor :updated_on
56
+
57
+ # Transaction Token List Item User Data schema.
58
+ # @return [TransactionTokenListItemUserData]
59
+ attr_accessor :user_data
60
+
61
+ # A mapping from model property names to API property names.
62
+ def self.names
63
+ @_hash = {} if @_hash.nil?
64
+ @_hash['id'] = 'id'
65
+ @_hash['store_id'] = 'store_id'
66
+ @_hash['merchant_name'] = 'merchant_name'
67
+ @_hash['store_name'] = 'store_name'
68
+ @_hash['email'] = 'email'
69
+ @_hash['payment_type'] = 'payment_type'
70
+ @_hash['active'] = 'active'
71
+ @_hash['mode'] = 'mode'
72
+ @_hash['type'] = 'type'
73
+ @_hash['created_on'] = 'created_on'
74
+ @_hash['updated_on'] = 'updated_on'
75
+ @_hash['user_data'] = 'user_data'
76
+ @_hash
77
+ end
78
+
79
+ # An array for optional fields
80
+ def self.optionals
81
+ %w[
82
+ id
83
+ store_id
84
+ merchant_name
85
+ store_name
86
+ email
87
+ payment_type
88
+ active
89
+ mode
90
+ type
91
+ created_on
92
+ updated_on
93
+ user_data
94
+ ]
95
+ end
96
+
97
+ # An array for nullable fields
98
+ def self.nullables
99
+ []
100
+ end
101
+
102
+ def initialize(id: SKIP, store_id: SKIP, merchant_name: SKIP,
103
+ store_name: SKIP, email: SKIP, payment_type: SKIP,
104
+ active: SKIP, mode: SKIP, type: SKIP, created_on: SKIP,
105
+ updated_on: SKIP, user_data: SKIP,
106
+ additional_properties: nil)
107
+ # Add additional model properties to the instance
108
+ additional_properties = {} if additional_properties.nil?
109
+
110
+ @id = id unless id == SKIP
111
+ @store_id = store_id unless store_id == SKIP
112
+ @merchant_name = merchant_name unless merchant_name == SKIP
113
+ @store_name = store_name unless store_name == SKIP
114
+ @email = email unless email == SKIP
115
+ @payment_type = payment_type unless payment_type == SKIP
116
+ @active = active unless active == SKIP
117
+ @mode = mode unless mode == SKIP
118
+ @type = type unless type == SKIP
119
+ @created_on = created_on unless created_on == SKIP
120
+ @updated_on = updated_on unless updated_on == SKIP
121
+ @user_data = user_data unless user_data == SKIP
122
+ @additional_properties = additional_properties
123
+ end
124
+
125
+ # Creates an instance of the object from a hash.
126
+ def self.from_hash(hash)
127
+ return nil unless hash
128
+
129
+ # Extract variables from the hash.
130
+ id = hash.key?('id') ? hash['id'] : SKIP
131
+ store_id = hash.key?('store_id') ? hash['store_id'] : SKIP
132
+ merchant_name = hash.key?('merchant_name') ? hash['merchant_name'] : SKIP
133
+ store_name = hash.key?('store_name') ? hash['store_name'] : SKIP
134
+ email = hash.key?('email') ? hash['email'] : SKIP
135
+ payment_type = hash.key?('payment_type') ? hash['payment_type'] : SKIP
136
+ active = hash.key?('active') ? hash['active'] : SKIP
137
+ mode = hash.key?('mode') ? hash['mode'] : SKIP
138
+ type = hash.key?('type') ? hash['type'] : SKIP
139
+ created_on = if hash.key?('created_on')
140
+ (DateTimeHelper.from_rfc3339(hash['created_on']) if hash['created_on'])
141
+ else
142
+ SKIP
143
+ end
144
+ updated_on = if hash.key?('updated_on')
145
+ (DateTimeHelper.from_rfc3339(hash['updated_on']) if hash['updated_on'])
146
+ else
147
+ SKIP
148
+ end
149
+ user_data = TransactionTokenListItemUserData.from_hash(hash['user_data']) if
150
+ hash['user_data']
151
+
152
+ # Create a new hash for additional properties, removing known properties.
153
+ new_hash = hash.reject { |k, _| names.value?(k) }
154
+
155
+ additional_properties = APIHelper.get_additional_properties(
156
+ new_hash, proc { |value| value }
157
+ )
158
+
159
+ # Create object from extracted values.
160
+ TransactionTokenListItem.new(id: id,
161
+ store_id: store_id,
162
+ merchant_name: merchant_name,
163
+ store_name: store_name,
164
+ email: email,
165
+ payment_type: payment_type,
166
+ active: active,
167
+ mode: mode,
168
+ type: type,
169
+ created_on: created_on,
170
+ updated_on: updated_on,
171
+ user_data: user_data,
172
+ additional_properties: additional_properties)
173
+ end
174
+
175
+ def to_custom_created_on
176
+ DateTimeHelper.to_rfc3339(created_on)
177
+ end
178
+
179
+ def to_custom_updated_on
180
+ DateTimeHelper.to_rfc3339(updated_on)
181
+ end
182
+
183
+ # Provides a human-readable string representation of the object.
184
+ def to_s
185
+ class_name = self.class.name.split('::').last
186
+ "<#{class_name} id: #{@id}, store_id: #{@store_id}, merchant_name: #{@merchant_name},"\
187
+ " store_name: #{@store_name}, email: #{@email}, payment_type: #{@payment_type}, active:"\
188
+ " #{@active}, mode: #{@mode}, type: #{@type}, created_on: #{@created_on}, updated_on:"\
189
+ " #{@updated_on}, user_data: #{@user_data}, additional_properties:"\
190
+ " #{@additional_properties}>"
191
+ end
192
+
193
+ # Provides a debugging-friendly string with detailed object information.
194
+ def inspect
195
+ class_name = self.class.name.split('::').last
196
+ "<#{class_name} id: #{@id.inspect}, store_id: #{@store_id.inspect}, merchant_name:"\
197
+ " #{@merchant_name.inspect}, store_name: #{@store_name.inspect}, email: #{@email.inspect},"\
198
+ " payment_type: #{@payment_type.inspect}, active: #{@active.inspect}, mode:"\
199
+ " #{@mode.inspect}, type: #{@type.inspect}, created_on: #{@created_on.inspect}, updated_on:"\
200
+ " #{@updated_on.inspect}, user_data: #{@user_data.inspect}, additional_properties:"\
201
+ " #{@additional_properties}>"
202
+ end
203
+ end
204
+ end