cybersource_rest_client 0.0.83 → 0.0.84

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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/lib/AuthenticationSDK/authentication/jwt/JwtToken.rb +46 -27
  3. data/lib/AuthenticationSDK/core/MerchantConfig.rb +82 -48
  4. data/lib/AuthenticationSDK/util/Cache.rb +7 -4
  5. data/lib/AuthenticationSDK/util/Constants.rb +6 -0
  6. data/lib/AuthenticationSDK/util/MLEUtility.rb +9 -0
  7. data/lib/cybersource_rest_client/api/batches_api.rb +1 -1
  8. data/lib/cybersource_rest_client/api/create_new_webhooks_api.rb +14 -22
  9. data/lib/cybersource_rest_client/api/credentials_api.rb +104 -0
  10. data/lib/cybersource_rest_client/api/customer_payment_instrument_api.rb +3 -3
  11. data/lib/cybersource_rest_client/api/enrollment_api.rb +2 -2
  12. data/lib/cybersource_rest_client/api/instructions_api.rb +10 -10
  13. data/lib/cybersource_rest_client/api/instrument_identifier_api.rb +3 -3
  14. data/lib/cybersource_rest_client/api/manage_webhooks_api.rb +20 -28
  15. data/lib/cybersource_rest_client/api/network_tokens_api.rb +654 -0
  16. data/lib/cybersource_rest_client/api/plans_api.rb +1 -1
  17. data/lib/cybersource_rest_client/api/subscriptions_api.rb +183 -1
  18. data/lib/cybersource_rest_client/api/subscriptions_follow_ons_api.rb +1 -1
  19. data/lib/cybersource_rest_client/api_client.rb +4 -0
  20. data/lib/cybersource_rest_client/models/account_validations_request.rb +15 -5
  21. data/lib/cybersource_rest_client/models/acpv1instructions_decline_threshold.rb +1 -1
  22. data/lib/cybersource_rest_client/models/acpv1instructions_mandates.rb +1 -1
  23. data/lib/cybersource_rest_client/models/acpv1instructions_recurring_payment_information.rb +1 -1
  24. data/lib/cybersource_rest_client/models/acpv1instructionsinstruction_idconfirmations_processor_information.rb +1 -1
  25. data/lib/cybersource_rest_client/models/acpv1instructionsinstruction_idconfirmations_processor_information_payment_instrument.rb +1 -1
  26. data/lib/cybersource_rest_client/models/acpv1instructionsinstruction_idcredentials_order_information_amount_detail.rb +1 -1
  27. data/lib/cybersource_rest_client/models/acpv1mppcredentials_challenge.rb +369 -0
  28. data/lib/cybersource_rest_client/models/acpv1mppcredentials_challenge_encryption_jwk.rb +336 -0
  29. data/lib/cybersource_rest_client/models/acpv1tokens_assurance_data.rb +7 -7
  30. data/lib/cybersource_rest_client/models/acpv1tokens_authenticated_identities.rb +1 -1
  31. data/lib/cybersource_rest_client/models/acpv1tokens_authentication_context.rb +1 -1
  32. data/lib/cybersource_rest_client/models/acpv1tokens_bill_to.rb +1 -1
  33. data/lib/cybersource_rest_client/models/acpv1tokens_buyer_information.rb +1 -1
  34. data/lib/cybersource_rest_client/models/acpv1tokens_consumer_identity.rb +1 -1
  35. data/lib/cybersource_rest_client/models/acpv1tokens_device_information.rb +1 -1
  36. data/lib/cybersource_rest_client/models/acpv1tokens_enrollment_reference_data.rb +1 -1
  37. data/lib/cybersource_rest_client/models/acpv1tokens_payment_information.rb +1 -1
  38. data/lib/cybersource_rest_client/models/auth_reversal_request.rb +11 -1
  39. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information.rb +32 -6
  40. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information_bank.rb +1 -1
  41. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information_bank_account.rb +1 -1
  42. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information_customer.rb +196 -0
  43. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information_instrument_identifier.rb +196 -0
  44. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_payment_information_payment_instrument.rb +196 -0
  45. data/lib/cybersource_rest_client/models/bavsv1accountvalidations_token_information.rb +208 -0
  46. data/lib/cybersource_rest_client/models/card_processing_config_common_processors.rb +105 -1
  47. data/lib/cybersource_rest_client/models/commerce_solutions_products.rb +15 -5
  48. data/lib/cybersource_rest_client/models/create_credit_request.rb +15 -5
  49. data/lib/cybersource_rest_client/models/get_all_subscriptions_response_order_information_amount_details_surcharge.rb +22 -5
  50. data/lib/cybersource_rest_client/models/get_subscriptions_payments_response.rb +247 -0
  51. data/lib/cybersource_rest_client/models/get_subscriptions_payments_response_1.rb +224 -0
  52. data/lib/cybersource_rest_client/models/{pbl_payment_links_post201_response__links.rb → get_subscriptions_payments_response_1__links.rb} +1 -1
  53. data/lib/cybersource_rest_client/models/get_subscriptions_payments_response__links.rb +209 -0
  54. data/lib/cybersource_rest_client/models/get_subscriptions_payments_response_cycles_completed_count.rb +191 -0
  55. data/lib/cybersource_rest_client/models/get_subscriptions_payments_response_subscription_payment.rb +356 -0
  56. data/lib/cybersource_rest_client/models/inline_response_201_1_tokenized_card.rb +26 -5
  57. data/lib/cybersource_rest_client/models/inline_response_201_4_setups_commerce_solutions.rb +15 -5
  58. data/lib/cybersource_rest_client/models/inline_response_201_4_setups_payments.rb +25 -5
  59. data/lib/cybersource_rest_client/models/inline_response_201_4_setups_risk.rb +15 -5
  60. data/lib/cybersource_rest_client/models/inline_response_201_4_setups_value_added_services.rb +25 -5
  61. data/lib/cybersource_rest_client/models/inline_response_400_10.rb +30 -75
  62. data/lib/cybersource_rest_client/models/{inline_response_400_8_details.rb → inline_response_400_10_details.rb} +1 -1
  63. data/lib/cybersource_rest_client/models/inline_response_400_11.rb +235 -0
  64. data/lib/cybersource_rest_client/models/{inline_response_400_7_details.rb → inline_response_400_11_details.rb} +3 -3
  65. data/lib/cybersource_rest_client/models/inline_response_400_12.rb +281 -0
  66. data/lib/cybersource_rest_client/models/inline_response_400_6.rb +37 -60
  67. data/lib/cybersource_rest_client/models/inline_response_400_7.rb +6 -6
  68. data/lib/cybersource_rest_client/models/inline_response_400_8.rb +58 -36
  69. data/lib/cybersource_rest_client/models/{inline_response_400_6_fields.rb → inline_response_400_8_fields.rb} +1 -1
  70. data/lib/cybersource_rest_client/models/inline_response_400_9.rb +16 -16
  71. data/lib/cybersource_rest_client/models/inline_response_400_9_details.rb +2 -2
  72. data/lib/cybersource_rest_client/models/inline_response_404_3.rb +1 -1
  73. data/lib/cybersource_rest_client/models/inline_response_422_1.rb +1 -1
  74. data/lib/cybersource_rest_client/models/iplv2paymentlinks_order_information_line_items.rb +73 -5
  75. data/lib/cybersource_rest_client/models/mit_reversal_request.rb +11 -1
  76. data/lib/cybersource_rest_client/models/mpp_credentials_request.rb +221 -0
  77. data/lib/cybersource_rest_client/models/mpp_credentials_response200.rb +338 -0
  78. data/lib/cybersource_rest_client/models/patch_customer_payment_instrument_request.rb +1 -1
  79. data/lib/cybersource_rest_client/models/patch_customer_request.rb +1 -1
  80. data/lib/cybersource_rest_client/models/patch_payment_instrument_request.rb +1 -1
  81. data/lib/cybersource_rest_client/models/payment_instrument_list_1__embedded.rb +1 -1
  82. data/lib/cybersource_rest_client/models/payment_instrument_list__embedded.rb +1 -1
  83. data/lib/cybersource_rest_client/models/{payment_instrument_list_1__embedded__embedded.rb → payment_instrument_list__embedded__embedded.rb} +1 -1
  84. data/lib/cybersource_rest_client/models/{payment_instrument_list_1__embedded_payment_instruments.rb → payment_instrument_list__embedded_payment_instruments.rb} +2 -2
  85. data/lib/cybersource_rest_client/models/payments_products.rb +25 -5
  86. data/lib/cybersource_rest_client/models/payments_products_currency_conversion_configuration_information_configurations_processors.rb +14 -2
  87. data/lib/cybersource_rest_client/models/payments_products_microform.rb +199 -0
  88. data/lib/cybersource_rest_client/models/payments_products_microform_configuration_information.rb +199 -0
  89. data/lib/cybersource_rest_client/models/payments_products_microform_configuration_information_configurations.rb +189 -0
  90. data/lib/cybersource_rest_client/models/payments_products_microform_configuration_information_configurations_features.rb +189 -0
  91. data/lib/cybersource_rest_client/models/payments_products_microform_configuration_information_configurations_features_gateway_agnostic.rb +189 -0
  92. data/lib/cybersource_rest_client/models/payments_products_microform_subscription_information.rb +227 -0
  93. data/lib/cybersource_rest_client/models/pbl_payment_links_get200_response.rb +1 -1
  94. data/lib/cybersource_rest_client/models/pbl_payment_links_post201_response.rb +1 -1
  95. data/lib/cybersource_rest_client/models/post_customer_payment_instrument_request.rb +1 -1
  96. data/lib/cybersource_rest_client/models/post_customer_request.rb +1 -1
  97. data/lib/cybersource_rest_client/models/post_payment_instrument_request.rb +1 -1
  98. data/lib/cybersource_rest_client/models/post_tokenized_card_request.rb +15 -5
  99. data/lib/cybersource_rest_client/models/pts_v2_create_billing_agreement_post201_response_agreement_information.rb +80 -1
  100. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response.rb +41 -1
  101. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_merchant_information.rb +196 -0
  102. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_payment_account_information.rb +189 -0
  103. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_payment_information.rb +15 -5
  104. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_payment_information_account_features.rb +196 -0
  105. data/lib/cybersource_rest_client/models/pts_v2_credits_post201_response_token_information.rb +189 -0
  106. data/lib/cybersource_rest_client/models/pts_v2_modify_billing_agreement_post201_response_agreement_information.rb +35 -1
  107. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response_point_of_sale_information.rb +22 -5
  108. data/lib/cybersource_rest_client/models/pts_v2_payments_captures_post201_response_processor_information.rb +1 -1
  109. data/lib/cybersource_rest_client/models/pts_v2_payments_order_post201_response_order_information_shipping_details.rb +1 -1
  110. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_consumer_authentication_information.rb +106 -5
  111. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_consumer_authentication_information_strong_authentication.rb +22 -5
  112. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_account_information.rb +15 -5
  113. data/lib/cybersource_rest_client/models/{pts_v2_payments_post201_response_payment_information_tokenized_card.rb → pts_v2_payments_post201_response_payment_account_information_tokenized_card.rb} +1 -1
  114. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information.rb +1 -1
  115. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processing_information.rb +18 -1
  116. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_processor_information.rb +23 -6
  117. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_token_information.rb +15 -5
  118. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_token_information_third_party_token.rb +213 -0
  119. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response.rb +1 -1
  120. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response_error_information.rb +1 -1
  121. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response_order_information_amount_details.rb +18 -1
  122. data/lib/cybersource_rest_client/models/pts_v2_payments_refund_post201_response_processor_information.rb +19 -2
  123. data/lib/cybersource_rest_client/models/pts_v2_payments_reversals_post201_response_processor_information.rb +1 -1
  124. data/lib/cybersource_rest_client/models/pts_v2_payments_voids_post201_response_processor_information.rb +7 -1
  125. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_processor_information.rb +45 -5
  126. data/lib/cybersource_rest_client/models/{pull_funds201_response_processor_information_avs.rb → pts_v2_payouts_post201_response_processor_information_avs.rb} +1 -1
  127. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_processor_information_customer.rb +196 -0
  128. data/lib/cybersource_rest_client/models/pts_v2_payouts_post201_response_processor_information_electronic_verification_results.rb +281 -0
  129. data/lib/cybersource_rest_client/models/ptsv1pullfundstransfer_buyer_information.rb +196 -0
  130. data/lib/cybersource_rest_client/models/ptsv1pullfundstransfer_order_information_amount_details.rb +1 -1
  131. data/lib/cybersource_rest_client/models/ptsv1pullfundstransfer_processing_information.rb +18 -5
  132. data/lib/cybersource_rest_client/models/ptsv1pushfundstransfer_processing_information.rb +19 -6
  133. data/lib/cybersource_rest_client/models/ptsv2billingagreements_agreement_information.rb +84 -5
  134. data/lib/cybersource_rest_client/models/ptsv2billingagreements_order_information.rb +12 -2
  135. data/lib/cybersource_rest_client/models/ptsv2billingagreements_order_information_amount_details.rb +230 -0
  136. data/lib/cybersource_rest_client/models/{ptsv2intents_order_information_invoice_details.rb → ptsv2billingagreements_order_information_invoice_details.rb} +1 -1
  137. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_bank.rb +15 -5
  138. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_bank_account_alias.rb +207 -0
  139. data/lib/cybersource_rest_client/models/ptsv2billingagreements_processing_information.rb +18 -1
  140. data/lib/cybersource_rest_client/models/ptsv2billingagreementsid_agreement_information.rb +56 -5
  141. data/lib/cybersource_rest_client/models/ptsv2billingagreementsid_processing_information.rb +18 -1
  142. data/lib/cybersource_rest_client/models/ptsv2credits_processing_information.rb +35 -5
  143. data/lib/cybersource_rest_client/models/ptsv2credits_token_information.rb +228 -0
  144. data/lib/cybersource_rest_client/models/ptsv2intents_order_information.rb +1 -1
  145. data/lib/cybersource_rest_client/models/ptsv2intentsid_order_information.rb +1 -1
  146. data/lib/cybersource_rest_client/models/ptsv2payments_aggregator_information_sub_merchant.rb +15 -5
  147. data/lib/cybersource_rest_client/models/ptsv2payments_consumer_authentication_information.rb +16 -5
  148. data/lib/cybersource_rest_client/models/ptsv2payments_order_information.rb +28 -1
  149. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_digital_currency.rb +231 -0
  150. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_shipping_details.rb +23 -6
  151. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +32 -5
  152. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank.rb +15 -5
  153. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_bank_account_alias.rb +207 -0
  154. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_third_party_token.rb +196 -0
  155. data/lib/cybersource_rest_client/models/ptsv2payments_point_of_sale_information.rb +18 -1
  156. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information.rb +72 -6
  157. data/lib/cybersource_rest_client/models/ptsv2payments_processing_information_program_indicators.rb +202 -0
  158. data/lib/cybersource_rest_client/models/ptsv2payments_processor_information.rb +56 -5
  159. data/lib/cybersource_rest_client/models/ptsv2payments_recipient_information.rb +16 -5
  160. data/lib/cybersource_rest_client/models/ptsv2payments_sender_information.rb +16 -5
  161. data/lib/cybersource_rest_client/models/ptsv2payments_token_information.rb +32 -5
  162. data/lib/cybersource_rest_client/models/ptsv2payments_token_information_token_authentication_information.rb +193 -0
  163. data/lib/cybersource_rest_client/models/ptsv2payments_token_information_token_authentication_information_authenticated_identities.rb +252 -0
  164. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_aggregator_information_sub_merchant.rb +15 -5
  165. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_order_information_shipping_details.rb +100 -5
  166. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_point_of_sale_information.rb +22 -5
  167. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_processing_information.rb +18 -1
  168. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_processor_information.rb +39 -5
  169. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_order_information.rb +15 -5
  170. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_order_information_shipping_details.rb +196 -0
  171. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information.rb +32 -5
  172. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_device_information.rb +196 -0
  173. data/lib/cybersource_rest_client/models/ptsv2paymentsidreversals_payment_information.rb +22 -5
  174. data/lib/cybersource_rest_client/models/ptsv2payouts_processing_information.rb +18 -5
  175. data/lib/cybersource_rest_client/models/pull_funds201_response_processor_information.rb +36 -6
  176. data/lib/cybersource_rest_client/models/pull_funds_request.rb +11 -1
  177. data/lib/cybersource_rest_client/models/push_funds201_response_processor_information.rb +45 -5
  178. data/lib/cybersource_rest_client/models/risk_products.rb +15 -5
  179. data/lib/cybersource_rest_client/models/riskv1decisions_order_information_ship_to.rb +39 -5
  180. data/lib/cybersource_rest_client/models/riskv1decisions_order_information_shipping_details.rb +1 -1
  181. data/lib/cybersource_rest_client/models/tms_card_art.rb +23 -1
  182. data/lib/cybersource_rest_client/models/tms_embedded_instrument_identifier_bill_to.rb +22 -5
  183. data/lib/cybersource_rest_client/models/tms_tokenized_card_delete_request.rb +189 -0
  184. data/lib/cybersource_rest_client/models/tmsv1paymentinstruments__embedded.rb +190 -0
  185. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card.rb +22 -1
  186. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_card.rb +1 -1
  187. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_metadata.rb +16 -5
  188. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_metadata_issuer.rb +41 -8
  189. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_metadata_issuer_bank_applications.rb +201 -0
  190. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_metadata_issuer_capabilities.rb +257 -0
  191. data/lib/cybersource_rest_client/models/tmsv2_tokenized_card_verification_results.rb +202 -0
  192. data/lib/cybersource_rest_client/models/tmsv2customers__embedded.rb +200 -0
  193. data/lib/cybersource_rest_client/models/{tmsv3tokenstoken_idpaymentcredentials_order_information_bill_to.rb → tmsv2tokenizedcards_bill_to.rb} +1 -1
  194. data/lib/cybersource_rest_client/models/tmsv2tokenizedcardstokenized_card_iddelete_reason.rb +208 -0
  195. data/lib/cybersource_rest_client/models/tmsv3tokenstoken_idpaymentcredentials_order_information.rb +1 -1
  196. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_order_information_shipping_details.rb +1 -1
  197. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_sender_information.rb +1 -1
  198. data/lib/cybersource_rest_client/models/ucv1sessions_data.rb +44 -14
  199. data/lib/cybersource_rest_client/models/ucv1sessions_data_aggregator_information.rb +325 -0
  200. data/lib/cybersource_rest_client/models/ucv1sessions_data_aggregator_information_sub_merchant.rb +366 -0
  201. data/lib/cybersource_rest_client/models/ucv1sessions_data_consumer_authentication_information.rb +22 -5
  202. data/lib/cybersource_rest_client/models/ucv1sessions_data_installment_information.rb +196 -0
  203. data/lib/cybersource_rest_client/models/ucv1sessions_data_merchant_information.rb +22 -5
  204. data/lib/cybersource_rest_client/models/ucv1sessions_data_merchant_information_merchant_descriptor.rb +18 -1
  205. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information.rb +16 -6
  206. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information_amount_details.rb +86 -12
  207. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information_invoice_details.rb +242 -0
  208. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information_invoice_details_transaction_advice_addendum.rb +196 -0
  209. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information_line_items.rb +702 -0
  210. data/lib/cybersource_rest_client/models/ucv1sessions_data_order_information_shipping_details.rb +213 -0
  211. data/lib/cybersource_rest_client/models/ucv1sessions_data_processing_information.rb +38 -1
  212. data/lib/cybersource_rest_client/models/ucv1sessions_data_processing_information_bank_transfer_options.rb +196 -0
  213. data/lib/cybersource_rest_client/models/ucv1sessions_data_processing_information_recurring_options.rb +192 -0
  214. data/lib/cybersource_rest_client/models/ucv1sessions_data_recipient_information.rb +107 -53
  215. data/lib/cybersource_rest_client/models/ucv1sessions_data_sender_information.rb +376 -0
  216. data/lib/cybersource_rest_client/models/ucv1sessions_data_sender_information_account.rb +213 -0
  217. data/lib/cybersource_rest_client/models/update_payments.rb +192 -0
  218. data/lib/cybersource_rest_client/models/value_added_services_products.rb +25 -5
  219. data/lib/cybersource_rest_client.rb +71 -12
  220. metadata +78 -19
  221. data/lib/cybersource_rest_client/api/token_api.rb +0 -306
  222. data/lib/cybersource_rest_client/api/tokenized_card_api.rb +0 -371
