cybersource_rest_client 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cybersource_rest_client.rb +68 -8
  3. data/lib/cybersource_rest_client/api/capture_api.rb +19 -8
  4. data/lib/cybersource_rest_client/api/conversion_details_api.rb +112 -0
  5. data/lib/cybersource_rest_client/api/credit_api.rb +19 -8
  6. data/lib/cybersource_rest_client/api/flex_token_api.rb +18 -7
  7. data/lib/cybersource_rest_client/api/instrument_identifier_api.rb +88 -55
  8. data/lib/cybersource_rest_client/api/instrument_identifiers_api.rb +24 -13
  9. data/lib/cybersource_rest_client/api/key_generation_api.rb +18 -7
  10. data/lib/cybersource_rest_client/api/net_fundings_api.rb +115 -0
  11. data/lib/cybersource_rest_client/api/notification_of_changes_api.rb +20 -9
  12. data/lib/cybersource_rest_client/api/payment_instruments_api.rb +144 -89
  13. data/lib/cybersource_rest_client/api/payments_api.rb +19 -8
  14. data/lib/cybersource_rest_client/api/process_a_payout_api.rb +21 -9
  15. data/lib/cybersource_rest_client/api/purchase_and_refund_details_api.rb +27 -10
  16. data/lib/cybersource_rest_client/api/refund_api.rb +37 -15
  17. data/lib/cybersource_rest_client/api/report_definitions_api.rb +50 -19
  18. data/lib/cybersource_rest_client/api/report_downloads_api.rb +25 -10
  19. data/lib/cybersource_rest_client/api/report_subscriptions_api.rb +104 -43
  20. data/lib/cybersource_rest_client/api/reports_api.rb +83 -27
  21. data/lib/cybersource_rest_client/api/reversal_api.rb +19 -8
  22. data/lib/cybersource_rest_client/api/search_transactions_api.rb +39 -17
  23. data/lib/cybersource_rest_client/api/secure_file_share_api.rb +45 -15
  24. data/lib/cybersource_rest_client/api/transaction_batches_api.rb +89 -13
  25. data/lib/cybersource_rest_client/api/transaction_details_api.rb +19 -8
  26. data/lib/cybersource_rest_client/api/user_management_api.rb +19 -8
  27. data/lib/cybersource_rest_client/api/void_api.rb +73 -29
  28. data/lib/cybersource_rest_client/api_client.rb +24 -12
  29. data/lib/cybersource_rest_client/configuration.rb +1 -1
  30. data/lib/cybersource_rest_client/models/capture_payment_request.rb +14 -5
  31. data/lib/cybersource_rest_client/models/create_credit_request.rb +1 -1
  32. data/lib/cybersource_rest_client/models/create_payment_request.rb +23 -5
  33. data/lib/cybersource_rest_client/models/inline_response_400.rb +59 -14
  34. data/lib/cybersource_rest_client/models/inline_response_400_1.rb +202 -0
  35. data/lib/cybersource_rest_client/models/{reporting_v3_notificationof_changes_get400_response_fields.rb → inline_response_400_fields.rb} +1 -1
  36. data/lib/cybersource_rest_client/models/pts_v1_transaction_batches_get200_response_transaction_batches.rb +7 -7
  37. data/lib/cybersource_rest_client/models/pts_v1_transaction_batches_id_get200_response.rb +286 -0
  38. data/lib/cybersource_rest_client/models/{tmsv1instrumentidentifiers_authorization_options_merchant_initiated_transaction.rb → pts_v1_transaction_batches_id_get200_response__links.rb} +10 -9
  39. data/lib/cybersource_rest_client/models/pts_v1_transaction_batches_id_get200_response__links_transactions.rb +193 -0
  40. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response.rb +20 -2
  41. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_credit_amount_details.rb +1 -1
  42. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_payment_information.rb +183 -0
  43. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_processing_information.rb +183 -0
  44. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_processing_information_bank_transfer_options.rb +199 -0
  45. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response.rb +1 -1
  46. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response_order_information_amount_details.rb +1 -1
  47. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post400_response.rb +2 -2
  48. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response.rb +34 -7
  49. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_client_reference_information.rb +40 -5
  50. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_error_information.rb +1 -1
  51. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_error_information_details.rb +1 -1
  52. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_installment_information.rb +519 -0
  53. data/lib/cybersource_rest_client/models/{pts_v2_payments_post201_response_processor_information_issuer.rb → pts_v2_payments_post201_response_issuer_information.rb} +31 -6
  54. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_order_information_amount_details.rb +1 -1
  55. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_order_information_invoice_details.rb +1 -1
  56. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information.rb +13 -4
  57. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_account_features.rb +1 -1
  58. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_bank.rb +208 -0
  59. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_bank_account.rb +199 -0
  60. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_tokenized_card.rb +2 -17
  61. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_point_of_sale_information_emv.rb +1 -1
  62. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processing_information.rb +183 -0
  63. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processing_information_bank_transfer_options.rb +224 -0
  64. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information.rb +75 -16
  65. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information_ach_verification.rb +224 -0
  66. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information_avs.rb +0 -15
  67. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information_electronic_verification_results.rb +2 -2
  68. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information_routing.rb +249 -0
  69. data/lib/cybersource_rest_client/models/pts_v2_payments_post400_response.rb +2 -2
  70. data/lib/cybersource_rest_client/models/pts_v2_payments_post502_response.rb +2 -2
  71. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response.rb +1 -1
  72. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response_processor_information.rb +63 -4
  73. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response_refund_amount_details.rb +1 -1
  74. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post400_response.rb +2 -2
  75. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post201_response.rb +11 -2
  76. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post201_response_authorization_information.rb +29 -4
  77. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post201_response_issuer_information.rb +199 -0
  78. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post201_response_reversal_amount_details.rb +1 -1
  79. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post400_response.rb +2 -2
  80. data/lib/cybersource_rest_client/models/pts_v2_payments_voids_post201_response.rb +1 -1
  81. data/lib/cybersource_rest_client/models/pts_v2_payments_voids_post201_response_void_amount_details.rb +1 -1
  82. data/lib/cybersource_rest_client/models/pts_v2_payments_voids_post400_response.rb +2 -2
  83. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response.rb +350 -0
  84. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_error_information.rb +239 -0
  85. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_error_information_details.rb +228 -0
  86. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_merchant_information.rb +183 -0
  87. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_merchant_information_merchant_descriptor.rb +234 -0
  88. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_order_information.rb +183 -0
  89. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_order_information_amount_details.rb +274 -0
  90. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_processor_information.rb +299 -0
  91. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_recipient_information.rb +183 -0
  92. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_recipient_information_card.rb +224 -0
  93. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_status_information.rb +228 -0
  94. data/lib/cybersource_rest_client/models/pts_v2_payouts_post400_response.rb +1 -1
  95. data/lib/cybersource_rest_client/models/pts_v2_payouts_post502_response.rb +260 -0
  96. data/lib/cybersource_rest_client/models/pts_v2_payouts_post_response.rb +1 -1
  97. data/lib/cybersource_rest_client/models/ptsv2credits_point_of_sale_information.rb +186 -4
  98. data/lib/cybersource_rest_client/models/ptsv2credits_point_of_sale_information_emv.rb +3 -3
  99. data/lib/cybersource_rest_client/models/ptsv2credits_processing_information.rb +18 -9
  100. data/lib/cybersource_rest_client/models/ptsv2credits_processing_information_bank_transfer_options.rb +349 -0
  101. data/lib/cybersource_rest_client/models/ptsv2payments_aggregator_information.rb +2 -2
  102. data/lib/cybersource_rest_client/models/ptsv2payments_aggregator_information_sub_merchant.rb +9 -9
  103. data/lib/cybersource_rest_client/models/ptsv2payments_buyer_information.rb +29 -4
  104. data/lib/cybersource_rest_client/models/ptsv2payments_buyer_information_personal_identification.rb +3 -2
  105. data/lib/cybersource_rest_client/models/ptsv2payments_client_reference_information.rb +15 -6
  106. data/lib/cybersource_rest_client/models/ptsv2payments_client_reference_information_partner.rb +249 -0
  107. data/lib/cybersource_rest_client/models/ptsv2payments_consumer_authentication_information.rb +7 -7
  108. data/lib/cybersource_rest_client/models/ptsv2payments_installment_information.rb +364 -0
  109. data/lib/cybersource_rest_client/models/{ptsv2payments_processing_information_issuer.rb → ptsv2payments_issuer_information.rb} +2 -2
  110. data/lib/cybersource_rest_client/models/ptsv2payments_merchant_defined_information.rb +2 -2
  111. data/lib/cybersource_rest_client/models/ptsv2payments_merchant_information.rb +66 -7
  112. data/lib/cybersource_rest_client/models/ptsv2payments_merchant_information_merchant_descriptor.rb +0 -6
  113. data/lib/cybersource_rest_client/models/ptsv2payments_merchant_information_service_fee_descriptor.rb +249 -0
  114. data/lib/cybersource_rest_client/models/{ptsv2payments_processing_information_authorization_options_merchant_initiated_transaction.rb → ptsv2payments_merchant_initiated_transaction.rb} +3 -3
  115. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details.rb +84 -9
  116. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details_surcharge.rb +2 -2
  117. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details_tax_details.rb +32 -7
  118. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_bill_to.rb +12 -28
  119. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_bill_to_company.rb +349 -0
  120. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_invoice_details.rb +55 -5
  121. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_line_items.rb +139 -14
  122. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_ship_to.rb +2 -2
  123. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_shipping_details.rb +2 -2
  124. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +13 -4
  125. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank.rb +208 -0
  126. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank_account.rb +299 -0
  127. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_card.rb +47 -37
  128. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_customer.rb +1 -7
  129. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_fluid_data.rb +4 -4
  130. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_tokenized_card.rb +3 -18
  131. data/lib/cybersource_rest_client/models/ptsv2payments_point_of_sale_information.rb +253 -16
  132. data/lib/cybersource_rest_client/models/ptsv2payments_point_of_sale_information_emv.rb +12 -12
  133. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information.rb +20 -20
  134. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_authorization_options.rb +32 -12
  135. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_authorization_options_initiator.rb +4 -4
  136. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_bank_transfer_options.rb +424 -0
  137. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_capture_options.rb +1 -1
  138. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_recurring_options.rb +2 -2
  139. data/lib/cybersource_rest_client/models/ptsv2payments_recipient_information.rb +3 -3
  140. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_aggregator_information.rb +2 -2
  141. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_aggregator_information_sub_merchant.rb +8 -8
  142. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_buyer_information.rb +1 -1
  143. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_installment_information.rb +579 -0
  144. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_merchant_information.rb +39 -5
  145. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_order_information_amount_details.rb +59 -9
  146. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_order_information_bill_to.rb +11 -27
  147. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_order_information_invoice_details.rb +1 -1
  148. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_order_information_ship_to.rb +1 -1
  149. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_point_of_sale_information_emv.rb +2 -2
  150. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_processing_information.rb +5 -5
  151. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_processing_information_authorization_options.rb +2 -2
  152. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_merchant_information.rb +30 -5
  153. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_order_information_line_items.rb +9 -9
  154. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information.rb +22 -4
  155. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information_card.rb +5 -20
  156. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_processing_information.rb +4 -4
  157. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_processing_information_recurring_options.rb +1 -1
  158. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_client_reference_information.rb +14 -5
  159. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_client_reference_information_partner.rb +224 -0
  160. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_order_information.rb +10 -1
  161. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_order_information_amount_details.rb +199 -0
  162. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_order_information_line_items.rb +2 -2
  163. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_processing_information.rb +5 -5
  164. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_reversal_information.rb +0 -15
  165. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_reversal_information_amount_details.rb +2 -2
  166. data/lib/cybersource_rest_client/models/ptsv2payouts_client_reference_information.rb +199 -0
  167. data/lib/cybersource_rest_client/models/ptsv2payouts_merchant_information_merchant_descriptor.rb +0 -15
  168. data/lib/cybersource_rest_client/models/ptsv2payouts_payment_information_card.rb +0 -15
  169. data/lib/cybersource_rest_client/models/refund_capture_request.rb +1 -1
  170. data/lib/cybersource_rest_client/models/refund_payment_request.rb +1 -1
  171. data/lib/cybersource_rest_client/models/reporting_v3_conversion_details_get200_response.rb +213 -0
  172. data/lib/cybersource_rest_client/models/reporting_v3_conversion_details_get200_response_conversion_details.rb +275 -0
  173. data/lib/cybersource_rest_client/models/reporting_v3_conversion_details_get200_response_notes.rb +204 -0
  174. data/lib/cybersource_rest_client/models/reporting_v3_net_fundings_get200_response.rb +266 -0
  175. data/lib/cybersource_rest_client/models/reporting_v3_net_fundings_get200_response_net_funding_summaries.rb +281 -0
  176. data/lib/cybersource_rest_client/models/reporting_v3_net_fundings_get200_response_total_purchases.rb +203 -0
  177. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response.rb +273 -0
  178. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_authorizations.rb +255 -0
  179. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_fee_and_funding_details.rb +290 -0
  180. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_others.rb +260 -0
  181. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_request_details.rb +235 -0
  182. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_settlement_statuses.rb +240 -0
  183. data/lib/cybersource_rest_client/models/reporting_v3_purchase_refund_details_get200_response_settlements.rb +304 -0
  184. data/lib/cybersource_rest_client/models/reporting_v3_report_definitions_get200_response_report_definitions.rb +1 -0
  185. data/lib/cybersource_rest_client/models/reporting_v3_report_definitions_name_get200_response_attributes.rb +2 -0
  186. data/lib/cybersource_rest_client/models/reporting_v3_report_subscriptions_get200_response_subscriptions.rb +13 -13
  187. data/lib/cybersource_rest_client/models/reporting_v3_reports_get200_response_reports.rb +18 -8
  188. data/lib/cybersource_rest_client/models/reporting_v3_reports_id_get200_response.rb +15 -15
  189. data/lib/cybersource_rest_client/models/{reporting_v3_report_subscriptions_get200_response_report_preferences.rb → reporting_v3_reports_id_get200_response_report_preferences.rb} +1 -1
  190. data/lib/cybersource_rest_client/models/{reporting_v3_notificationof_changes_get400_response.rb → reportingv3_report_downloads_get400_response.rb} +42 -52
  191. data/lib/cybersource_rest_client/models/reportingv3_report_downloads_get400_response_details.rb +195 -0
  192. data/lib/cybersource_rest_client/models/reportingv3reports_report_preferences.rb +229 -0
  193. data/lib/cybersource_rest_client/models/request_body.rb +74 -104
  194. data/lib/cybersource_rest_client/models/request_body_1.rb +159 -55
  195. data/lib/cybersource_rest_client/models/tms_v1_paymentinstruments_get200_response.rb +331 -0
  196. data/lib/cybersource_rest_client/models/tms_v1_paymentinstruments_post201_response.rb +1 -1
  197. data/lib/cybersource_rest_client/models/tms_v1_paymentinstruments_post201_response_card.rb +302 -0
  198. data/lib/cybersource_rest_client/models/tmsv1instrumentidentifiers_bank_account.rb +48 -0
  199. data/lib/cybersource_rest_client/models/tmsv1instrumentidentifiers_card.rb +24 -0
  200. data/lib/cybersource_rest_client/models/tmsv1instrumentidentifiers_merchant_initiated_transaction.rb +199 -0
  201. data/lib/cybersource_rest_client/models/tmsv1instrumentidentifiers_processing_information_authorization_options_initiator.rb +1 -1
  202. data/lib/cybersource_rest_client/models/tmsv1paymentinstruments_bill_to.rb +183 -0
  203. data/lib/cybersource_rest_client/models/tmsv1paymentinstruments_buyer_information.rb +39 -0
  204. data/lib/cybersource_rest_client/models/tmsv1paymentinstruments_instrument_identifier.rb +24 -0
  205. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_error_information.rb +1 -1
  206. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_merchant_information_merchant_descriptor.rb +0 -15
  207. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information.rb +1 -1
  208. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_card.rb +0 -30
  209. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_customer.rb +184 -0
  210. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_order_information.rb +1 -1
  211. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_order_information_amount_details.rb +224 -0
  212. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_payment_information.rb +1 -1
  213. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_payment_information_card.rb +0 -15
  214. data/lib/cybersource_rest_client/models/tss_v2_transactions_post400_response.rb +1 -1
  215. data/lib/cybersource_rest_client/models/ums_v1_users_get400_response.rb +271 -0
  216. metadata +70 -10
  217. data/lib/cybersource_rest_client/api/transaction_batch_api.rb +0 -77
