cybersource_rest_client 0.0.75 → 0.0.77

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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/lib/AuthenticationSDK/authentication/jwt/JwtToken.rb +6 -17
  3. data/lib/AuthenticationSDK/core/MerchantConfig.rb +132 -54
  4. data/lib/AuthenticationSDK/util/Cache.rb +135 -30
  5. data/lib/AuthenticationSDK/util/CacheValue.rb +18 -0
  6. data/lib/AuthenticationSDK/util/CertificateUtility.rb +124 -0
  7. data/lib/AuthenticationSDK/util/Constants.rb +6 -0
  8. data/lib/AuthenticationSDK/util/JWEUtility.rb +1 -2
  9. data/lib/AuthenticationSDK/util/MLEUtility.rb +26 -35
  10. data/lib/AuthenticationSDK/util/Utility.rb +1 -16
  11. data/lib/cybersource_rest_client/api/batches_api.rb +17 -17
  12. data/lib/cybersource_rest_client/api/billing_agreements_api.rb +6 -6
  13. data/lib/cybersource_rest_client/api/bin_lookup_api.rb +2 -2
  14. data/lib/cybersource_rest_client/api/capture_api.rb +2 -2
  15. data/lib/cybersource_rest_client/api/chargeback_details_api.rb +2 -2
  16. data/lib/cybersource_rest_client/api/chargeback_summaries_api.rb +2 -2
  17. data/lib/cybersource_rest_client/api/conversion_details_api.rb +2 -2
  18. data/lib/cybersource_rest_client/api/create_new_webhooks_api.rb +6 -6
  19. data/lib/cybersource_rest_client/api/credit_api.rb +2 -2
  20. data/lib/cybersource_rest_client/api/customer_api.rb +8 -8
  21. data/lib/cybersource_rest_client/api/customer_payment_instrument_api.rb +10 -10
  22. data/lib/cybersource_rest_client/api/customer_shipping_address_api.rb +10 -10
  23. data/lib/cybersource_rest_client/api/decision_manager_api.rb +10 -10
  24. data/lib/cybersource_rest_client/api/device_de_association_api.rb +7 -7
  25. data/lib/cybersource_rest_client/api/device_search_api.rb +10 -10
  26. data/lib/cybersource_rest_client/api/download_dtd_api.rb +2 -2
  27. data/lib/cybersource_rest_client/api/download_xsd_api.rb +2 -2
  28. data/lib/cybersource_rest_client/api/emv_tag_details_api.rb +4 -4
  29. data/lib/cybersource_rest_client/api/flex_api_api.rb +2 -2
  30. data/lib/cybersource_rest_client/api/instrument_identifier_api.rb +12 -12
  31. data/lib/cybersource_rest_client/api/interchange_clearing_level_details_api.rb +2 -2
  32. data/lib/cybersource_rest_client/api/invoice_settings_api.rb +4 -4
  33. data/lib/cybersource_rest_client/api/invoices_api.rb +87 -12
  34. data/lib/cybersource_rest_client/api/manage_webhooks_api.rb +18 -17
  35. data/lib/cybersource_rest_client/api/merchant_boarding_api.rb +4 -4
  36. data/lib/cybersource_rest_client/api/microform_integration_api.rb +2 -2
  37. data/lib/cybersource_rest_client/api/net_fundings_api.rb +2 -2
  38. data/lib/cybersource_rest_client/api/notification_of_changes_api.rb +2 -2
  39. data/lib/cybersource_rest_client/api/orders_api.rb +4 -4
  40. data/lib/cybersource_rest_client/api/payer_authentication_api.rb +6 -6
  41. data/lib/cybersource_rest_client/api/payment_batch_summaries_api.rb +2 -2
  42. data/lib/cybersource_rest_client/api/payment_instrument_api.rb +8 -8
  43. data/lib/cybersource_rest_client/api/payment_links_api.rb +12 -12
  44. data/lib/cybersource_rest_client/api/payment_tokens_api.rb +2 -2
  45. data/lib/cybersource_rest_client/api/payments_api.rb +12 -12
  46. data/lib/cybersource_rest_client/api/payouts_api.rb +2 -2
  47. data/lib/cybersource_rest_client/api/plans_api.rb +16 -16
  48. data/lib/cybersource_rest_client/api/purchase_and_refund_details_api.rb +2 -2
  49. data/lib/cybersource_rest_client/api/push_funds_api.rb +2 -2
  50. data/lib/cybersource_rest_client/api/refund_api.rb +4 -4
  51. data/lib/cybersource_rest_client/api/report_definitions_api.rb +4 -4
  52. data/lib/cybersource_rest_client/api/report_downloads_api.rb +2 -2
  53. data/lib/cybersource_rest_client/api/report_subscriptions_api.rb +10 -10
  54. data/lib/cybersource_rest_client/api/reports_api.rb +6 -6
  55. data/lib/cybersource_rest_client/api/retrieval_details_api.rb +2 -2
  56. data/lib/cybersource_rest_client/api/retrieval_summaries_api.rb +2 -2
  57. data/lib/cybersource_rest_client/api/reversal_api.rb +4 -4
  58. data/lib/cybersource_rest_client/api/search_transactions_api.rb +4 -4
  59. data/lib/cybersource_rest_client/api/secure_file_share_api.rb +4 -4
  60. data/lib/cybersource_rest_client/api/subscriptions_api.rb +16 -16
  61. data/lib/cybersource_rest_client/api/subscriptions_follow_ons_api.rb +4 -4
  62. data/lib/cybersource_rest_client/api/taxes_api.rb +4 -4
  63. data/lib/cybersource_rest_client/api/token_api.rb +4 -4
  64. data/lib/cybersource_rest_client/api/tokenized_card_api.rb +6 -6
  65. data/lib/cybersource_rest_client/api/transaction_batches_api.rb +8 -8
  66. data/lib/cybersource_rest_client/api/transaction_details_api.rb +2 -2
  67. data/lib/cybersource_rest_client/api/transient_token_data_api.rb +4 -4
  68. data/lib/cybersource_rest_client/api/unified_checkout_capture_context_api.rb +2 -2
  69. data/lib/cybersource_rest_client/api/user_management_api.rb +2 -2
  70. data/lib/cybersource_rest_client/api/user_management_search_api.rb +2 -2
  71. data/lib/cybersource_rest_client/api/verification_api.rb +4 -4
  72. data/lib/cybersource_rest_client/api/void_api.rb +10 -10
  73. data/lib/cybersource_rest_client/api_client.rb +3 -1
  74. data/lib/cybersource_rest_client/ethon_extensions.rb +38 -0
  75. data/lib/cybersource_rest_client/models/create_order_request.rb +269 -269
  76. data/lib/cybersource_rest_client/models/create_webhook.rb +16 -3
  77. data/lib/cybersource_rest_client/models/inline_response_200_10.rb +47 -49
  78. data/lib/cybersource_rest_client/models/{inline_response_200_8__links.rb → inline_response_200_10__links.rb} +18 -17
  79. data/lib/cybersource_rest_client/models/{inline_response_200_9__links_report.rb → inline_response_200_10__links_report.rb} +1 -1
  80. data/lib/cybersource_rest_client/models/{inline_response_200_9_billing.rb → inline_response_200_10_billing.rb} +1 -1
  81. data/lib/cybersource_rest_client/models/inline_response_200_11.rb +292 -0
  82. data/lib/cybersource_rest_client/models/{inline_response_200_10_records.rb → inline_response_200_11_records.rb} +3 -3
  83. data/lib/cybersource_rest_client/models/{inline_response_200_10_response_record.rb → inline_response_200_11_response_record.rb} +2 -2
  84. data/lib/cybersource_rest_client/models/{inline_response_200_10_response_record_additional_updates.rb → inline_response_200_11_response_record_additional_updates.rb} +1 -1
  85. data/lib/cybersource_rest_client/models/{inline_response_200_10_source_record.rb → inline_response_200_11_source_record.rb} +1 -1
  86. data/lib/cybersource_rest_client/models/inline_response_200_2.rb +253 -253
  87. data/lib/cybersource_rest_client/models/inline_response_200_4.rb +12 -10
  88. data/lib/cybersource_rest_client/models/inline_response_200_5.rb +129 -51
  89. data/lib/cybersource_rest_client/models/inline_response_200_6.rb +55 -10
  90. data/lib/cybersource_rest_client/models/{inline_response_200_5_devices.rb → inline_response_200_6_devices.rb} +1 -1
  91. data/lib/cybersource_rest_client/models/inline_response_200_7.rb +10 -55
  92. data/lib/cybersource_rest_client/models/inline_response_200_8.rb +33 -37
  93. data/lib/cybersource_rest_client/models/{inline_response_200_7_devices.rb → inline_response_200_8_devices.rb} +2 -2
  94. data/lib/cybersource_rest_client/models/{inline_response_200_7_payment_processor_to_terminal_map.rb → inline_response_200_8_payment_processor_to_terminal_map.rb} +1 -1
  95. data/lib/cybersource_rest_client/models/inline_response_200_9.rb +47 -86
  96. data/lib/cybersource_rest_client/models/{inline_response_200_8__embedded.rb → inline_response_200_9__embedded.rb} +2 -2
  97. data/lib/cybersource_rest_client/models/{inline_response_200_8__embedded__links.rb → inline_response_200_9__embedded__links.rb} +2 -2
  98. data/lib/cybersource_rest_client/models/{inline_response_200_8__embedded__links_reports.rb → inline_response_200_9__embedded__links_reports.rb} +1 -1
  99. data/lib/cybersource_rest_client/models/{inline_response_200_8__embedded_batches.rb → inline_response_200_9__embedded_batches.rb} +3 -3
  100. data/lib/cybersource_rest_client/models/{inline_response_200_8__embedded_totals.rb → inline_response_200_9__embedded_totals.rb} +1 -1
  101. data/lib/cybersource_rest_client/models/inline_response_200_9__links.rb +16 -17
  102. data/lib/cybersource_rest_client/models/inline_response_201.rb +227 -227
  103. data/lib/cybersource_rest_client/models/inline_response_201_1.rb +218 -218
  104. data/lib/cybersource_rest_client/models/inline_response_201_2.rb +248 -248
  105. data/lib/cybersource_rest_client/models/inline_response_201_2_payout_information.rb +216 -216
  106. data/lib/cybersource_rest_client/models/inline_response_201_2_payout_information_pull_funds.rb +213 -213
  107. data/lib/cybersource_rest_client/models/inline_response_201_2_payout_information_push_funds.rb +417 -417
  108. data/lib/cybersource_rest_client/models/inline_response_201_3.rb +281 -281
  109. data/lib/cybersource_rest_client/models/inline_response_201_3_integration_information.rb +192 -192
  110. data/lib/cybersource_rest_client/models/inline_response_201_3_integration_information_tenant_configurations.rb +253 -253
  111. data/lib/cybersource_rest_client/models/inline_response_201_3_organization_information.rb +217 -217
  112. data/lib/cybersource_rest_client/models/inline_response_201_3_product_information_setups.rb +214 -214
  113. data/lib/cybersource_rest_client/models/inline_response_201_3_registration_information.rb +222 -222
  114. data/lib/cybersource_rest_client/models/inline_response_201_3_setups.rb +219 -219
  115. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_commerce_solutions.rb +209 -209
  116. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments.rb +369 -369
  117. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_alternative_payment_methods.rb +221 -221
  118. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_alternative_payment_methods_configuration_status.rb +200 -200
  119. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_card_processing.rb +199 -199
  120. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_card_processing_configuration_status.rb +255 -255
  121. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_card_processing_subscription_status.rb +234 -234
  122. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_payments_digital_payments.rb +189 -189
  123. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_risk.rb +199 -199
  124. data/lib/cybersource_rest_client/models/inline_response_201_3_setups_value_added_services.rb +209 -209
  125. data/lib/cybersource_rest_client/models/inline_response_201_4.rb +222 -222
  126. data/lib/cybersource_rest_client/models/inline_response_201_4_key_information.rb +300 -300
  127. data/lib/cybersource_rest_client/models/inline_response_201_4_key_information_error_information.rb +202 -202
  128. data/lib/cybersource_rest_client/models/inline_response_201_4_key_information_error_information_details.rb +201 -201
  129. data/lib/cybersource_rest_client/models/inline_response_201_5.rb +314 -312
  130. data/lib/cybersource_rest_client/models/inline_response_201_6.rb +277 -277
  131. data/lib/cybersource_rest_client/models/inline_response_201_6_payloads.rb +189 -189
  132. data/lib/cybersource_rest_client/models/inline_response_201_6_payloads_test_payload.rb +190 -190
  133. data/lib/cybersource_rest_client/models/inline_response_201_7.rb +202 -202
  134. data/lib/cybersource_rest_client/models/inline_response_201_order_information.rb +189 -189
  135. data/lib/cybersource_rest_client/models/inline_response_201_order_information_ship_to.rb +315 -315
  136. data/lib/cybersource_rest_client/models/inline_response_201_payment_information.rb +199 -199
  137. data/lib/cybersource_rest_client/models/inline_response_201_payment_information_e_wallet.rb +196 -196
  138. data/lib/cybersource_rest_client/models/inline_response_201_payment_information_tokenized_payment_method.rb +213 -213
  139. data/lib/cybersource_rest_client/models/invoicing_v2_invoice_settings_get200_response_invoice_settings_information.rb +18 -5
  140. data/lib/cybersource_rest_client/models/invoicing_v2_invoices_post201_response_invoice_information.rb +18 -5
  141. data/lib/cybersource_rest_client/models/{notificationsubscriptionsv2webhooks_security_policy_1_config.rb → invoicing_v2_invoices_post201_response_invoice_information_custom_labels.rb} +57 -34
  142. data/lib/cybersource_rest_client/models/invoicing_v2_invoices_publish200_response.rb +268 -0
  143. data/lib/cybersource_rest_client/models/invoicingv2invoice_settings_invoice_settings_information.rb +18 -5
  144. data/lib/cybersource_rest_client/models/notificationsubscriptionsv2webhooks_retry_policy.rb +2 -0
  145. data/lib/cybersource_rest_client/models/notificationsubscriptionsv2webhooks_security_policy.rb +1 -1
  146. data/lib/cybersource_rest_client/models/notificationsubscriptionsv2webhooks_security_policy_config.rb +16 -17
  147. data/lib/cybersource_rest_client/models/{notificationsubscriptionsv2webhooks_security_policy_1_config_additional_config.rb → notificationsubscriptionsv2webhooks_security_policy_config_additional_config.rb} +1 -1
  148. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_installment_information.rb +609 -609
  149. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_account_information_card.rb +269 -269
  150. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information.rb +364 -364
  151. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_tokenized_card.rb +309 -309
  152. data/lib/cybersource_rest_client/models/pts_v2_payments_post201_response_payment_information_tokenized_payment_method.rb +213 -213
  153. data/lib/cybersource_rest_client/models/pts_v2_retrieve_payment_token_get400_response.rb +252 -252
  154. data/lib/cybersource_rest_client/models/pts_v2_retrieve_payment_token_get502_response.rb +240 -240
  155. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_card.rb +258 -258
  156. data/lib/cybersource_rest_client/models/ptsv2billingagreements_payment_information_tokenized_card.rb +275 -275
  157. data/lib/cybersource_rest_client/models/ptsv2intents_event_information.rb +212 -212
  158. data/lib/cybersource_rest_client/models/ptsv2intents_order_information_ship_to.rb +354 -354
  159. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information.rb +220 -220
  160. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information_e_wallet.rb +196 -196
  161. data/lib/cybersource_rest_client/models/ptsv2intents_payment_information_tokenized_payment_method.rb +241 -241
  162. data/lib/cybersource_rest_client/models/ptsv2intents_processing_information.rb +351 -351
  163. data/lib/cybersource_rest_client/models/ptsv2intents_recipient_information.rb +245 -245
  164. data/lib/cybersource_rest_client/models/ptsv2intents_sender_information.rb +277 -277
  165. data/lib/cybersource_rest_client/models/ptsv2intents_sender_information_account.rb +190 -190
  166. data/lib/cybersource_rest_client/models/ptsv2intents_travel_information.rb +211 -211
  167. data/lib/cybersource_rest_client/models/ptsv2intents_travel_information_agency.rb +245 -245
  168. data/lib/cybersource_rest_client/models/ptsv2intentsid_payment_information.rb +189 -189
  169. data/lib/cybersource_rest_client/models/ptsv2paymentreferences_order_information_amount_details.rb +417 -417
  170. data/lib/cybersource_rest_client/models/ptsv2paymentreferences_payment_information_card.rb +275 -275
  171. data/lib/cybersource_rest_client/models/ptsv2payments_installment_information.rb +461 -433
  172. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_amount_details.rb +668 -668
  173. data/lib/cybersource_rest_client/models/ptsv2payments_order_information_line_items.rb +716 -716
  174. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information.rb +356 -356
  175. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_card.rb +445 -445
  176. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_payment_type_method.rb +1 -1
  177. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_tokenized_card.rb +377 -377
  178. data/lib/cybersource_rest_client/models/ptsv2payments_payment_information_tokenized_payment_method.rb +196 -196
  179. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_installment_information.rb +604 -604
  180. data/lib/cybersource_rest_client/models/ptsv2paymentsidcaptures_payment_information_payment_type_method.rb +1 -1
  181. data/lib/cybersource_rest_client/models/ptsv2paymentsidrefunds_payment_information_card.rb +377 -377
  182. data/lib/cybersource_rest_client/models/ptsv2paymenttokens_payment_information.rb +199 -199
  183. data/lib/cybersource_rest_client/models/ptsv2paymenttokens_processing_information.rb +192 -192
  184. data/lib/cybersource_rest_client/models/ptsv2payouts_payment_information_card.rb +258 -258
  185. data/lib/cybersource_rest_client/models/request.rb +199 -199
  186. data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_card.rb +241 -241
  187. data/lib/cybersource_rest_client/models/riskv1authenticationresults_payment_information_tokenized_card.rb +258 -258
  188. data/lib/cybersource_rest_client/models/riskv1authentications_payment_information_tokenized_card.rb +351 -351
  189. data/lib/cybersource_rest_client/models/riskv1authenticationsetups_payment_information_card.rb +268 -268
  190. data/lib/cybersource_rest_client/models/riskv1authenticationsetups_payment_information_tokenized_card.rb +299 -299
  191. data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_card.rb +259 -259
  192. data/lib/cybersource_rest_client/models/riskv1decisions_payment_information_tokenized_card.rb +259 -259
  193. data/lib/cybersource_rest_client/models/riskv1liststypeentries_payment_information_card.rb +224 -224
  194. data/lib/cybersource_rest_client/models/tms_bin_lookup_issuer_information.rb +264 -264
  195. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_card.rb +277 -277
  196. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_card_brands.rb +213 -213
  197. data/lib/cybersource_rest_client/models/tms_bin_lookup_payment_account_information_features.rb +430 -430
  198. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response.rb +11 -1
  199. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_bank_account_validation.rb +211 -0
  200. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_brands.rb +201 -201
  201. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_payment_information_card.rb +365 -365
  202. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_processing_information.rb +16 -5
  203. data/lib/cybersource_rest_client/models/tss_v2_transactions_get200_response_processor_information.rb +15 -5
  204. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_payment_information_card.rb +218 -218
  205. data/lib/cybersource_rest_client/models/tss_v2_transactions_post201_response__embedded_processor_information.rb +245 -245
  206. data/lib/cybersource_rest_client/models/update_order_request.rb +229 -229
  207. data/lib/cybersource_rest_client/models/update_webhook.rb +19 -19
  208. data/lib/cybersource_rest_client.rb +20 -18
  209. metadata +25 -20
  210. data/lib/cybersource_rest_client/models/notificationsubscriptionsv2webhooks_security_policy_1.rb +0 -201