@@ -18,11 +18,19 @@ module CyberSource
18
18
  # Field contains the response source code that identifies the source.
19
19
  attr_accessor :response_source_code
20
20
 
21
+ # Supplementary transaction data for Klarna Advantage Plus. Fields to capture Interoperability Data from Merchant and transfer to Klarna for Authorization/Sale/Re-Auth/Capture APIs.
22
+ attr_accessor :supplementary_transaction_data
23
+
24
+ # Merchant Commercial Enhanced Data Program (CEDP) verified indicator for capture/bill requests. This field is used when the client is doing authorization with a different gateway and capture/settlement with CyberSource. This field flows in ISO field 34, DSID 02 tag DA, in AN, EBCDIC format. Possible values: - `Y`: Merchant CEDP verified #### Used by **Capture Request** Request field for force capture/bill support when auth is done with a different gateway.
25
+ attr_accessor :cedp_verified_indicator
26
+
21
27
  # Attribute mapping from ruby-style variable name to JSON key.
22
28
  def self.attribute_map
23
29
  {
24
30
  :'network' => :'network',
25
- :'response_source_code' => :'responseSourceCode'
31
+ :'response_source_code' => :'responseSourceCode',
32
+ :'supplementary_transaction_data' => :'supplementaryTransactionData',
33
+ :'cedp_verified_indicator' => :'cedpVerifiedIndicator'
26
34
  }