@@ -14,13 +14,13 @@ require 'date'
14
14
 
15
15
  module CyberSource
16
16
  class Ptsv2creditsPointOfSaleInformationEmv
17
- # EMV data that is transmitted from the chip card to the issuer, and from the issuer to the chip card. The EMV data is in the tag-length-value format and includes chip card tags, terminal tags, and transaction detail tags. `Important` The following tags contain sensitive information and **must not** be included in this field: - **56**: Track 1 equivalent data - **57**: Track 2 equivalent data - **5A**: Application PAN - **5F20**: Cardholder name - **5F24**: Application expiration date (This sensitivity has been relaxed for cmcic, amexdirect, fdiglobal, opdfde, six) - **99**: Transaction PIN - **9F0B**: Cardholder name (extended) - **9F1F**: Track 1 discretionary data - **9F20**: Track 2 discretionary data For captures, this field is required for contact EMV transactions. Otherwise, it is optional. For credits, this field is required for contact EMV stand-alone credits and contactless EMV stand-alone credits. Otherwise, it is optional. `Important` For contact EMV captures, contact EMV stand-alone credits, and contactless EMV stand-alone credits, you must include the following tags in this field. For all other types of EMV transactions, the following tags are optional. - **95**: Terminal verification results - **9F10**: Issuer application data - **9F26**: Application cryptogram
17
+ # EMV data that is transmitted from the chip card to the issuer, and from the issuer to the chip card. The EMV data is in the tag-length-value format and includes chip card tags, terminal tags, and transaction detail tags. See \"Europay, MasterCard, Visa (EMV),\" page 10. For information about the individual tags, see the “Application Specification” section in the EMV 4.3 Specifications: http://emvco.com **Important** The following tags contain sensitive information and **must not** be included in this field: - **56**: Track 1 equivalent data - **57**: Track 2 equivalent data - **5A**: Application PAN - **5F20**: Cardholder name - **5F24**: Application expiration date (This sensitivity has been relaxed for cmcic, amexdirect, fdiglobal, opdfde, and six) - **99**: Transaction PIN - **9F0B**: Cardholder name (extended) - **9F1F**: Track 1 discretionary data - **9F20**: Track 2 discretionary data For captures, this field is required for contact EMV transactions. Otherwise, it is optional. For credits, this field is required for contact EMV stand-alone credits and contactless EMV stand-alone credits. Otherwise, it is optional. **Important** For contact EMV captures, contact EMV stand-alone credits, and contactless EMV stand-alone credits, you must include the following tags in this field. For all other types of EMV transactions, the following tags are optional. - **95**: Terminal verification results - **9F10**: Issuer application data - **9F26**: Application cryptogram
18
18
  attr_accessor :tags
