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,364 +1,364 @@
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 PtsV2PaymentsPost201ResponsePaymentInformation
16
- attr_accessor :card
17
-
18
- attr_accessor :tokenized_card
19
-
20
- attr_accessor :tokenized_payment_method
21
-
22
- attr_accessor :account_features
23
-
24
- attr_accessor :bank
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
- # Subtype of card account. This field can contain one of the following values: - Maestro International - Maestro UK Domestic - MasterCard Credit - MasterCard Debit - Visa Credit - Visa Debit - Visa Electron **Note** Additional values may be present.
35
- attr_accessor :scheme
36
-
37
- # Credit card BIN (the first six digits of the credit card).Derived either from the `cc_bin` request field or from the first six characters of the `customer_cc_num` field.
38
- attr_accessor :bin
39
-
40
- # Type of payment card account. This field can refer to a credit card, debit card, or prepaid card account type.
41
- attr_accessor :account_type
42
-
43
- # Name of the bank or entity that issued the card account.
44
- attr_accessor :issuer
45
-
46
- # Country (two-digit country code) associated with the BIN of the customer's card used for the payment. Returned if the information is available. Use this field for additional information when reviewing orders. This information is also displayed in the details page of the CyberSource Business Center.
47
- attr_accessor :bin_country
48
-
49
- attr_accessor :e_wallet
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
- :'account_features' => :'accountFeatures',
58
- :'bank' => :'bank',
59
- :'customer' => :'customer',
60
- :'payment_instrument' => :'paymentInstrument',
61
- :'instrument_identifier' => :'instrumentIdentifier',
62
- :'shipping_address' => :'shippingAddress',
63
- :'scheme' => :'scheme',
64
- :'bin' => :'bin',
65
- :'account_type' => :'accountType',
66
- :'issuer' => :'issuer',
67
- :'bin_country' => :'binCountry',
68
- :'e_wallet' => :'eWallet'
69
- }
70
- end
71
-
72
- # Attribute mapping from JSON key to ruby-style variable name.
73
- def self.json_map
74
- {
75
- :'card' => :'card',
76
- :'tokenized_card' => :'tokenized_card',
77
- :'tokenized_payment_method' => :'tokenized_payment_method',
78
- :'account_features' => :'account_features',
79
- :'bank' => :'bank',
80
- :'customer' => :'customer',
81
- :'payment_instrument' => :'payment_instrument',
82
- :'instrument_identifier' => :'instrument_identifier',
83
- :'shipping_address' => :'shipping_address',
84
- :'scheme' => :'scheme',
85
- :'bin' => :'bin',
86
- :'account_type' => :'account_type',
87
- :'issuer' => :'issuer',
88
- :'bin_country' => :'bin_country',
89
- :'e_wallet' => :'e_wallet'
90
- }
91
- end
92
-
93
- # Attribute type mapping.
94
- def self.swagger_types
95
- {
96
- :'card' => :'PtsV2PaymentsPost201ResponsePaymentAccountInformationCard',
97
- :'tokenized_card' => :'PtsV2PaymentsPost201ResponsePaymentInformationTokenizedCard',
98
- :'tokenized_payment_method' => :'PtsV2PaymentsPost201ResponsePaymentInformationTokenizedPaymentMethod',
99
- :'account_features' => :'PtsV2PaymentsPost201ResponsePaymentInformationAccountFeatures',
100
- :'bank' => :'PtsV2PaymentsPost201ResponsePaymentInformationBank',
101
- :'customer' => :'Ptsv2paymentsPaymentInformationCustomer',
102
- :'payment_instrument' => :'Ptsv2paymentsPaymentInformationPaymentInstrument',
103
- :'instrument_identifier' => :'PtsV2PaymentsPost201ResponsePaymentInformationInstrumentIdentifier',
104
- :'shipping_address' => :'Ptsv2paymentsPaymentInformationShippingAddress',
105
- :'scheme' => :'String',
106
- :'bin' => :'String',
107
- :'account_type' => :'String',
108
- :'issuer' => :'String',
109
- :'bin_country' => :'String',
110
- :'e_wallet' => :'PtsV2PaymentsPost201ResponsePaymentInformationEWallet'
111
- }
112
- end
113
-
114
- # Initializes the object
115
- # @param [Hash] attributes Model attributes in the form of hash
116
- def initialize(attributes = {})
117
- return unless attributes.is_a?(Hash)
118
-
119
- # convert string to symbol for hash key
120
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
121
-
122
- if attributes.has_key?(:'card')
123
- self.card = attributes[:'card']
124
- end
125
-
126
- if attributes.has_key?(:'tokenizedCard')
127
- self.tokenized_card = attributes[:'tokenizedCard']
128
- end
129
-
130
- if attributes.has_key?(:'tokenizedPaymentMethod')
131
- self.tokenized_payment_method = attributes[:'tokenizedPaymentMethod']
132
- end
133
-
134
- if attributes.has_key?(:'accountFeatures')
135
- self.account_features = attributes[:'accountFeatures']
136
- end
137
-
138
- if attributes.has_key?(:'bank')
139
- self.bank = attributes[:'bank']
140
- end
141
-
142
- if attributes.has_key?(:'customer')
143
- self.customer = attributes[:'customer']
144
- end
145
-
146
- if attributes.has_key?(:'paymentInstrument')
147
- self.payment_instrument = attributes[:'paymentInstrument']
148
- end
149
-
150
- if attributes.has_key?(:'instrumentIdentifier')
151
- self.instrument_identifier = attributes[:'instrumentIdentifier']
152
- end
153
-
154
- if attributes.has_key?(:'shippingAddress')
155
- self.shipping_address = attributes[:'shippingAddress']
156
- end
157
-
158
- if attributes.has_key?(:'scheme')
159
- self.scheme = attributes[:'scheme']
160
- end
161
-
162
- if attributes.has_key?(:'bin')
163
- self.bin = attributes[:'bin']
164
- end
165
-
166
- if attributes.has_key?(:'accountType')
167
- self.account_type = attributes[:'accountType']
168
- end
169
-
170
- if attributes.has_key?(:'issuer')
171
- self.issuer = attributes[:'issuer']
172
- end
173
-
174
- if attributes.has_key?(:'binCountry')
175
- self.bin_country = attributes[:'binCountry']
176
- end
177
-
178
- if attributes.has_key?(:'eWallet')
179
- self.e_wallet = attributes[:'eWallet']
180
- end
181
- end
182
-
183
- # Show invalid properties with the reasons. Usually used together with valid?
184
- # @return Array for valid properties with the reasons
185
- def list_invalid_properties
186
- invalid_properties = Array.new
187
- invalid_properties
188
- end
189
-
190
- # Check to see if the all the properties in the model are valid
191
- # @return true if the model is valid
192
- def valid?
193
- true
194
- end
195
-
196
- # Custom attribute writer method with validation
197
- # @param [Object] scheme Value to be assigned
198
- def scheme=(scheme)
199
- @scheme = scheme
200
- end
201
-
202
- # Custom attribute writer method with validation
203
- # @param [Object] bin Value to be assigned
204
- def bin=(bin)
205
- @bin = bin
206
- end
207
-
208
- # Custom attribute writer method with validation
209
- # @param [Object] account_type Value to be assigned
210
- def account_type=(account_type)
211
- @account_type = account_type
212
- end
213
-
214
- # Custom attribute writer method with validation
215
- # @param [Object] issuer Value to be assigned
216
- def issuer=(issuer)
217
- @issuer = issuer
218
- end
219
-
220
- # Custom attribute writer method with validation
221
- # @param [Object] bin_country Value to be assigned
222
- def bin_country=(bin_country)
223
- @bin_country = bin_country
224
- end
225
-
226
- # Checks equality by comparing each attribute.
227
- # @param [Object] Object to be compared
228
- def ==(o)
229
- return true if self.equal?(o)
230
- self.class == o.class &&
231
- card == o.card &&
232
- tokenized_card == o.tokenized_card &&
233
- tokenized_payment_method == o.tokenized_payment_method &&
234
- account_features == o.account_features &&
235
- bank == o.bank &&
236
- customer == o.customer &&
237
- payment_instrument == o.payment_instrument &&
238
- instrument_identifier == o.instrument_identifier &&
239
- shipping_address == o.shipping_address &&
240
- scheme == o.scheme &&
241
- bin == o.bin &&
242
- account_type == o.account_type &&
243
- issuer == o.issuer &&
244
- bin_country == o.bin_country &&
245
- e_wallet == o.e_wallet
246
- end
247
-
248
- # @see the `==` method
249
- # @param [Object] Object to be compared
250
- def eql?(o)
251
- self == o
252
- end
253
-
254
- # Calculates hash code according to all attributes.
255
- # @return [Fixnum] Hash code
256
- def hash
257
- [card, tokenized_card, tokenized_payment_method, account_features, bank, customer, payment_instrument, instrument_identifier, shipping_address, scheme, bin, account_type, issuer, bin_country, e_wallet].hash
258
- end
259
-
260
- # Builds the object from hash
261
- # @param [Hash] attributes Model attributes in the form of hash
262
- # @return [Object] Returns the model itself
263
- def build_from_hash(attributes)
264
- return nil unless attributes.is_a?(Hash)
265
- self.class.swagger_types.each_pair do |key, type|
266
- if type =~ /\AArray<(.*)>/i
267
- # check to ensure the input is an array given that the the attribute
268
- # is documented as an array but the input is not
269
- if attributes[self.class.attribute_map[key]].is_a?(Array)
270
- self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
271
- end
272
- elsif !attributes[self.class.attribute_map[key]].nil?
273
- self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
274
- end # or else data not found in attributes(hash), not an issue as the data can be optional
275
- end
276
-
277
- self
278
- end
279
-
280
- # Deserializes the data based on type
281
- # @param string type Data type
282
- # @param string value Value to be deserialized
283
- # @return [Object] Deserialized data
284
- def _deserialize(type, value)
285
- case type.to_sym
286
- when :DateTime
287
- DateTime.parse(value)
288
- when :Date
289
- Date.parse(value)
290
- when :String
291
- value.to_s
292
- when :Integer
293
- value.to_i
294
- when :Float
295
- value.to_f
296
- when :BOOLEAN
297
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
298
- true
299
- else
300
- false
301
- end
302
- when :Object
303
- # generic object (usually a Hash), return directly
304
- value
305
- when /\AArray<(?<inner_type>.+)>\z/
306
- inner_type = Regexp.last_match[:inner_type]
307
- value.map { |v| _deserialize(inner_type, v) }
308
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
309
- k_type = Regexp.last_match[:k_type]
310
- v_type = Regexp.last_match[:v_type]
311
- {}.tap do |hash|
312
- value.each do |k, v|
313
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
314
- end
315
- end
316
- else # model
317
- temp_model = CyberSource.const_get(type).new
318
- temp_model.build_from_hash(value)
319
- end
320
- end
321
-
322
- # Returns the string representation of the object
323
- # @return [String] String presentation of the object
324
- def to_s
325
- to_hash.to_s
326
- end
327
-
328
- # to_body is an alias to to_hash (backward compatibility)
329
- # @return [Hash] Returns the object in the form of hash
330
- def to_body
331
- to_hash
332
- end
333
-
334
- # Returns the object in the form of hash
335
- # @return [Hash] Returns the object in the form of hash
336
- def to_hash
337
- hash = {}
338
- self.class.attribute_map.each_pair do |attr, param|
339
- value = self.send(attr)
340
- next if value.nil?
341
- hash[param] = _to_hash(value)
342
- end
343
- hash
344
- end
345
-
346
- # Outputs non-array value in the form of hash
347
- # For object, use to_hash. Otherwise, just return the value
348
- # @param [Object] value Any valid value
349
- # @return [Hash] Returns the value in the form of hash
350
- def _to_hash(value)
351
- if value.is_a?(Array)
352
- value.compact.map { |v| _to_hash(v) }
353
- elsif value.is_a?(Hash)
354
- {}.tap do |hash|
355
- value.each { |k, v| hash[k] = _to_hash(v) }
356
- end
357
- elsif value.respond_to? :to_hash
358
- value.to_hash
359
- else
360
- value
361
- end
362
- end
363
- end
364
- 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 PtsV2PaymentsPost201ResponsePaymentInformation
16
+ attr_accessor :card
17
+
18
+ attr_accessor :tokenized_card
19
+
20
+ attr_accessor :tokenized_payment_method
21
+
22
+ attr_accessor :account_features
23
+
24
+ attr_accessor :bank
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
+ # Subtype of card account. This field can contain one of the following values: - Maestro International - Maestro UK Domestic - MasterCard Credit - MasterCard Debit - Visa Credit - Visa Debit - Visa Electron **Note** Additional values may be present.
35
+ attr_accessor :scheme
36
+
37
+ # Credit card BIN (the first six digits of the credit card).Derived either from the `cc_bin` request field or from the first six characters of the `customer_cc_num` field.
38
+ attr_accessor :bin
39
+
40
+ # Type of payment card account. This field can refer to a credit card, debit card, or prepaid card account type.
41
+ attr_accessor :account_type
42
+
43
+ # Name of the bank or entity that issued the card account.
44
+ attr_accessor :issuer
45
+
46
+ # Country (two-digit country code) associated with the BIN of the customer's card used for the payment. Returned if the information is available. Use this field for additional information when reviewing orders. This information is also displayed in the details page of the CyberSource Business Center.
47
+ attr_accessor :bin_country
48
+
49
+ attr_accessor :e_wallet
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
+ :'account_features' => :'accountFeatures',
58
+ :'bank' => :'bank',
59
+ :'customer' => :'customer',
60
+ :'payment_instrument' => :'paymentInstrument',
61
+ :'instrument_identifier' => :'instrumentIdentifier',
62
+ :'shipping_address' => :'shippingAddress',
63
+ :'scheme' => :'scheme',
64
+ :'bin' => :'bin',
65
+ :'account_type' => :'accountType',
66
+ :'issuer' => :'issuer',
67
+ :'bin_country' => :'binCountry',
68
+ :'e_wallet' => :'eWallet'
69
+ }
70
+ end
71
+
72
+ # Attribute mapping from JSON key to ruby-style variable name.
73
+ def self.json_map
74
+ {
75
+ :'card' => :'card',
76
+ :'tokenized_card' => :'tokenized_card',
77
+ :'tokenized_payment_method' => :'tokenized_payment_method',
78
+ :'account_features' => :'account_features',
79
+ :'bank' => :'bank',
80
+ :'customer' => :'customer',
81
+ :'payment_instrument' => :'payment_instrument',
82
+ :'instrument_identifier' => :'instrument_identifier',
83
+ :'shipping_address' => :'shipping_address',
84
+ :'scheme' => :'scheme',
85
+ :'bin' => :'bin',
86
+ :'account_type' => :'account_type',
87
+ :'issuer' => :'issuer',
88
+ :'bin_country' => :'bin_country',
89
+ :'e_wallet' => :'e_wallet'
90
+ }
91
+ end
92
+
93
+ # Attribute type mapping.
94
+ def self.swagger_types
95
+ {
96
+ :'card' => :'PtsV2PaymentsPost201ResponsePaymentAccountInformationCard',
97
+ :'tokenized_card' => :'PtsV2PaymentsPost201ResponsePaymentInformationTokenizedCard',
98
+ :'tokenized_payment_method' => :'PtsV2PaymentsPost201ResponsePaymentInformationTokenizedPaymentMethod',
99
+ :'account_features' => :'PtsV2PaymentsPost201ResponsePaymentInformationAccountFeatures',
100
+ :'bank' => :'PtsV2PaymentsPost201ResponsePaymentInformationBank',
101
+ :'customer' => :'Ptsv2paymentsPaymentInformationCustomer',
102
+ :'payment_instrument' => :'Ptsv2paymentsPaymentInformationPaymentInstrument',
103
+ :'instrument_identifier' => :'PtsV2PaymentsPost201ResponsePaymentInformationInstrumentIdentifier',
104
+ :'shipping_address' => :'Ptsv2paymentsPaymentInformationShippingAddress',
105
+ :'scheme' => :'String',
106
+ :'bin' => :'String',
107
+ :'account_type' => :'String',
108
+ :'issuer' => :'String',
109
+ :'bin_country' => :'String',
110
+ :'e_wallet' => :'PtsV2PaymentsPost201ResponsePaymentInformationEWallet'
111
+ }
112
+ end
113
+
114
+ # Initializes the object
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ def initialize(attributes = {})
117
+ return unless attributes.is_a?(Hash)
118
+
119
+ # convert string to symbol for hash key
120
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
121
+
122
+ if attributes.has_key?(:'card')
123
+ self.card = attributes[:'card']
124
+ end
125
+
126
+ if attributes.has_key?(:'tokenizedCard')
127
+ self.tokenized_card = attributes[:'tokenizedCard']
128
+ end
129
+
130
+ if attributes.has_key?(:'tokenizedPaymentMethod')
131
+ self.tokenized_payment_method = attributes[:'tokenizedPaymentMethod']
132
+ end
133
+
134
+ if attributes.has_key?(:'accountFeatures')
135
+ self.account_features = attributes[:'accountFeatures']
136
+ end
137
+
138
+ if attributes.has_key?(:'bank')
139
+ self.bank = attributes[:'bank']
140
+ end
141
+
142
+ if attributes.has_key?(:'customer')
143
+ self.customer = attributes[:'customer']
144
+ end
145
+
146
+ if attributes.has_key?(:'paymentInstrument')
147
+ self.payment_instrument = attributes[:'paymentInstrument']
148
+ end
149
+
150
+ if attributes.has_key?(:'instrumentIdentifier')
151
+ self.instrument_identifier = attributes[:'instrumentIdentifier']
152
+ end
153
+
154
+ if attributes.has_key?(:'shippingAddress')
155
+ self.shipping_address = attributes[:'shippingAddress']
156
+ end
157
+
158
+ if attributes.has_key?(:'scheme')
159
+ self.scheme = attributes[:'scheme']
160
+ end
161
+
162
+ if attributes.has_key?(:'bin')
163
+ self.bin = attributes[:'bin']
164
+ end
165
+
166
+ if attributes.has_key?(:'accountType')
167
+ self.account_type = attributes[:'accountType']
168
+ end
169
+
170
+ if attributes.has_key?(:'issuer')
171
+ self.issuer = attributes[:'issuer']
172
+ end
173
+
174
+ if attributes.has_key?(:'binCountry')
175
+ self.bin_country = attributes[:'binCountry']
176
+ end
177
+
178
+ if attributes.has_key?(:'eWallet')
179
+ self.e_wallet = attributes[:'eWallet']
180
+ end
181
+ end
182
+
183
+ # Show invalid properties with the reasons. Usually used together with valid?
184
+ # @return Array for valid properties with the reasons
185
+ def list_invalid_properties
186
+ invalid_properties = Array.new
187
+ invalid_properties
188
+ end
189
+
190
+ # Check to see if the all the properties in the model are valid
191
+ # @return true if the model is valid
192
+ def valid?
193
+ true
194
+ end
195
+
196
+ # Custom attribute writer method with validation
197
+ # @param [Object] scheme Value to be assigned
198
+ def scheme=(scheme)
199
+ @scheme = scheme
200
+ end
201
+
202
+ # Custom attribute writer method with validation
203
+ # @param [Object] bin Value to be assigned
204
+ def bin=(bin)
205
+ @bin = bin
206
+ end
207
+
208
+ # Custom attribute writer method with validation
209
+ # @param [Object] account_type Value to be assigned
210
+ def account_type=(account_type)
211
+ @account_type = account_type
212
+ end
213
+
214
+ # Custom attribute writer method with validation
215
+ # @param [Object] issuer Value to be assigned
216
+ def issuer=(issuer)
217
+ @issuer = issuer
218
+ end
219
+
220
+ # Custom attribute writer method with validation
221
+ # @param [Object] bin_country Value to be assigned
222
+ def bin_country=(bin_country)
223
+ @bin_country = bin_country
224
+ end
225
+
226
+ # Checks equality by comparing each attribute.
227
+ # @param [Object] Object to be compared
228
+ def ==(o)
229
+ return true if self.equal?(o)
230
+ self.class == o.class &&
231
+ card == o.card &&
232
+ tokenized_card == o.tokenized_card &&
233
+ tokenized_payment_method == o.tokenized_payment_method &&
234
+ account_features == o.account_features &&
235
+ bank == o.bank &&
236
+ customer == o.customer &&
237
+ payment_instrument == o.payment_instrument &&
238
+ instrument_identifier == o.instrument_identifier &&
239
+ shipping_address == o.shipping_address &&
240
+ scheme == o.scheme &&
241
+ bin == o.bin &&
242
+ account_type == o.account_type &&
243
+ issuer == o.issuer &&
244
+ bin_country == o.bin_country &&
245
+ e_wallet == o.e_wallet
246
+ end
247
+
248
+ # @see the `==` method
249
+ # @param [Object] Object to be compared
250
+ def eql?(o)
251
+ self == o
252
+ end
253
+
254
+ # Calculates hash code according to all attributes.
255
+ # @return [Fixnum] Hash code
256
+ def hash
257
+ [card, tokenized_card, tokenized_payment_method, account_features, bank, customer, payment_instrument, instrument_identifier, shipping_address, scheme, bin, account_type, issuer, bin_country, e_wallet].hash
258
+ end
259
+
260
+ # Builds the object from hash
261
+ # @param [Hash] attributes Model attributes in the form of hash
262
+ # @return [Object] Returns the model itself
263
+ def build_from_hash(attributes)
264
+ return nil unless attributes.is_a?(Hash)
265
+ self.class.swagger_types.each_pair do |key, type|
266
+ if type =~ /\AArray<(.*)>/i
267
+ # check to ensure the input is an array given that the the attribute
268
+ # is documented as an array but the input is not
269
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
270
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
271
+ end
272
+ elsif !attributes[self.class.attribute_map[key]].nil?
273
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
274
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
275
+ end
276
+
277
+ self
278
+ end
279
+
280
+ # Deserializes the data based on type
281
+ # @param string type Data type
282
+ # @param string value Value to be deserialized
283
+ # @return [Object] Deserialized data
284
+ def _deserialize(type, value)
285
+ case type.to_sym
286
+ when :DateTime
287
+ DateTime.parse(value)
288
+ when :Date
289
+ Date.parse(value)
290
+ when :String
291
+ value.to_s
292
+ when :Integer
293
+ value.to_i
294
+ when :Float
295
+ value.to_f
296
+ when :BOOLEAN
297
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
298
+ true
299
+ else
300
+ false
301
+ end
302
+ when :Object
303
+ # generic object (usually a Hash), return directly
304
+ value
305
+ when /\AArray<(?<inner_type>.+)>\z/
306
+ inner_type = Regexp.last_match[:inner_type]
307
+ value.map { |v| _deserialize(inner_type, v) }
308
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
309
+ k_type = Regexp.last_match[:k_type]
310
+ v_type = Regexp.last_match[:v_type]
311
+ {}.tap do |hash|
312
+ value.each do |k, v|
313
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
314
+ end
315
+ end
316
+ else # model
317
+ temp_model = CyberSource.const_get(type).new
318
+ temp_model.build_from_hash(value)
319
+ end
320
+ end
321
+
322
+ # Returns the string representation of the object
323
+ # @return [String] String presentation of the object
324
+ def to_s
325
+ to_hash.to_s
326
+ end
327
+
328
+ # to_body is an alias to to_hash (backward compatibility)
329
+ # @return [Hash] Returns the object in the form of hash
330
+ def to_body
331
+ to_hash
332
+ end
333
+
334
+ # Returns the object in the form of hash
335
+ # @return [Hash] Returns the object in the form of hash
336
+ def to_hash
337
+ hash = {}
338
+ self.class.attribute_map.each_pair do |attr, param|
339
+ value = self.send(attr)
340
+ next if value.nil?
341
+ hash[param] = _to_hash(value)
342
+ end
343
+ hash
344
+ end
345
+
346
+ # Outputs non-array value in the form of hash
347
+ # For object, use to_hash. Otherwise, just return the value
348
+ # @param [Object] value Any valid value
349
+ # @return [Hash] Returns the value in the form of hash
350
+ def _to_hash(value)
351
+ if value.is_a?(Array)
352
+ value.compact.map { |v| _to_hash(v) }
353
+ elsif value.is_a?(Hash)
354
+ {}.tap do |hash|
355
+ value.each { |k, v| hash[k] = _to_hash(v) }
356
+ end
357
+ elsif value.respond_to? :to_hash
358
+ value.to_hash
359
+ else
360
+ value
361
+ end
362
+ end
363
+ end
364
+ end