27
35
  end
28
36
 
@@ -30,7 +38,9 @@ module CyberSource
30
38
  def self.json_map
31
39
  {
32
40
  :'network' => :'network',
33
- :'response_source_code' => :'response_source_code'
41
+ :'response_source_code' => :'response_source_code',
42
+ :'supplementary_transaction_data' => :'supplementary_transaction_data',
43
+ :'cedp_verified_indicator' => :'cedp_verified_indicator'
34
44
  }
35
45
  end
36
46
 
@@ -38,7 +48,9 @@ module CyberSource
38
48
  def self.swagger_types
39
49
  {
40
50
  :'network' => :'Ptsv2paymentsProcessorInformationReversalNetwork',
41
- :'response_source_code' => :'String'
51
+ :'response_source_code' => :'String',
52
+ :'supplementary_transaction_data' => :'String',
53
+ :'cedp_verified_indicator' => :'String'
42
54
  }
43
55
  end
44
56
 
@@ -57,6 +69,14 @@ module CyberSource
57
69
  if attributes.has_key?(:'responseSourceCode')
58
70
  self.response_source_code = attributes[:'responseSourceCode']
59
71
  end
72
+
73
+ if attributes.has_key?(:'supplementaryTransactionData')
74
+ self.supplementary_transaction_data = attributes[:'supplementaryTransactionData']
75
+ end
76
+
77
+ if attributes.has_key?(:'cedpVerifiedIndicator')
78
+ self.cedp_verified_indicator = attributes[:'cedpVerifiedIndicator']
79
+ end
60
80
  end