19
19
 
20
- # Indicates whether a fallback method was used to enter credit card information into the POS terminal. When a technical problem prevents a successful exchange of information between a chip card and a chip-capable terminal: 1. Swipe the card or key the credit card information into the POS terminal. 2. Use the pos_entry_mode field to indicate whether the information was swiped or keyed. This field is supported only on **Chase Paymentech Solutions** and **GPN**.
20
+ # Indicates whether a fallback method was used to enter credit card information into the POS terminal. When a technical problem prevents a successful exchange of information between a chip card and a chip-capable terminal: 1. Swipe the card or key the credit card information into the POS terminal. 2. Use the pointOfSaleInformation.entryMode field to indicate whether the information was swiped or keyed. Possible values: - **true** - **false** (default) This field is supported only on **Chase Paymentech Solutions** and **GPN**.
21
21
  attr_accessor :fallback
22
22
 
23
- # Reason for the EMV fallback transaction. An EMV fallback transaction occurs when an EMV transaction fails for one of these reasons: - Technical failure: the EMV terminal or EMV card cannot read and process chip data. - Empty candidate list failure: the EMV terminal does not have any applications in common with the EMV card. EMV terminals are coded to determine whether the terminal and EMV card have any applications in common. EMV terminals provide this information to you. Possible values: - **1**: Transaction was initiated with information from a magnetic stripe, and the previous transaction at the EMV terminal either used information from a successful chip read or it was not a chip transaction. - **2**: Transaction was initiated with information from a magnetic stripe, and the previous transaction at the EMV terminal was an EMV fallback transaction because the attempted chip read was unsuccessful. This field is supported only on **GPN**.
23
+ # Reason for the EMV fallback transaction. An EMV fallback transaction occurs when an EMV transaction fails for one of these reasons: - Technical failure: the EMV terminal or EMV card cannot read and process chip data. - Empty candidate list failure: the EMV terminal does not have any applications in common with the EMV card. EMV terminals are coded to determine whether the terminal and EMV card have any applications in common. EMV terminals provide this information to you. Possible values: - **1**: Transaction was initiated with information from a magnetic stripe, and the previous transaction at the EMV terminal either used information from a successful chip read or it was not a chip transaction. - **2**: Transaction was initiated with information from a magnetic stripe, and the previous transaction at the EMV terminal was an EMV fallback transaction because the attempted chip read was unsuccessful. This field is supported only on **GPN**. **NOTE**: Merchants must include this field in a request whenever a transaction must fall back to swiped mode.
24
24
  attr_accessor :fallback_condition