@@ -1,356 +1,356 @@
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 Ptsv2paymentsPaymentInformation
16
- attr_accessor :card
17
-
18
- attr_accessor :tokenized_card
19
-
20
- attr_accessor :tokenized_payment_method
21
-
22
- attr_accessor :direct_debit
23
-
24
- attr_accessor :fluid_data
25
-
26
- attr_accessor :customer
27
-
28
- attr_accessor :payment_instrument
29
-
30
- attr_accessor :instrument_identifier
31
-
32
- attr_accessor :shipping_address
33
-
34
- attr_accessor :legacy_token
35
-
36
- attr_accessor :bank
37
-
38
- attr_accessor :options
39
-
40
- attr_accessor :payment_type
41
-
42
- # Mastercard-defined code that indicates how the account information was obtained. - `00`: Card - `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 using a contactless chip or a fixed (non-removable) secure element not controlled by the MNO - `04`: Mobile tag - `05`: Wristband - `06`: Mobile phone case or sleeve - `07`: Mobile phone or smartphone with a fixed (non-removable) 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 forused with a mobile phone or smartphone - `09`: Mobile Phone or smartphone with a fixed (non-removable) 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 (non-removable) secure element controlled by the MNO - `12`: Removable secure element not controlled by the MNO, for example, memory card personalized foruse with a tablet or e-book - `13`: Tablet or e-book with fixed (non-removable) secure element not controlled by the MNO - `14`: Mobile phone or smartphone with a payment application running in a host processor - `15`: Tablet or e-book with a payment application running in a host processor - `16`: Mobile phone or smartphone with a payment application running in the Trusted ExecutionEnvironment (TEE) of a host processor - `17`: Tablet or e-book with a payment application running in the TEE of a host processor - `18`: Watch with a payment application running in the TEE of a host processor - `19`: Watch with a payment application running in a host processor Values from 20–99 exclusively indicate the form factor only without also indicating the storage technology - `20`: Card - `21`: Phone e.g. Mobile Phone - `22`: Tablet/e-reader - `23`: Watch/Wristband e.g. Watch or wristband, including a fitness band, smart strap, disposable band, watch add-on, and security/ID band - `24`: Sticker - `25`: PC - `26`: Device Peripheral e.g. mobile phone case or sleeve - `27`: Tag e.g. key fob or mobile tag - `28`: Jewelry e.g. ring, bracelet, necklace and cuff links - `29`: Fashion Accessory e.g. handbag, bag charm and glasses - `30`: Garment e.g. dress - `31`: Domestic Appliance e.g refrigerator, washing machine - `32`: Vehicle e.g. vehicle, including vehicle attached devices - `33`: Media/Gaming Device e.g. media or gaming device, including a set top box, media player and television 34–99 are reserved for future form factors. Any value in this range may occur within form factor and transaction data without prior notice. This field is supported only for Mastercard on CyberSource through VisaNet. When initiation channel is not provided via this API field, the value is extracted from EMV tag 9F6E for Mastercard transactions. To enable this feature please call support. #### Used by **Authorization** Optional field.
43
- attr_accessor :initiation_channel
44
-
45
- attr_accessor :sepa
46
-
47
- attr_accessor :e_wallet
48
-
49
- attr_accessor :payment_account_reference
50
-
51
- # Attribute mapping from ruby-style variable name to JSON key.
52
- def self.attribute_map
53
- {
54
- :'card' => :'card',
55
- :'tokenized_card' => :'tokenizedCard',
56
- :'tokenized_payment_method' => :'tokenizedPaymentMethod',
57
- :'direct_debit' => :'directDebit',
58
- :'fluid_data' => :'fluidData',
59
- :'customer' => :'customer',
60
- :'payment_instrument' => :'paymentInstrument',
61
- :'instrument_identifier' => :'instrumentIdentifier',
62
- :'shipping_address' => :'shippingAddress',
63
- :'legacy_token' => :'legacyToken',
64
- :'bank' => :'bank',
65
- :'options' => :'options',
66
- :'payment_type' => :'paymentType',
67
- :'initiation_channel' => :'initiationChannel',
68
- :'sepa' => :'sepa',
69
- :'e_wallet' => :'eWallet',
70
- :'payment_account_reference' => :'paymentAccountReference'
71
- }
72
- end
73
-
74
- # Attribute mapping from JSON key to ruby-style variable name.
75
- def self.json_map
76
- {
77
- :'card' => :'card',
78
- :'tokenized_card' => :'tokenized_card',
79
- :'tokenized_payment_method' => :'tokenized_payment_method',
80
- :'direct_debit' => :'direct_debit',
81
- :'fluid_data' => :'fluid_data',
82
- :'customer' => :'customer',
83
- :'payment_instrument' => :'payment_instrument',
84
- :'instrument_identifier' => :'instrument_identifier',
85
- :'shipping_address' => :'shipping_address',
86
- :'legacy_token' => :'legacy_token',
87
- :'bank' => :'bank',
88
- :'options' => :'options',
89
- :'payment_type' => :'payment_type',
90
- :'initiation_channel' => :'initiation_channel',
91
- :'sepa' => :'sepa',
92
- :'e_wallet' => :'e_wallet',
93
- :'payment_account_reference' => :'payment_account_reference'
94
- }
95
- end
96
-
97
- # Attribute type mapping.
98
- def self.swagger_types
99
- {
100
- :'card' => :'Ptsv2paymentsPaymentInformationCard',
101
- :'tokenized_card' => :'Ptsv2paymentsPaymentInformationTokenizedCard',
102
- :'tokenized_payment_method' => :'Ptsv2paymentsPaymentInformationTokenizedPaymentMethod',
103
- :'direct_debit' => :'Ptsv2paymentsPaymentInformationDirectDebit',
104
- :'fluid_data' => :'Ptsv2paymentsPaymentInformationFluidData',
105
- :'customer' => :'Ptsv2paymentsPaymentInformationCustomer',
106
- :'payment_instrument' => :'Ptsv2paymentsPaymentInformationPaymentInstrument',
107
- :'instrument_identifier' => :'Ptsv2paymentsPaymentInformationInstrumentIdentifier',
108
- :'shipping_address' => :'Ptsv2paymentsPaymentInformationShippingAddress',
109
- :'legacy_token' => :'Ptsv2paymentsPaymentInformationLegacyToken',
110
- :'bank' => :'Ptsv2paymentsPaymentInformationBank',
111
- :'options' => :'Ptsv2paymentsPaymentInformationOptions',
112
- :'payment_type' => :'Ptsv2paymentsPaymentInformationPaymentType',
113
- :'initiation_channel' => :'String',
114
- :'sepa' => :'Ptsv2paymentsPaymentInformationSepa',
115
- :'e_wallet' => :'Ptsv2paymentsPaymentInformationEWallet',
116
- :'payment_account_reference' => :'Ptsv2paymentsPaymentInformationPaymentAccountReference'
117
- }
118
- end
119
-
120
- # Initializes the object
121
- # @param [Hash] attributes Model attributes in the form of hash
122
- def initialize(attributes = {})
123
- return unless attributes.is_a?(Hash)
124
-
125
- # convert string to symbol for hash key
126
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
127
-
128
- if attributes.has_key?(:'card')
129
- self.card = attributes[:'card']
130
- end
131
-
132
- if attributes.has_key?(:'tokenizedCard')
133
- self.tokenized_card = attributes[:'tokenizedCard']
134
- end
135
-
136
- if attributes.has_key?(:'tokenizedPaymentMethod')
137
- self.tokenized_payment_method = attributes[:'tokenizedPaymentMethod']
138
- end
139
-
140
- if attributes.has_key?(:'directDebit')
141
- self.direct_debit = attributes[:'directDebit']
142
- end
143
-
144
- if attributes.has_key?(:'fluidData')
145
- self.fluid_data = attributes[:'fluidData']
146
- end
147
-
148
- if attributes.has_key?(:'customer')
149
- self.customer = attributes[:'customer']
150
- end
151
-
152
- if attributes.has_key?(:'paymentInstrument')
153
- self.payment_instrument = attributes[:'paymentInstrument']
154
- end
155
-
156
- if attributes.has_key?(:'instrumentIdentifier')
157
- self.instrument_identifier = attributes[:'instrumentIdentifier']
158
- end
159
-
160
- if attributes.has_key?(:'shippingAddress')
161
- self.shipping_address = attributes[:'shippingAddress']
162
- end
163
-
164
- if attributes.has_key?(:'legacyToken')
165
- self.legacy_token = attributes[:'legacyToken']
166
- end
167
-
168
- if attributes.has_key?(:'bank')
169
- self.bank = attributes[:'bank']
170
- end
171
-
172
- if attributes.has_key?(:'options')
173
- self.options = attributes[:'options']
174
- end
175
-
176
- if attributes.has_key?(:'paymentType')
177
- self.payment_type = attributes[:'paymentType']
178
- end
179
-
180
- if attributes.has_key?(:'initiationChannel')
181
- self.initiation_channel = attributes[:'initiationChannel']
182
- end
183
-
184
- if attributes.has_key?(:'sepa')
185
- self.sepa = attributes[:'sepa']
186
- end
187
-
188
- if attributes.has_key?(:'eWallet')
189
- self.e_wallet = attributes[:'eWallet']
190
- end
191
-
192
- if attributes.has_key?(:'paymentAccountReference')
193
- self.payment_account_reference = attributes[:'paymentAccountReference']
194
- end
195
- end
196
-
197
- # Show invalid properties with the reasons. Usually used together with valid?
198
- # @return Array for valid properties with the reasons
199
- def list_invalid_properties
200
- invalid_properties = Array.new
201
- invalid_properties
202
- end
203
-
204
- # Check to see if the all the properties in the model are valid
205
- # @return true if the model is valid
206
- def valid?
207
- true
208
- end
209
-
210
- # Custom attribute writer method with validation
211
- # @param [Object] initiation_channel Value to be assigned
212
- def initiation_channel=(initiation_channel)
213
- @initiation_channel = initiation_channel
214
- end
215
-
216
- # Checks equality by comparing each attribute.
217
- # @param [Object] Object to be compared
218
- def ==(o)
219
- return true if self.equal?(o)
220
- self.class == o.class &&
221
- card == o.card &&
222
- tokenized_card == o.tokenized_card &&
223
- tokenized_payment_method == o.tokenized_payment_method &&
224
- direct_debit == o.direct_debit &&
225
- fluid_data == o.fluid_data &&
226
- customer == o.customer &&
227
- payment_instrument == o.payment_instrument &&
228
- instrument_identifier == o.instrument_identifier &&
229
- shipping_address == o.shipping_address &&
230
- legacy_token == o.legacy_token &&
231
- bank == o.bank &&
232
- options == o.options &&
233
- payment_type == o.payment_type &&
234
- initiation_channel == o.initiation_channel &&
235
- sepa == o.sepa &&
236
- e_wallet == o.e_wallet &&
237
- payment_account_reference == o.payment_account_reference
238
- end
239
-
240
- # @see the `==` method
241
- # @param [Object] Object to be compared
242
- def eql?(o)
243
- self == o
244
- end
245
-
246
- # Calculates hash code according to all attributes.
247
- # @return [Fixnum] Hash code
248
- def hash
249
- [card, tokenized_card, tokenized_payment_method, direct_debit, fluid_data, customer, payment_instrument, instrument_identifier, shipping_address, legacy_token, bank, options, payment_type, initiation_channel, sepa, e_wallet, payment_account_reference].hash
250
- end
251
-
252
- # Builds the object from hash
253
- # @param [Hash] attributes Model attributes in the form of hash
254
- # @return [Object] Returns the model itself
255
- def build_from_hash(attributes)
256
- return nil unless attributes.is_a?(Hash)
257
- self.class.swagger_types.each_pair do |key, type|
258
- if type =~ /\AArray<(.*)>/i
259
- # check to ensure the input is an array given that the the attribute
260
- # is documented as an array but the input is not
261
- if attributes[self.class.attribute_map[key]].is_a?(Array)
262
- self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
263
- end
264
- elsif !attributes[self.class.attribute_map[key]].nil?
265
- self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
266
- end # or else data not found in attributes(hash), not an issue as the data can be optional
267
- end
268
-
269
- self
270
- end
271
-
272
- # Deserializes the data based on type
273
- # @param string type Data type
274
- # @param string value Value to be deserialized
275
- # @return [Object] Deserialized data
276
- def _deserialize(type, value)
277
- case type.to_sym
278
- when :DateTime
279
- DateTime.parse(value)
280
- when :Date
281
- Date.parse(value)
282
- when :String
283
- value.to_s
284
- when :Integer
285
- value.to_i
286
- when :Float
287
- value.to_f
288
- when :BOOLEAN
289
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
290
- true
291
- else
292
- false
293
- end
294
- when :Object
295
- # generic object (usually a Hash), return directly
296
- value
297
- when /\AArray<(?<inner_type>.+)>\z/
298
- inner_type = Regexp.last_match[:inner_type]
299
- value.map { |v| _deserialize(inner_type, v) }
300
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
301
- k_type = Regexp.last_match[:k_type]
302
- v_type = Regexp.last_match[:v_type]
303
- {}.tap do |hash|
304
- value.each do |k, v|
305
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
306
- end
307
- end
308
- else # model
309
- temp_model = CyberSource.const_get(type).new
310
- temp_model.build_from_hash(value)
311
- end
312
- end
313
-
314
- # Returns the string representation of the object
315
- # @return [String] String presentation of the object
316
- def to_s
317
- to_hash.to_s
318
- end
319
-
320
- # to_body is an alias to to_hash (backward compatibility)
321
- # @return [Hash] Returns the object in the form of hash
322
- def to_body
323
- to_hash
324
- end
325
-
326
- # Returns the object in the form of hash
327
- # @return [Hash] Returns the object in the form of hash
328
- def to_hash
329
- hash = {}
330
- self.class.attribute_map.each_pair do |attr, param|
331
- value = self.send(attr)
332
- next if value.nil?
333
- hash[param] = _to_hash(value)
334
- end
335
- hash
336
- end
337
-
338
- # Outputs non-array value in the form of hash
339
- # For object, use to_hash. Otherwise, just return the value
340
- # @param [Object] value Any valid value
341
- # @return [Hash] Returns the value in the form of hash
342
- def _to_hash(value)
343
- if value.is_a?(Array)
344
- value.compact.map { |v| _to_hash(v) }
345
- elsif value.is_a?(Hash)
346
- {}.tap do |hash|
347
- value.each { |k, v| hash[k] = _to_hash(v) }
348
- end
349
- elsif value.respond_to? :to_hash
350
- value.to_hash
351
- else
352
- value
353
- end
354
- end
355
- end
356
- end
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 Ptsv2paymentsPaymentInformation
16
+ attr_accessor :card
17
+
18
+ attr_accessor :tokenized_card
19
+
20
+ attr_accessor :tokenized_payment_method
21
+
22
+ attr_accessor :direct_debit
23
+
24
+ attr_accessor :fluid_data
25
+
26
+ attr_accessor :customer
27
+
28
+ attr_accessor :payment_instrument
29
+
30
+ attr_accessor :instrument_identifier
31
+
32
+ attr_accessor :shipping_address
33
+
34
+ attr_accessor :legacy_token
35
+
36
+ attr_accessor :bank
37
+
38
+ attr_accessor :options
39
+
40
+ attr_accessor :payment_type
41
+
42
+ # Mastercard-defined code that indicates how the account information was obtained. - `00`: Card - `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 using a contactless chip or a fixed (non-removable) secure element not controlled by the MNO - `04`: Mobile tag - `05`: Wristband - `06`: Mobile phone case or sleeve - `07`: Mobile phone or smartphone with a fixed (non-removable) 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 forused with a mobile phone or smartphone - `09`: Mobile Phone or smartphone with a fixed (non-removable) 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 (non-removable) secure element controlled by the MNO - `12`: Removable secure element not controlled by the MNO, for example, memory card personalized foruse with a tablet or e-book - `13`: Tablet or e-book with fixed (non-removable) secure element not controlled by the MNO - `14`: Mobile phone or smartphone with a payment application running in a host processor - `15`: Tablet or e-book with a payment application running in a host processor - `16`: Mobile phone or smartphone with a payment application running in the Trusted ExecutionEnvironment (TEE) of a host processor - `17`: Tablet or e-book with a payment application running in the TEE of a host processor - `18`: Watch with a payment application running in the TEE of a host processor - `19`: Watch with a payment application running in a host processor Values from 20–99 exclusively indicate the form factor only without also indicating the storage technology - `20`: Card - `21`: Phone e.g. Mobile Phone - `22`: Tablet/e-reader - `23`: Watch/Wristband e.g. Watch or wristband, including a fitness band, smart strap, disposable band, watch add-on, and security/ID band - `24`: Sticker - `25`: PC - `26`: Device Peripheral e.g. mobile phone case or sleeve - `27`: Tag e.g. key fob or mobile tag - `28`: Jewelry e.g. ring, bracelet, necklace and cuff links - `29`: Fashion Accessory e.g. handbag, bag charm and glasses - `30`: Garment e.g. dress - `31`: Domestic Appliance e.g refrigerator, washing machine - `32`: Vehicle e.g. vehicle, including vehicle attached devices - `33`: Media/Gaming Device e.g. media or gaming device, including a set top box, media player and television 34–99 are reserved for future form factors. Any value in this range may occur within form factor and transaction data without prior notice. This field is supported only for Mastercard on CyberSource through VisaNet. When initiation channel is not provided via this API field, the value is extracted from EMV tag 9F6E for Mastercard transactions. To enable this feature please call support. #### Used by **Authorization** Optional field.
43
+ attr_accessor :initiation_channel
44
+
45
+ attr_accessor :sepa
46
+
47
+ attr_accessor :e_wallet
48
+
49
+ attr_accessor :payment_account_reference
50
+
51
+ # Attribute mapping from ruby-style variable name to JSON key.
52
+ def self.attribute_map
53
+ {
54
+ :'card' => :'card',
55
+ :'tokenized_card' => :'tokenizedCard',
56
+ :'tokenized_payment_method' => :'tokenizedPaymentMethod',
57
+ :'direct_debit' => :'directDebit',
58
+ :'fluid_data' => :'fluidData',
59
+ :'customer' => :'customer',
60
+ :'payment_instrument' => :'paymentInstrument',
61
+ :'instrument_identifier' => :'instrumentIdentifier',
62
+ :'shipping_address' => :'shippingAddress',
63
+ :'legacy_token' => :'legacyToken',
64
+ :'bank' => :'bank',
65
+ :'options' => :'options',
66
+ :'payment_type' => :'paymentType',
67
+ :'initiation_channel' => :'initiationChannel',
68
+ :'sepa' => :'sepa',
69
+ :'e_wallet' => :'eWallet',
70
+ :'payment_account_reference' => :'paymentAccountReference'
71
+ }
72
+ end
73
+
74
+ # Attribute mapping from JSON key to ruby-style variable name.
75
+ def self.json_map
76
+ {
77
+ :'card' => :'card',
78
+ :'tokenized_card' => :'tokenized_card',
79
+ :'tokenized_payment_method' => :'tokenized_payment_method',
80
+ :'direct_debit' => :'direct_debit',
81
+ :'fluid_data' => :'fluid_data',
82
+ :'customer' => :'customer',
83
+ :'payment_instrument' => :'payment_instrument',
84
+ :'instrument_identifier' => :'instrument_identifier',
85
+ :'shipping_address' => :'shipping_address',
86
+ :'legacy_token' => :'legacy_token',
87
+ :'bank' => :'bank',
88
+ :'options' => :'options',
89
+ :'payment_type' => :'payment_type',
90
+ :'initiation_channel' => :'initiation_channel',
91
+ :'sepa' => :'sepa',
92
+ :'e_wallet' => :'e_wallet',
93
+ :'payment_account_reference' => :'payment_account_reference'
94
+ }
95
+ end
96
+
97
+ # Attribute type mapping.
98
+ def self.swagger_types
99
+ {
100
+ :'card' => :'Ptsv2paymentsPaymentInformationCard',
101
+ :'tokenized_card' => :'Ptsv2paymentsPaymentInformationTokenizedCard',
102
+ :'tokenized_payment_method' => :'Ptsv2paymentsPaymentInformationTokenizedPaymentMethod',
103
+ :'direct_debit' => :'Ptsv2paymentsPaymentInformationDirectDebit',
104
+ :'fluid_data' => :'Ptsv2paymentsPaymentInformationFluidData',
105
+ :'customer' => :'Ptsv2paymentsPaymentInformationCustomer',
106
+ :'payment_instrument' => :'Ptsv2paymentsPaymentInformationPaymentInstrument',
107
+ :'instrument_identifier' => :'Ptsv2paymentsPaymentInformationInstrumentIdentifier',
108
+ :'shipping_address' => :'Ptsv2paymentsPaymentInformationShippingAddress',
109
+ :'legacy_token' => :'Ptsv2paymentsPaymentInformationLegacyToken',
110
+ :'bank' => :'Ptsv2paymentsPaymentInformationBank',
111
+ :'options' => :'Ptsv2paymentsPaymentInformationOptions',
112
+ :'payment_type' => :'Ptsv2paymentsPaymentInformationPaymentType',
113
+ :'initiation_channel' => :'String',
114
+ :'sepa' => :'Ptsv2paymentsPaymentInformationSepa',
115
+ :'e_wallet' => :'Ptsv2paymentsPaymentInformationEWallet',
116
+ :'payment_account_reference' => :'Ptsv2paymentsPaymentInformationPaymentAccountReference'
117
+ }
118
+ end
119
+
120
+ # Initializes the object
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ def initialize(attributes = {})
123
+ return unless attributes.is_a?(Hash)
124
+
125
+ # convert string to symbol for hash key
126
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
127
+
128
+ if attributes.has_key?(:'card')
129
+ self.card = attributes[:'card']
130
+ end
131
+
132
+ if attributes.has_key?(:'tokenizedCard')
133
+ self.tokenized_card = attributes[:'tokenizedCard']
134
+ end
135
+
136
+ if attributes.has_key?(:'tokenizedPaymentMethod')
137
+ self.tokenized_payment_method = attributes[:'tokenizedPaymentMethod']
138
+ end
139
+
140
+ if attributes.has_key?(:'directDebit')
141
+ self.direct_debit = attributes[:'directDebit']
142
+ end
143
+
144
+ if attributes.has_key?(:'fluidData')
145
+ self.fluid_data = attributes[:'fluidData']
146
+ end
147
+
148
+ if attributes.has_key?(:'customer')
149
+ self.customer = attributes[:'customer']
150
+ end
151
+
152
+ if attributes.has_key?(:'paymentInstrument')
153
+ self.payment_instrument = attributes[:'paymentInstrument']
154
+ end
155
+
156
+ if attributes.has_key?(:'instrumentIdentifier')
157
+ self.instrument_identifier = attributes[:'instrumentIdentifier']
158
+ end
159
+
160
+ if attributes.has_key?(:'shippingAddress')
161
+ self.shipping_address = attributes[:'shippingAddress']
162
+ end
163
+
164
+ if attributes.has_key?(:'legacyToken')
165
+ self.legacy_token = attributes[:'legacyToken']
166
+ end
167
+
168
+ if attributes.has_key?(:'bank')
169
+ self.bank = attributes[:'bank']
170
+ end
171
+
172
+ if attributes.has_key?(:'options')
173
+ self.options = attributes[:'options']
174
+ end
175
+
176
+ if attributes.has_key?(:'paymentType')
177
+ self.payment_type = attributes[:'paymentType']
178
+ end
179
+
180
+ if attributes.has_key?(:'initiationChannel')
181
+ self.initiation_channel = attributes[:'initiationChannel']
182
+ end
183
+
184
+ if attributes.has_key?(:'sepa')
185
+ self.sepa = attributes[:'sepa']
186
+ end
187
+
188
+ if attributes.has_key?(:'eWallet')
189
+ self.e_wallet = attributes[:'eWallet']
190
+ end
191
+
192
+ if attributes.has_key?(:'paymentAccountReference')
193
+ self.payment_account_reference = attributes[:'paymentAccountReference']
194
+ end
195
+ end
196
+
197
+ # Show invalid properties with the reasons. Usually used together with valid?
198
+ # @return Array for valid properties with the reasons
199
+ def list_invalid_properties
200
+ invalid_properties = Array.new
201
+ invalid_properties
202
+ end
203
+
204
+ # Check to see if the all the properties in the model are valid
205
+ # @return true if the model is valid
206
+ def valid?
207
+ true
208
+ end
209
+
210
+ # Custom attribute writer method with validation
211
+ # @param [Object] initiation_channel Value to be assigned
212
+ def initiation_channel=(initiation_channel)
213
+ @initiation_channel = initiation_channel
214
+ end
215
+
216
+ # Checks equality by comparing each attribute.
217
+ # @param [Object] Object to be compared
218
+ def ==(o)
219
+ return true if self.equal?(o)
220
+ self.class == o.class &&
221
+ card == o.card &&
222
+ tokenized_card == o.tokenized_card &&
223
+ tokenized_payment_method == o.tokenized_payment_method &&
224
+ direct_debit == o.direct_debit &&
225
+ fluid_data == o.fluid_data &&
226
+ customer == o.customer &&
227
+ payment_instrument == o.payment_instrument &&
228
+ instrument_identifier == o.instrument_identifier &&
229
+ shipping_address == o.shipping_address &&
230
+ legacy_token == o.legacy_token &&
231
+ bank == o.bank &&
232
+ options == o.options &&
233
+ payment_type == o.payment_type &&
234
+ initiation_channel == o.initiation_channel &&
235
+ sepa == o.sepa &&
236
+ e_wallet == o.e_wallet &&
237
+ payment_account_reference == o.payment_account_reference
238
+ end
239
+
240
+ # @see the `==` method
241
+ # @param [Object] Object to be compared
242
+ def eql?(o)
243
+ self == o
244
+ end
245
+
246
+ # Calculates hash code according to all attributes.
247
+ # @return [Fixnum] Hash code
248
+ def hash
249
+ [card, tokenized_card, tokenized_payment_method, direct_debit, fluid_data, customer, payment_instrument, instrument_identifier, shipping_address, legacy_token, bank, options, payment_type, initiation_channel, sepa, e_wallet, payment_account_reference].hash
250
+ end
251
+
252
+ # Builds the object from hash
253
+ # @param [Hash] attributes Model attributes in the form of hash
254
+ # @return [Object] Returns the model itself
255
+ def build_from_hash(attributes)
256
+ return nil unless attributes.is_a?(Hash)
257
+ self.class.swagger_types.each_pair do |key, type|
258
+ if type =~ /\AArray<(.*)>/i
259
+ # check to ensure the input is an array given that the the attribute
260
+ # is documented as an array but the input is not
261
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
262
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
263
+ end
264
+ elsif !attributes[self.class.attribute_map[key]].nil?
265
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
266
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
267
+ end
268
+
269
+ self
270
+ end
271
+
272
+ # Deserializes the data based on type
273
+ # @param string type Data type
274
+ # @param string value Value to be deserialized
275
+ # @return [Object] Deserialized data
276
+ def _deserialize(type, value)
277
+ case type.to_sym
278
+ when :DateTime
279
+ DateTime.parse(value)
280
+ when :Date
281
+ Date.parse(value)
282
+ when :String
283
+ value.to_s
284
+ when :Integer
285
+ value.to_i
286
+ when :Float
287
+ value.to_f
288
+ when :BOOLEAN
289
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
290
+ true
291
+ else
292
+ false
293
+ end
294
+ when :Object
295
+ # generic object (usually a Hash), return directly
296
+ value
297
+ when /\AArray<(?<inner_type>.+)>\z/
298
+ inner_type = Regexp.last_match[:inner_type]
299
+ value.map { |v| _deserialize(inner_type, v) }
300
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
301
+ k_type = Regexp.last_match[:k_type]
302
+ v_type = Regexp.last_match[:v_type]
303
+ {}.tap do |hash|
304
+ value.each do |k, v|
305
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
306
+ end
307
+ end
308
+ else # model
309
+ temp_model = CyberSource.const_get(type).new
310
+ temp_model.build_from_hash(value)
311
+ end
312
+ end
313
+
314
+ # Returns the string representation of the object
315
+ # @return [String] String presentation of the object
316
+ def to_s
317
+ to_hash.to_s
318
+ end
319
+
320
+ # to_body is an alias to to_hash (backward compatibility)
321
+ # @return [Hash] Returns the object in the form of hash
322
+ def to_body
323
+ to_hash
324
+ end
325
+
326
+ # Returns the object in the form of hash
327
+ # @return [Hash] Returns the object in the form of hash
328
+ def to_hash
329
+ hash = {}
330
+ self.class.attribute_map.each_pair do |attr, param|
331
+ value = self.send(attr)
332
+ next if value.nil?
333
+ hash[param] = _to_hash(value)
334
+ end
335
+ hash
336
+ end
337
+
338
+ # Outputs non-array value in the form of hash
339
+ # For object, use to_hash. Otherwise, just return the value
340
+ # @param [Object] value Any valid value
341
+ # @return [Hash] Returns the value in the form of hash
342
+ def _to_hash(value)
343
+ if value.is_a?(Array)
344
+ value.compact.map { |v| _to_hash(v) }
345
+ elsif value.is_a?(Hash)
346
+ {}.tap do |hash|
347
+ value.each { |k, v| hash[k] = _to_hash(v) }
348
+ end
349
+ elsif value.respond_to? :to_hash
350
+ value.to_hash
351
+ else
352
+ value
353
+ end
354
+ end
355
+ end
356
+ end