61
81
 
62
82
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -78,13 +98,27 @@ module CyberSource
78
98
  @response_source_code = response_source_code
79
99
  end
80
100
 
101
+ # Custom attribute writer method with validation
102
+ # @param [Object] supplementary_transaction_data Value to be assigned
103
+ def supplementary_transaction_data=(supplementary_transaction_data)
104
+ @supplementary_transaction_data = supplementary_transaction_data
105
+ end
106
+
107
+ # Custom attribute writer method with validation
108
+ # @param [Object] cedp_verified_indicator Value to be assigned
109
+ def cedp_verified_indicator=(cedp_verified_indicator)
110
+ @cedp_verified_indicator = cedp_verified_indicator
111
+ end
112
+
81
113
  # Checks equality by comparing each attribute.
82
114
  # @param [Object] Object to be compared
83
115
  def ==(o)
84
116
  return true if self.equal?(o)
85
117
  self.class == o.class &&
86
118
  network == o.network &&
87
- response_source_code == o.response_source_code
119
+ response_source_code == o.response_source_code &&
120
+ supplementary_transaction_data == o.supplementary_transaction_data &&
121
+ cedp_verified_indicator == o.cedp_verified_indicator
88
122
  end
89
123
 
90
124
  # @see the `==` method
@@ -96,7 +130,7 @@ module CyberSource
96
130
  # Calculates hash code according to all attributes.