25
25
 
26
26
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -17,22 +17,22 @@ module CyberSource
17
17
  # Type of transaction. Some payment card companies use this information when determining discount rates. When you omit this field for **Ingenico ePayments**, the processor uses the default transaction type they have on file for you instead of the default value listed here.
18
18
  attr_accessor :commerce_indicator
19
19
 
20
- # Value that identifies the processor/acquirer to use for the transaction. This value is supported only for **CyberSource through VisaNet**.
20
+ # Value that identifies the processor/acquirer to use for the transaction. This value is supported only for **CyberSource through VisaNet**. Contact CyberSource Customer Support to get the value for this field.
21
21
  attr_accessor :processor_id
22
22
 
23
- # Type of digital payment solution that is being used for the transaction. Possible Values: - **visacheckout**: Visa Checkout. - **001**: Apple Pay. - **005**: Masterpass. Required for Masterpass transactions on OmniPay Direct. - **006**: Android Pay. - **008**: Samsung Pay.
23
+ # Type of digital payment solution for the transaction. Possible Values: - **visacheckout**: Visa Checkout. This value is required for Visa Checkout transactions. See Visa Checkout Using the SCMP API. - **005**: Masterpass. This value is required for Masterpass transactions on OmniPay Direct. See \"Masterpass,\" page 153.
24
24
  attr_accessor :payment_solution
25
25
 
26
26
  # Please check with Cybersource customer support to see if your merchant account is configured correctly so you can include this field in your request. * For Payouts: max length for FDCCompass is String (22).
27
27
  attr_accessor :reconciliation_id
28
28
 
29
- # Value that links the current payment request to the original request. Set this value to the ID that was returned in the reply message from the original payment request. This value is used for: - Partial authorizations. - Split shipments.
29
+ # Value that links the current authorization request to the original authorization request. Set this value to the ID that was returned in the reply message from the original authorization request. This value is used for: - Partial authorizations: See \"Partial Authorizations,\" page 88. - Split shipments: See \"Split Shipments,\" page 210.
30
30
  attr_accessor :link_id
31
31
 
32
- # Attribute that lets you define custom grouping for your processor reports. This field is supported only for **Litle**.
32
+ # Attribute that lets you define custom grouping for your processor reports. This field is supported only for **Worldpay VAP**. See \"Report Groups,\" page 234.
33
33
  attr_accessor :report_group
34
34
 
35
- # Identifier for the **Visa Checkout** order. Visa Checkout provides a unique order ID for every transaction in the Visa Checkout **callID** field.
35
+ # Identifier for the **Visa Checkout** order. Visa Checkout provides a unique order ID for every transaction in the Visa Checkout **callID** field. For more details, see Visa Checkout Using the SCMP API.
36
36
  attr_accessor :visa_checkout_id
37
37
 
38
38
  # Set this field to 3 to indicate that the request includes Level III data.
@@ -40,6 +40,8 @@ module CyberSource
40
40
 
41
41
  attr_accessor :recurring_options
42
42
 
43
+ attr_accessor :bank_transfer_options
44
+
43
45
  # Attribute mapping from ruby-style variable name to JSON key.
44
46
  def self.attribute_map
45
47
  {
@@ -51,7 +53,8 @@ module CyberSource
51
53
  :'report_group' => :'reportGroup',
52
54
  :'visa_checkout_id' => :'visaCheckoutId',
53
55
  :'purchase_level' => :'purchaseLevel',
54
- :'recurring_options' => :'recurringOptions'
56
+ :'recurring_options' => :'recurringOptions',
57
+ :'bank_transfer_options' => :'bankTransferOptions'
55
58
  }
56
59
  end
57
60
 
@@ -66,7 +69,8 @@ module CyberSource
66
69
  :'report_group' => :'String',
67
70
  :'visa_checkout_id' => :'String',
68
71
  :'purchase_level' => :'String',