97
131
  # @return [Fixnum] Hash code
98
132
  def hash
99
- [network, response_source_code].hash
133
+ [network, response_source_code, supplementary_transaction_data, cedp_verified_indicator].hash
100
134
  end
101
135
 
102
136
  # Builds the object from hash
@@ -25,6 +25,8 @@ module CyberSource
25
25
 
26
26
  attr_accessor :shipping_details
27
27
 
28
+ attr_accessor :digital_currency
29
+
28
30
  # Attribute mapping from ruby-style variable name to JSON key.
29
31
  def self.attribute_map
30
32
  {
@@ -33,7 +35,8 @@ module CyberSource
33
35
  :'ship_to' => :'shipTo',
34
36
  :'line_items' => :'lineItems',
35
37
  :'invoice_details' => :'invoiceDetails',
36
- :'shipping_details' => :'shippingDetails'
38
+ :'shipping_details' => :'shippingDetails',
39
+ :'digital_currency' => :'digitalCurrency'
37
40
  }
38
41
  end
39
42
 
@@ -45,7 +48,8 @@ module CyberSource
45
48
  :'ship_to' => :'ship_to',
46
49
  :'line_items' => :'line_items',
47
50
  :'invoice_details' => :'invoice_details',
48
- :'shipping_details' => :'shipping_details'
51
+ :'shipping_details' => :'shipping_details',
52
+ :'digital_currency' => :'digital_currency'
49
53
  }
50
54
  end
51
55
 
@@ -57,7 +61,8 @@ module CyberSource
57
61
  :'ship_to' => :'Ptsv2paymentsidcapturesOrderInformationShipTo',
58
62
  :'line_items' => :'Array<Ptsv2paymentsidrefundsOrderInformationLineItems>',
59
63
  :'invoice_details' => :'Ptsv2paymentsidcapturesOrderInformationInvoiceDetails',
60
- :'shipping_details' => :'Ptsv2paymentsidcapturesOrderInformationShippingDetails'
64
+ :'shipping_details' => :'Ptsv2paymentsidrefundsOrderInformationShippingDetails',
65
+ :'digital_currency' => :'Ptsv2paymentsOrderInformationDigitalCurrency'
61
66
  }
62
67
  end
63
68
 
@@ -94,6 +99,10 @@ module CyberSource
94
99
  if attributes.has_key?(:'shippingDetails')
95
100
  self.shipping_details = attributes[:'shippingDetails']
96
101
  end
102
+
103
+ if attributes.has_key?(:'digitalCurrency')
104
+ self.digital_currency = attributes[:'digitalCurrency']
105
+ end
97
106
  end
98
107
 
99
108
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -119,7 +128,8 @@ module CyberSource
119
128
  ship_to == o.ship_to &&
120
129
  line_items == o.line_items &&
121
130
  invoice_details == o.invoice_details &&
122
- shipping_details == o.shipping_details
131
+ shipping_details == o.shipping_details &&
132
+ digital_currency == o.digital_currency
123
133
  end
124
134
 
125
135
  # @see the `==` method
@@ -131,7 +141,7 @@ module CyberSource
131
141
  # Calculates hash code according to all attributes.
132
142
  # @return [Fixnum] Hash code
133
143
  def hash
134
- [amount_details, bill_to, ship_to, line_items, invoice_details, shipping_details].hash
144
+ [amount_details, bill_to, ship_to, line_items, invoice_details, shipping_details, digital_currency].hash
135
145
  end
136
146
 
137
147
  # Builds the object from hash