69
- :'recurring_options' => :'Ptsv2paymentsidrefundsProcessingInformationRecurringOptions'
72
+ :'recurring_options' => :'Ptsv2paymentsidrefundsProcessingInformationRecurringOptions',
73
+ :'bank_transfer_options' => :'Ptsv2creditsProcessingInformationBankTransferOptions'
70
74
  }
71
75
  end
72
76
 
@@ -113,6 +117,10 @@ module CyberSource
113
117
  if attributes.has_key?(:'recurringOptions')
114
118
  self.recurring_options = attributes[:'recurringOptions']
115
119
  end
120
+
121
+ if attributes.has_key?(:'bankTransferOptions')
122
+ self.bank_transfer_options = attributes[:'bankTransferOptions']
123
+ end
116
124
  end
117
125
 
118
126
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -261,7 +269,8 @@ module CyberSource
261
269
  report_group == o.report_group &&
262
270
  visa_checkout_id == o.visa_checkout_id &&
263
271
  purchase_level == o.purchase_level &&
264
- recurring_options == o.recurring_options
272
+ recurring_options == o.recurring_options &&
273
+ bank_transfer_options == o.bank_transfer_options
265
274
  end
266
275
 
267
276
  # @see the `==` method
@@ -273,7 +282,7 @@ module CyberSource
273
282
  # Calculates hash code according to all attributes.
274
283
  # @return [Fixnum] Hash code
275
284
  def hash
276
- [commerce_indicator, processor_id, payment_solution, reconciliation_id, link_id, report_group, visa_checkout_id, purchase_level, recurring_options].hash
285
+ [commerce_indicator, processor_id, payment_solution, reconciliation_id, link_id, report_group, visa_checkout_id, purchase_level, recurring_options, bank_transfer_options].hash
277
286
  end
278
287
 
279
288
  # Builds the object from hash
@@ -0,0 +1,349 @@
1
+ =begin
2
+ #CyberSource Flex API
3
+
4
+ #Simple PAN tokenization service
5
+
6
+ OpenAPI spec version: 0.0.1
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.2.3
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module CyberSource
16
+ class Ptsv2creditsProcessingInformationBankTransferOptions
17
+ # Payment related information. This information is included on the customer’s statement.
18
+ attr_accessor :customer_memo
19
+
20
+ # Authorization method used for the transaction. See \"SEC Codes,\" page 89. TeleCheck Accepts only the following values: - **PPD** - **TEL** - **WEB**
21
+ attr_accessor :sec_code
22
+
23
+ # City in which the terminal is located. If more than four alphanumeric characters are submitted, the transaction will be declined. You cannot include any special characters.
24
+ attr_accessor :terminal_city
25
+
26
+ # State in which the terminal is located. If more than two alphanumeric characters are submitted, the transaction will be declined. You cannot include any special characters.
27
+ attr_accessor :terminal_state
28
+
29
+ # Effective date for the transaction. The effective date must be within 45 days of the current day. If you do not include this value, CyberSource sets the effective date to the next business day. Format: `MMDDYYYY` Supported only for the CyberSource ACH Service.
30
+ attr_accessor :effective_date
31
+
32
+ # Identifier for a partial payment or partial credit. The value for each debit request or credit request must be unique within the scope of the order. See \"Multiple Partial Credits,\" page 41.
33
+ attr_accessor :partial_payment_id
34
+
35
+ # Method used for settlement. Possible values: - **A**: Automated Clearing House (default for credits and for transactions using Canadian dollars) - **F**: Facsimile draft (U.S. dollars only) - **B**: Best possible (U.S. dollars only) (default if the field has not already been configured for your merchant ID) See \"Settlement Delivery Methods,\" page 44.
36
+ attr_accessor :settlement_method
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ def self.attribute_map
40
+ {
41
+ :'customer_memo' => :'customerMemo',
42
+ :'sec_code' => :'secCode',
43
+ :'terminal_city' => :'terminalCity',
44
+ :'terminal_state' => :'terminalState',
45
+ :'effective_date' => :'effectiveDate',
46
+ :'partial_payment_id' => :'partialPaymentId',
47
+ :'settlement_method' => :'settlementMethod'
48
+ }
49
+ end
50
+
51
+ # Attribute type mapping.
52
+ def self.swagger_types
53
+ {
54
+ :'customer_memo' => :'String',
55
+ :'sec_code' => :'String',
56
+ :'terminal_city' => :'String',
57
+ :'terminal_state' => :'String',
58
+ :'effective_date' => :'String',
59
+ :'partial_payment_id' => :'String',
60
+ :'settlement_method' => :'String'
61
+ }
62
+ end
63
+
64
+ # Initializes the object
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ def initialize(attributes = {})
67
+ return unless attributes.is_a?(Hash)
68
+
69
+ # convert string to symbol for hash key
70
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
71
+
72
+ if attributes.has_key?(:'customerMemo')
73
+ self.customer_memo = attributes[:'customerMemo']
74
+ end
75
+
76
+ if attributes.has_key?(:'secCode')
77
+ self.sec_code = attributes[:'secCode']
78
+ end
79
+
80
+ if attributes.has_key?(:'terminalCity')
81
+ self.terminal_city = attributes[:'terminalCity']
82
+ end
83
+
84
+ if attributes.has_key?(:'terminalState')
85
+ self.terminal_state = attributes[:'terminalState']
86
+ end
87
+
88
+ if attributes.has_key?(:'effectiveDate')
89
+ self.effective_date = attributes[:'effectiveDate']
90
+ end
91
+
92
+ if attributes.has_key?(:'partialPaymentId')
93
+ self.partial_payment_id = attributes[:'partialPaymentId']
94
+ end
95
+
96
+ if attributes.has_key?(:'settlementMethod')
97
+ self.settlement_method = attributes[:'settlementMethod']
98
+ end
99
+ end
100
+
101
+ # Show invalid properties with the reasons. Usually used together with valid?
102
+ # @return Array for valid properties with the reasons
103
+ def list_invalid_properties
104
+ invalid_properties = Array.new
105
+ if !@customer_memo.nil? && @customer_memo.to_s.length > 80
106
+ invalid_properties.push('invalid value for "customer_memo", the character length must be smaller than or equal to 80.')
107
+ end
108
+
109
+ if !@sec_code.nil? && @sec_code.to_s.length > 3
110
+ invalid_properties.push('invalid value for "sec_code", the character length must be smaller than or equal to 3.')
111
+ end
112
+
113
+ if !@terminal_city.nil? && @terminal_city.to_s.length > 4
114
+ invalid_properties.push('invalid value for "terminal_city", the character length must be smaller than or equal to 4.')
115
+ end
116
+
117
+ if !@terminal_state.nil? && @terminal_state.to_s.length > 2
118
+ invalid_properties.push('invalid value for "terminal_state", the character length must be smaller than or equal to 2.')
119
+ end
120
+
121
+ if !@effective_date.nil? && @effective_date.to_s.length > 8
122
+ invalid_properties.push('invalid value for "effective_date", the character length must be smaller than or equal to 8.')
123
+ end
124
+
125
+ if !@partial_payment_id.nil? && @partial_payment_id.to_s.length > 25
126
+ invalid_properties.push('invalid value for "partial_payment_id", the character length must be smaller than or equal to 25.')
127
+ end
128
+
129
+ if !@settlement_method.nil? && @settlement_method.to_s.length > 1
130
+ invalid_properties.push('invalid value for "settlement_method", the character length must be smaller than or equal to 1.')
131
+ end
132
+
133
+ invalid_properties
134
+ end
135
+
136
+ # Check to see if the all the properties in the model are valid
137
+ # @return true if the model is valid
138
+ def valid?
139
+ return false if !@customer_memo.nil? && @customer_memo.to_s.length > 80
140
+ return false if !@sec_code.nil? && @sec_code.to_s.length > 3
141
+ return false if !@terminal_city.nil? && @terminal_city.to_s.length > 4
142
+ return false if !@terminal_state.nil? && @terminal_state.to_s.length > 2
143
+ return false if !@effective_date.nil? && @effective_date.to_s.length > 8
144
+ return false if !@partial_payment_id.nil? && @partial_payment_id.to_s.length > 25
145
+ return false if !@settlement_method.nil? && @settlement_method.to_s.length > 1
146
+ true
147
+ end
148
+
149
+ # Custom attribute writer method with validation
150
+ # @param [Object] customer_memo Value to be assigned
151
+ def customer_memo=(customer_memo)
152
+ if !customer_memo.nil? && customer_memo.to_s.length > 80
153
+ fail ArgumentError, 'invalid value for "customer_memo", the character length must be smaller than or equal to 80.'
154
+ end
155
+
156
+ @customer_memo = customer_memo
157
+ end
158
+
159
+ # Custom attribute writer method with validation
160
+ # @param [Object] sec_code Value to be assigned
161
+ def sec_code=(sec_code)
162
+ if !sec_code.nil? && sec_code.to_s.length > 3
163
+ fail ArgumentError, 'invalid value for "sec_code", the character length must be smaller than or equal to 3.'
164
+ end
165
+
166
+ @sec_code = sec_code
167
+ end
168
+
169
+ # Custom attribute writer method with validation
170
+ # @param [Object] terminal_city Value to be assigned
171
+ def terminal_city=(terminal_city)
172
+ if !terminal_city.nil? && terminal_city.to_s.length > 4
173
+ fail ArgumentError, 'invalid value for "terminal_city", the character length must be smaller than or equal to 4.'
174
+ end
175
+
176
+ @terminal_city = terminal_city
177
+ end
178
+
179
+ # Custom attribute writer method with validation
180
+ # @param [Object] terminal_state Value to be assigned
181
+ def terminal_state=(terminal_state)
182
+ if !terminal_state.nil? && terminal_state.to_s.length > 2
183
+ fail ArgumentError, 'invalid value for "terminal_state", the character length must be smaller than or equal to 2.'
184
+ end
185
+
186
+ @terminal_state = terminal_state
187
+ end
188
+
189
+ # Custom attribute writer method with validation
190
+ # @param [Object] effective_date Value to be assigned
191
+ def effective_date=(effective_date)
192
+ if !effective_date.nil? && effective_date.to_s.length > 8
193
+ fail ArgumentError, 'invalid value for "effective_date", the character length must be smaller than or equal to 8.'
194
+ end
195
+
196
+ @effective_date = effective_date
197
+ end
198
+
199
+ # Custom attribute writer method with validation
200
+ # @param [Object] partial_payment_id Value to be assigned
201
+ def partial_payment_id=(partial_payment_id)
202
+ if !partial_payment_id.nil? && partial_payment_id.to_s.length > 25
203
+ fail ArgumentError, 'invalid value for "partial_payment_id", the character length must be smaller than or equal to 25.'
204
+ end
205
+
206
+ @partial_payment_id = partial_payment_id
207
+ end
208
+
209
+ # Custom attribute writer method with validation
210
+ # @param [Object] settlement_method Value to be assigned
211
+ def settlement_method=(settlement_method)
212
+ if !settlement_method.nil? && settlement_method.to_s.length > 1
213
+ fail ArgumentError, 'invalid value for "settlement_method", the character length must be smaller than or equal to 1.'
214
+ end
215
+
216
+ @settlement_method = settlement_method
217
+ end
218
+
219
+ # Checks equality by comparing each attribute.
220
+ # @param [Object] Object to be compared
221
+ def ==(o)
222
+ return true if self.equal?(o)
223
+ self.class == o.class &&
224
+ customer_memo == o.customer_memo &&
225
+ sec_code == o.sec_code &&
226
+ terminal_city == o.terminal_city &&
227
+ terminal_state == o.terminal_state &&
228
+ effective_date == o.effective_date &&
229
+ partial_payment_id == o.partial_payment_id &&
230
+ settlement_method == o.settlement_method
231
+ end
232
+
233
+ # @see the `==` method
234
+ # @param [Object] Object to be compared
235
+ def eql?(o)
236
+ self == o
237
+ end
238
+
239
+ # Calculates hash code according to all attributes.
240
+ # @return [Fixnum] Hash code
241
+ def hash
242
+ [customer_memo, sec_code, terminal_city, terminal_state, effective_date, partial_payment_id, settlement_method].hash
243
+ end
244
+
245
+ # Builds the object from hash
246
+ # @param [Hash] attributes Model attributes in the form of hash
247
+ # @return [Object] Returns the model itself
248
+ def build_from_hash(attributes)
249
+ return nil unless attributes.is_a?(Hash)
250
+ self.class.swagger_types.each_pair do |key, type|
251
+ if type =~ /\AArray<(.*)>/i
252
+ # check to ensure the input is an array given that the the attribute
253
+ # is documented as an array but the input is not
254
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
255
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
256
+ end
257
+ elsif !attributes[self.class.attribute_map[key]].nil?
258
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
259
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
260
+ end
261
+
262
+ self
263
+ end
264
+
265
+ # Deserializes the data based on type
266
+ # @param string type Data type
267
+ # @param string value Value to be deserialized
268
+ # @return [Object] Deserialized data
269
+ def _deserialize(type, value)
270
+ case type.to_sym
271
+ when :DateTime
272
+ DateTime.parse(value)
273
+ when :Date
274
+ Date.parse(value)
275
+ when :String
276
+ value.to_s
277
+ when :Integer
278
+ value.to_i
279
+ when :Float
280
+ value.to_f
281
+ when :BOOLEAN
282
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
283
+ true
284
+ else
285
+ false
286
+ end
287
+ when :Object
288
+ # generic object (usually a Hash), return directly
289
+ value
290
+ when /\AArray<(?<inner_type>.+)>\z/
291
+ inner_type = Regexp.last_match[:inner_type]
292
+ value.map { |v| _deserialize(inner_type, v) }
293
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
294
+ k_type = Regexp.last_match[:k_type]
295
+ v_type = Regexp.last_match[:v_type]
296
+ {}.tap do |hash|
297
+ value.each do |k, v|
298
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
299
+ end
300
+ end
301
+ else # model
302
+ temp_model = CyberSource.const_get(type).new
303
+ temp_model.build_from_hash(value)
304
+ end
305
+ end
306
+
307
+ # Returns the string representation of the object
308
+ # @return [String] String presentation of the object
309
+ def to_s
310
+ to_hash.to_s
311
+ end
312
+
313
+ # to_body is an alias to to_hash (backward compatibility)
314
+ # @return [Hash] Returns the object in the form of hash
315
+ def to_body
316
+ to_hash
317
+ end
318
+
319
+ # Returns the object in the form of hash
320
+ # @return [Hash] Returns the object in the form of hash
321
+ def to_hash
322
+ hash = {}
323
+ self.class.attribute_map.each_pair do |attr, param|
324
+ value = self.send(attr)
325
+ next if value.nil?
326
+ hash[param] = _to_hash(value)
327
+ end
328
+ hash
329
+ end
330
+
331
+ # Outputs non-array value in the form of hash
332
+ # For object, use to_hash. Otherwise, just return the value
333
+ # @param [Object] value Any valid value
334
+ # @return [Hash] Returns the value in the form of hash
335
+ def _to_hash(value)
336
+ if value.is_a?(Array)
337
+ value.compact.map { |v| _to_hash(v) }
338
+ elsif value.is_a?(Hash)
339
+ {}.tap do |hash|
340
+ value.each { |k, v| hash[k] = _to_hash(v) }
341
+ end
342
+ elsif value.respond_to? :to_hash
343
+ value.to_hash
344
+ else
345
+ value
346
+ end
347
+ end
348
+ end
349
+ end