@@ -0,0 +1,196 @@
1
+ =begin
2
+ #CyberSource Merged Spec
3
+
4
+ #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
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.4.38
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module CyberSource
15
+ class Ptsv2paymentsidrefundsOrderInformationShippingDetails
16
+ # Postal code for the address from which the goods are shipped, which is used to establish nexus. The default is the postal code associated with your CyberSource account. The postal code must consist of 5 to 9 digits. When the billing country is the U.S., the 9-digit postal code must follow this format: `[5 digits][dash][4 digits]` Example 12345-6789 When the billing country is Canada, the 6-digit postal code must follow this format: `[alpha][numeric][alpha][space] [numeric][alpha][numeric]` Example A1B 2C3 This field is frequently used for Level II and Level III transactions.
17
+ attr_accessor :ship_from_postal_code
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'ship_from_postal_code' => :'shipFromPostalCode'
23
+ }
24
+ end
25
+
26
+ # Attribute mapping from JSON key to ruby-style variable name.
27
+ def self.json_map
28
+ {
29
+ :'ship_from_postal_code' => :'ship_from_postal_code'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.swagger_types
35
+ {
36
+ :'ship_from_postal_code' => :'String'
37
+ }
38
+ end
39
+
40
+ # Initializes the object
41
+ # @param [Hash] attributes Model attributes in the form of hash
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
47
+
48
+ if attributes.has_key?(:'shipFromPostalCode')
49
+ self.ship_from_postal_code = attributes[:'shipFromPostalCode']
50
+ end
51
+ end
52
+
53
+ # Show invalid properties with the reasons. Usually used together with valid?
54
+ # @return Array for valid properties with the reasons
55
+ def list_invalid_properties
56
+ invalid_properties = Array.new
57
+ invalid_properties
58
+ end
59
+
60
+ # Check to see if the all the properties in the model are valid
61
+ # @return true if the model is valid
62
+ def valid?
63
+ true
64
+ end
65
+
66
+ # Custom attribute writer method with validation
67
+ # @param [Object] ship_from_postal_code Value to be assigned
68
+ def ship_from_postal_code=(ship_from_postal_code)
69
+ @ship_from_postal_code = ship_from_postal_code
70
+ end
71
+
72
+ # Checks equality by comparing each attribute.
73
+ # @param [Object] Object to be compared
74
+ def ==(o)
75
+ return true if self.equal?(o)
76
+ self.class == o.class &&
77
+ ship_from_postal_code == o.ship_from_postal_code
78
+ end
79
+
80
+ # @see the `==` method
81
+ # @param [Object] Object to be compared
82
+ def eql?(o)
83
+ self == o
84
+ end
85
+
86
+ # Calculates hash code according to all attributes.
87
+ # @return [Fixnum] Hash code
88
+ def hash
89
+ [ship_from_postal_code].hash
90
+ end
91
+
92
+ # Builds the object from hash
93
+ # @param [Hash] attributes Model attributes in the form of hash
94
+ # @return [Object] Returns the model itself
95
+ def build_from_hash(attributes)
96
+ return nil unless attributes.is_a?(Hash)
97
+ self.class.swagger_types.each_pair do |key, type|
98
+ if type =~ /\AArray<(.*)>/i
99
+ # check to ensure the input is an array given that the the attribute
100
+ # is documented as an array but the input is not
101
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
102
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
103
+ end
104
+ elsif !attributes[self.class.attribute_map[key]].nil?
105
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
106
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
107
+ end
108
+
109
+ self
110
+ end
111
+
112
+ # Deserializes the data based on type
113
+ # @param string type Data type
114
+ # @param string value Value to be deserialized
115
+ # @return [Object] Deserialized data
116
+ def _deserialize(type, value)
117
+ case type.to_sym
118
+ when :DateTime
119
+ DateTime.parse(value)
120
+ when :Date
121
+ Date.parse(value)
122
+ when :String
123
+ value.to_s
124
+ when :Integer
125
+ value.to_i
126
+ when :Float
127
+ value.to_f
128
+ when :BOOLEAN
129
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
130
+ true
131
+ else
132
+ false
133
+ end
134
+ when :Object
135
+ # generic object (usually a Hash), return directly
136
+ value
137
+ when /\AArray<(?<inner_type>.+)>\z/
138
+ inner_type = Regexp.last_match[:inner_type]
139
+ value.map { |v| _deserialize(inner_type, v) }
140
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
141
+ k_type = Regexp.last_match[:k_type]
142
+ v_type = Regexp.last_match[:v_type]
143
+ {}.tap do |hash|
144
+ value.each do |k, v|
145
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
146
+ end
147
+ end
148
+ else # model
149
+ temp_model = CyberSource.const_get(type).new
150
+ temp_model.build_from_hash(value)
151
+ end
152
+ end
153
+
154
+ # Returns the string representation of the object
155
+ # @return [String] String presentation of the object
156
+ def to_s
157
+ to_hash.to_s
158
+ end
159
+
160
+ # to_body is an alias to to_hash (backward compatibility)
161
+ # @return [Hash] Returns the object in the form of hash
162
+ def to_body
163
+ to_hash
164
+ end
165
+
166
+ # Returns the object in the form of hash
167
+ # @return [Hash] Returns the object in the form of hash
168
+ def to_hash
169
+ hash = {}
170
+ self.class.attribute_map.each_pair do |attr, param|
171
+ value = self.send(attr)
172
+ next if value.nil?
173
+ hash[param] = _to_hash(value)
174
+ end
175
+ hash
176
+ end
177
+
178
+ # Outputs non-array value in the form of hash
179
+ # For object, use to_hash. Otherwise, just return the value
180
+ # @param [Object] value Any valid value
181
+ # @return [Hash] Returns the value in the form of hash
182
+ def _to_hash(value)
183
+ if value.is_a?(Array)
184
+ value.compact.map { |v| _to_hash(v) }
185
+ elsif value.is_a?(Hash)
186
+ {}.tap do |hash|
187
+ value.each { |k, v| hash[k] = _to_hash(v) }
188
+ end
189
+ elsif value.respond_to? :to_hash
190
+ value.to_hash
191
+ else
192
+ value
193
+ end
194
+ end
195
+ end
196
+ end
@@ -37,6 +37,11 @@ module CyberSource
37
37
 
38
38
  attr_accessor :payment_account_reference
39
39
 
40
+ attr_accessor :third_party_token
41
+
42
+ # Mastercard-defined code that indicates how the account information was obtained for credit authorization transactions. Possible values: - `00`: Card (default) - `01`: Mobile network operator (MNO) controlled removable secure element (SIM or UICC) personalized for use with a mobile phone or smartphone - `02`: Key fob - `03`: Watch - `04`: Mobile tag - `05`: Wristband - `06`: Mobile phone case or sleeve - `07`: Mobile phone or smartphone with fixed (nonremovable) secure element controlled by the MNO (for example, code division multiple access (CDMA)) - `08`: Removable secure element not controlled by the MNO (for example, memory card personalized for use with a mobile phone or smartphone) - `09`: Mobile phone or smartphone with a fixed (nonremovable) secure element not controlled by the MNO - `10`: MNO-controlled removable secure element (SIM or UICC) personalized for use with a tablet or e-book - `11`: Tablet or e-book with a fixed (nonremovable) secure element controlled by the MNO - `12`: Removable secure element not controlled by the MNO (for example, memory card personalized for use with a tablet or e-book) - `13`: Tablet or e-book with fixed (nonremovable) secure element not controlled by the MNO - `14` - `99`: Reserved for future use This field flows in ISO Field 104 DSID 65 Tag 04. This field is supported for Mastercard credit authorization transactions. #### Used by **Credit Authorization (Standalone)** Optional field.
43
+ attr_accessor :initiation_channel
44
+
40
45
  # Attribute mapping from ruby-style variable name to JSON key.
41
46
  def self.attribute_map
42
47
  {
@@ -51,7 +56,9 @@ module CyberSource
51
56
  :'legacy_token' => :'legacyToken',
52
57
  :'payment_type' => :'paymentType',
53
58
  :'e_wallet' => :'eWallet',
54
- :'payment_account_reference' => :'paymentAccountReference'
59
+ :'payment_account_reference' => :'paymentAccountReference',
60
+ :'third_party_token' => :'thirdPartyToken',
61
+ :'initiation_channel' => :'initiationChannel'
55
62
  }
56
63
  end
57
64
 
@@ -69,7 +76,9 @@ module CyberSource
69
76
  :'legacy_token' => :'legacy_token',
70
77
  :'payment_type' => :'payment_type',
71
78
  :'e_wallet' => :'e_wallet',
72
- :'payment_account_reference' => :'payment_account_reference'
79
+ :'payment_account_reference' => :'payment_account_reference',
80
+ :'third_party_token' => :'third_party_token',
81
+ :'initiation_channel' => :'initiation_channel'
73
82
  }
74
83
  end
75
84
 
@@ -87,7 +96,9 @@ module CyberSource
87
96
  :'legacy_token' => :'Ptsv2paymentsPaymentInformationLegacyToken',
88
97
  :'payment_type' => :'Ptsv2paymentsidrefundsPaymentInformationPaymentType',
89
98
  :'e_wallet' => :'Ptsv2paymentsidrefundsPaymentInformationEWallet',
90
- :'payment_account_reference' => :'Ptsv2paymentsPaymentInformationPaymentAccountReference'
99
+ :'payment_account_reference' => :'Ptsv2paymentsPaymentInformationPaymentAccountReference',
100
+ :'third_party_token' => :'Ptsv2paymentsPaymentInformationThirdPartyToken',
101
+ :'initiation_channel' => :'String'
91
102
  }
92
103
  end
93
104
 
@@ -146,6 +157,14 @@ module CyberSource
146
157
  if attributes.has_key?(:'paymentAccountReference')
147
158
  self.payment_account_reference = attributes[:'paymentAccountReference']
148
159
  end
160
+
161
+ if attributes.has_key?(:'thirdPartyToken')
162
+ self.third_party_token = attributes[:'thirdPartyToken']
163
+ end
164
+
165
+ if attributes.has_key?(:'initiationChannel')
166
+ self.initiation_channel = attributes[:'initiationChannel']
167
+ end
149
168
  end
150
169
 
151
170
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -161,6 +180,12 @@ module CyberSource
161
180
  true
162
181
  end
163
182
 
183
+ # Custom attribute writer method with validation
184
+ # @param [Object] initiation_channel Value to be assigned
185
+ def initiation_channel=(initiation_channel)
186
+ @initiation_channel = initiation_channel
187
+ end
188
+
164
189
  # Checks equality by comparing each attribute.
165
190
  # @param [Object] Object to be compared
166
191
  def ==(o)
@@ -177,7 +202,9 @@ module CyberSource
177
202
  legacy_token == o.legacy_token &&
178
203
  payment_type == o.payment_type &&
179
204
  e_wallet == o.e_wallet &&
180
- payment_account_reference == o.payment_account_reference
205
+ payment_account_reference == o.payment_account_reference &&
206
+ third_party_token == o.third_party_token &&
207
+ initiation_channel == o.initiation_channel
181
208
  end
182
209
 
183
210
  # @see the `==` method
@@ -189,7 +216,7 @@ module CyberSource
189
216
  # Calculates hash code according to all attributes.
190
217
  # @return [Fixnum] Hash code
191
218
  def hash
192
- [card, bank, tokenized_card, fluid_data, customer, payment_instrument, instrument_identifier, shipping_address, legacy_token, payment_type, e_wallet, payment_account_reference].hash
219
+ [card, bank, tokenized_card, fluid_data, customer, payment_instrument, instrument_identifier, shipping_address, legacy_token, payment_type, e_wallet, payment_account_reference, third_party_token, initiation_channel].hash
193
220
  end
194
221
 
195
222
  # Builds the object from hash
@@ -0,0 +1,196 @@
1
+ =begin
2
+ #CyberSource Merged Spec
3
+
4
+ #All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
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.4.38
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module CyberSource
15
+ class Ptsv2paymentsidreversalsDeviceInformation
16
+ # Account Entry Device Type for Tap to More transactions. This field flows in ISO Field 34 DSID 02 Tag 89. Valid Values: - `1`: Off-the-shelf mobile consumer Mastercard is introducing changes to support commercialization of Tap to More transactions. Acquirers globally must be prepared to send a value of 1 (Off-the-shelf mobile-consumer) in Field 34—Acceptance Environment Data (TLV Format), Dataset ID 02—Acceptance Environment Additional Data, Tag 89—Account Entry Device Type for Tap to More transactions. Visa will map this value to a value of 8 (Remote terminal) in Mastercard Data Element 61.10. #### Mapping - SCMP API Field: customer_device_type - Simple Order API Field: billTo_deviceType - CCS: device.type - NRTF Key: customer_device_type Optional field.
17
+ attr_accessor :device_type
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'device_type' => :'deviceType'
23
+ }
24
+ end
25
+
26
+ # Attribute mapping from JSON key to ruby-style variable name.
27
+ def self.json_map
28
+ {
29
+ :'device_type' => :'device_type'
30
+ }
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.swagger_types
35
+ {
36
+ :'device_type' => :'String'
37
+ }
38
+ end
39
+
40
+ # Initializes the object
41
+ # @param [Hash] attributes Model attributes in the form of hash
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
47
+
48
+ if attributes.has_key?(:'deviceType')
49
+ self.device_type = attributes[:'deviceType']
50
+ end
51
+ end
52
+
53
+ # Show invalid properties with the reasons. Usually used together with valid?
54
+ # @return Array for valid properties with the reasons
55
+ def list_invalid_properties
56
+ invalid_properties = Array.new
57
+ invalid_properties
58
+ end
59
+
60
+ # Check to see if the all the properties in the model are valid
61
+ # @return true if the model is valid
62
+ def valid?
63
+ true
64
+ end
65
+
66
+ # Custom attribute writer method with validation
67
+ # @param [Object] device_type Value to be assigned
68
+ def device_type=(device_type)
69
+ @device_type = device_type
70
+ end
71
+
72
+ # Checks equality by comparing each attribute.
73
+ # @param [Object] Object to be compared
74
+ def ==(o)
75
+ return true if self.equal?(o)
76
+ self.class == o.class &&
77
+ device_type == o.device_type
78
+ end
79
+
80
+ # @see the `==` method
81
+ # @param [Object] Object to be compared
82
+ def eql?(o)
83
+ self == o
84
+ end
85
+
86
+ # Calculates hash code according to all attributes.
87
+ # @return [Fixnum] Hash code
88
+ def hash
89
+ [device_type].hash
90
+ end
91
+
92
+ # Builds the object from hash
93
+ # @param [Hash] attributes Model attributes in the form of hash
94
+ # @return [Object] Returns the model itself
95
+ def build_from_hash(attributes)
96
+ return nil unless attributes.is_a?(Hash)
97
+ self.class.swagger_types.each_pair do |key, type|
98
+ if type =~ /\AArray<(.*)>/i
99
+ # check to ensure the input is an array given that the the attribute
100
+ # is documented as an array but the input is not
101
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
102
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
103
+ end
104
+ elsif !attributes[self.class.attribute_map[key]].nil?
105
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
106
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
107
+ end
108
+
109
+ self
110
+ end
111
+
112
+ # Deserializes the data based on type
113
+ # @param string type Data type
114
+ # @param string value Value to be deserialized
115
+ # @return [Object] Deserialized data
116
+ def _deserialize(type, value)
117
+ case type.to_sym
118
+ when :DateTime
119
+ DateTime.parse(value)
120
+ when :Date
121
+ Date.parse(value)
122
+ when :String
123
+ value.to_s
124
+ when :Integer
125
+ value.to_i
126
+ when :Float
127
+ value.to_f
128
+ when :BOOLEAN
129
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
130
+ true
131
+ else
132
+ false
133
+ end
134
+ when :Object
135
+ # generic object (usually a Hash), return directly
136
+ value
137
+ when /\AArray<(?<inner_type>.+)>\z/
138
+ inner_type = Regexp.last_match[:inner_type]
139
+ value.map { |v| _deserialize(inner_type, v) }
140
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
141
+ k_type = Regexp.last_match[:k_type]
142
+ v_type = Regexp.last_match[:v_type]
143
+ {}.tap do |hash|
144
+ value.each do |k, v|
145
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
146
+ end
147
+ end
148
+ else # model
149
+ temp_model = CyberSource.const_get(type).new
150
+ temp_model.build_from_hash(value)
151
+ end
152
+ end
153
+
154
+ # Returns the string representation of the object
155
+ # @return [String] String presentation of the object
156
+ def to_s
157
+ to_hash.to_s
158
+ end
159
+
160
+ # to_body is an alias to to_hash (backward compatibility)
161
+ # @return [Hash] Returns the object in the form of hash
162
+ def to_body
163
+ to_hash
164
+ end
165
+
166
+ # Returns the object in the form of hash
167
+ # @return [Hash] Returns the object in the form of hash
168
+ def to_hash
169
+ hash = {}
170
+ self.class.attribute_map.each_pair do |attr, param|
171
+ value = self.send(attr)
172
+ next if value.nil?
173
+ hash[param] = _to_hash(value)
174
+ end
175
+ hash
176
+ end
177
+
178
+ # Outputs non-array value in the form of hash
179
+ # For object, use to_hash. Otherwise, just return the value
180
+ # @param [Object] value Any valid value
181
+ # @return [Hash] Returns the value in the form of hash
182
+ def _to_hash(value)
183
+ if value.is_a?(Array)
184
+ value.compact.map { |v| _to_hash(v) }
185
+ elsif value.is_a?(Hash)
186
+ {}.tap do |hash|
187
+ value.each { |k, v| hash[k] = _to_hash(v) }
188
+ end
189
+ elsif value.respond_to? :to_hash
190
+ value.to_hash
191
+ else
192
+ value
193
+ end
194
+ end
195
+ end
196
+ end