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,351 +1,351 @@
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 Ptsv2intentsProcessingInformation
16
- # The instruction to process an order. - default value: 'NO_INSTRUCTION' - 'ORDER_SAVED_EXPLICITLY'
17
- attr_accessor :processing_instruction
18
-
19
- attr_accessor :authorization_options
20
-
21
- # Array of actions (one or more) to be included in the order to invoke bundled services along with order. Possible values: - `AP_ORDER`: Use this when Alternative Payment Order service is requested.
22
- attr_accessor :action_list
23
-
24
- # Indicates if the transaction is flagged as high risk.
25
- attr_accessor :high_risk_transaction_flag
26
-
27
- # Indicates if the transaction is a retry.
28
- attr_accessor :transaction_retry
29
-
30
- # The number of transactions in the last one hour.
31
- attr_accessor :last_one_hr_transaction_count
32
-
33
- # The number of transactions in the last one day.
34
- attr_accessor :last_one_day_transaction_count
35
-
36
- # The number of transactions in the last three months.
37
- attr_accessor :last_three_months_txn_count
38
-
39
- # The total number of transactions.
40
- attr_accessor :total_transaction_count
41
-
42
- # Indicates if PIN verification is required.
43
- attr_accessor :pin_verification
44
-
45
- # Indicates if face ID verification is required.
46
- attr_accessor :face_id_verification
47
-
48
- # Indicates if the user passed verification.
49
- attr_accessor :user_passed_verification
50
-
51
- # The IP address of the user.
52
- attr_accessor :ip_address
53
-
54
- # The date of the transaction.
55
- attr_accessor :transaction_date
56
-
57
- # Indicates if the transaction involves tangible goods.
58
- attr_accessor :tangible
59
-
60
- # Attribute mapping from ruby-style variable name to JSON key.
61
- def self.attribute_map
62
- {
63
- :'processing_instruction' => :'processingInstruction',
64
- :'authorization_options' => :'authorizationOptions',
65
- :'action_list' => :'actionList',
66
- :'high_risk_transaction_flag' => :'highRiskTransactionFlag',
67
- :'transaction_retry' => :'transactionRetry',
68
- :'last_one_hr_transaction_count' => :'lastOneHrTransactionCount',
69
- :'last_one_day_transaction_count' => :'lastOneDayTransactionCount',
70
- :'last_three_months_txn_count' => :'lastThreeMonthsTxnCount',
71
- :'total_transaction_count' => :'totalTransactionCount',
72
- :'pin_verification' => :'pinVerification',
73
- :'face_id_verification' => :'faceIdVerification',
74
- :'user_passed_verification' => :'userPassedVerification',
75
- :'ip_address' => :'ipAddress',
76
- :'transaction_date' => :'transactionDate',
77
- :'tangible' => :'tangible'
78
- }
79
- end
80
-
81
- # Attribute mapping from JSON key to ruby-style variable name.
82
- def self.json_map
83
- {
84
- :'processing_instruction' => :'processing_instruction',
85
- :'authorization_options' => :'authorization_options',
86
- :'action_list' => :'action_list',
87
- :'high_risk_transaction_flag' => :'high_risk_transaction_flag',
88
- :'transaction_retry' => :'transaction_retry',
89
- :'last_one_hr_transaction_count' => :'last_one_hr_transaction_count',
90
- :'last_one_day_transaction_count' => :'last_one_day_transaction_count',
91
- :'last_three_months_txn_count' => :'last_three_months_txn_count',
92
- :'total_transaction_count' => :'total_transaction_count',
93
- :'pin_verification' => :'pin_verification',
94
- :'face_id_verification' => :'face_id_verification',
95
- :'user_passed_verification' => :'user_passed_verification',
96
- :'ip_address' => :'ip_address',
97
- :'transaction_date' => :'transaction_date',
98
- :'tangible' => :'tangible'
99
- }
100
- end
101
-
102
- # Attribute type mapping.
103
- def self.swagger_types
104
- {
105
- :'processing_instruction' => :'String',
106
- :'authorization_options' => :'Ptsv2intentsProcessingInformationAuthorizationOptions',
107
- :'action_list' => :'Array<String>',
108
- :'high_risk_transaction_flag' => :'String',
109
- :'transaction_retry' => :'String',
110
- :'last_one_hr_transaction_count' => :'String',
111
- :'last_one_day_transaction_count' => :'String',
112
- :'last_three_months_txn_count' => :'String',
113
- :'total_transaction_count' => :'String',
114
- :'pin_verification' => :'String',
115
- :'face_id_verification' => :'String',
116
- :'user_passed_verification' => :'String',
117
- :'ip_address' => :'String',
118
- :'transaction_date' => :'String',
119
- :'tangible' => :'String'
120
- }
121
- end
122
-
123
- # Initializes the object
124
- # @param [Hash] attributes Model attributes in the form of hash
125
- def initialize(attributes = {})
126
- return unless attributes.is_a?(Hash)
127
-
128
- # convert string to symbol for hash key
129
- attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
130
-
131
- if attributes.has_key?(:'processingInstruction')
132
- self.processing_instruction = attributes[:'processingInstruction']
133
- end
134
-
135
- if attributes.has_key?(:'authorizationOptions')
136
- self.authorization_options = attributes[:'authorizationOptions']
137
- end
138
-
139
- if attributes.has_key?(:'actionList')
140
- if (value = attributes[:'actionList']).is_a?(Array)
141
- self.action_list = value
142
- end
143
- end
144
-
145
- if attributes.has_key?(:'highRiskTransactionFlag')
146
- self.high_risk_transaction_flag = attributes[:'highRiskTransactionFlag']
147
- end
148
-
149
- if attributes.has_key?(:'transactionRetry')
150
- self.transaction_retry = attributes[:'transactionRetry']
151
- end
152
-
153
- if attributes.has_key?(:'lastOneHrTransactionCount')
154
- self.last_one_hr_transaction_count = attributes[:'lastOneHrTransactionCount']
155
- end
156
-
157
- if attributes.has_key?(:'lastOneDayTransactionCount')
158
- self.last_one_day_transaction_count = attributes[:'lastOneDayTransactionCount']
159
- end
160
-
161
- if attributes.has_key?(:'lastThreeMonthsTxnCount')
162
- self.last_three_months_txn_count = attributes[:'lastThreeMonthsTxnCount']
163
- end
164
-
165
- if attributes.has_key?(:'totalTransactionCount')
166
- self.total_transaction_count = attributes[:'totalTransactionCount']
167
- end
168
-
169
- if attributes.has_key?(:'pinVerification')
170
- self.pin_verification = attributes[:'pinVerification']
171
- end
172
-
173
- if attributes.has_key?(:'faceIdVerification')
174
- self.face_id_verification = attributes[:'faceIdVerification']
175
- end
176
-
177
- if attributes.has_key?(:'userPassedVerification')
178
- self.user_passed_verification = attributes[:'userPassedVerification']
179
- end
180
-
181
- if attributes.has_key?(:'ipAddress')
182
- self.ip_address = attributes[:'ipAddress']
183
- end
184
-
185
- if attributes.has_key?(:'transactionDate')
186
- self.transaction_date = attributes[:'transactionDate']
187
- end
188
-
189
- if attributes.has_key?(:'tangible')
190
- self.tangible = attributes[:'tangible']
191
- end
192
- end
193
-
194
- # Show invalid properties with the reasons. Usually used together with valid?
195
- # @return Array for valid properties with the reasons
196
- def list_invalid_properties
197
- invalid_properties = Array.new
198
- invalid_properties
199
- end
200
-
201
- # Check to see if the all the properties in the model are valid
202
- # @return true if the model is valid
203
- def valid?
204
- true
205
- end
206
-
207
- # Custom attribute writer method with validation
208
- # @param [Object] processing_instruction Value to be assigned
209
- def processing_instruction=(processing_instruction)
210
- @processing_instruction = processing_instruction
211
- end
212
-
213
- # Checks equality by comparing each attribute.
214
- # @param [Object] Object to be compared
215
- def ==(o)
216
- return true if self.equal?(o)
217
- self.class == o.class &&
218
- processing_instruction == o.processing_instruction &&
219
- authorization_options == o.authorization_options &&
220
- action_list == o.action_list &&
221
- high_risk_transaction_flag == o.high_risk_transaction_flag &&
222
- transaction_retry == o.transaction_retry &&
223
- last_one_hr_transaction_count == o.last_one_hr_transaction_count &&
224
- last_one_day_transaction_count == o.last_one_day_transaction_count &&
225
- last_three_months_txn_count == o.last_three_months_txn_count &&
226
- total_transaction_count == o.total_transaction_count &&
227
- pin_verification == o.pin_verification &&
228
- face_id_verification == o.face_id_verification &&
229
- user_passed_verification == o.user_passed_verification &&
230
- ip_address == o.ip_address &&
231
- transaction_date == o.transaction_date &&
232
- tangible == o.tangible
233
- end
234
-
235
- # @see the `==` method
236
- # @param [Object] Object to be compared
237
- def eql?(o)
238
- self == o
239
- end
240
-
241
- # Calculates hash code according to all attributes.
242
- # @return [Fixnum] Hash code
243
- def hash
244
- [processing_instruction, authorization_options, action_list, high_risk_transaction_flag, transaction_retry, last_one_hr_transaction_count, last_one_day_transaction_count, last_three_months_txn_count, total_transaction_count, pin_verification, face_id_verification, user_passed_verification, ip_address, transaction_date, tangible].hash
245
- end
246
-
247
- # Builds the object from hash
248
- # @param [Hash] attributes Model attributes in the form of hash
249
- # @return [Object] Returns the model itself
250
- def build_from_hash(attributes)
251
- return nil unless attributes.is_a?(Hash)
252
- self.class.swagger_types.each_pair do |key, type|
253
- if type =~ /\AArray<(.*)>/i
254
- # check to ensure the input is an array given that the the attribute
255
- # is documented as an array but the input is not
256
- if attributes[self.class.attribute_map[key]].is_a?(Array)
257
- self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
258
- end
259
- elsif !attributes[self.class.attribute_map[key]].nil?
260
- self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
261
- end # or else data not found in attributes(hash), not an issue as the data can be optional
262
- end
263
-
264
- self
265
- end
266
-
267
- # Deserializes the data based on type
268
- # @param string type Data type
269
- # @param string value Value to be deserialized
270
- # @return [Object] Deserialized data
271
- def _deserialize(type, value)
272
- case type.to_sym
273
- when :DateTime
274
- DateTime.parse(value)
275
- when :Date
276
- Date.parse(value)
277
- when :String
278
- value.to_s
279
- when :Integer
280
- value.to_i
281
- when :Float
282
- value.to_f
283
- when :BOOLEAN
284
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
285
- true
286
- else
287
- false
288
- end
289
- when :Object
290
- # generic object (usually a Hash), return directly
291
- value
292
- when /\AArray<(?<inner_type>.+)>\z/
293
- inner_type = Regexp.last_match[:inner_type]
294
- value.map { |v| _deserialize(inner_type, v) }
295
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
296
- k_type = Regexp.last_match[:k_type]
297
- v_type = Regexp.last_match[:v_type]
298
- {}.tap do |hash|
299
- value.each do |k, v|
300
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
301
- end
302
- end
303
- else # model
304
- temp_model = CyberSource.const_get(type).new
305
- temp_model.build_from_hash(value)
306
- end
307
- end
308
-
309
- # Returns the string representation of the object
310
- # @return [String] String presentation of the object
311
- def to_s
312
- to_hash.to_s
313
- end
314
-
315
- # to_body is an alias to to_hash (backward compatibility)
316
- # @return [Hash] Returns the object in the form of hash
317
- def to_body
318
- to_hash
319
- end
320
-
321
- # Returns the object in the form of hash
322
- # @return [Hash] Returns the object in the form of hash
323
- def to_hash
324
- hash = {}
325
- self.class.attribute_map.each_pair do |attr, param|
326
- value = self.send(attr)
327
- next if value.nil?
328
- hash[param] = _to_hash(value)
329
- end
330
- hash
331
- end
332
-
333
- # Outputs non-array value in the form of hash
334
- # For object, use to_hash. Otherwise, just return the value
335
- # @param [Object] value Any valid value
336
- # @return [Hash] Returns the value in the form of hash
337
- def _to_hash(value)
338
- if value.is_a?(Array)
339
- value.compact.map { |v| _to_hash(v) }
340
- elsif value.is_a?(Hash)
341
- {}.tap do |hash|
342
- value.each { |k, v| hash[k] = _to_hash(v) }
343
- end
344
- elsif value.respond_to? :to_hash
345
- value.to_hash
346
- else
347
- value
348
- end
349
- end
350
- end
351
- 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 Ptsv2intentsProcessingInformation
16
+ # The instruction to process an order. - default value: 'NO_INSTRUCTION' - 'ORDER_SAVED_EXPLICITLY'
17
+ attr_accessor :processing_instruction
18
+
19
+ attr_accessor :authorization_options
20
+
21
+ # Array of actions (one or more) to be included in the order to invoke bundled services along with order. Possible values: - `AP_ORDER`: Use this when Alternative Payment Order service is requested.
22
+ attr_accessor :action_list
23
+
24
+ # Indicates if the transaction is flagged as high risk.
25
+ attr_accessor :high_risk_transaction_flag
26
+
27
+ # Indicates if the transaction is a retry.
28
+ attr_accessor :transaction_retry
29
+
30
+ # The number of transactions in the last one hour.
31
+ attr_accessor :last_one_hr_transaction_count
32
+
33
+ # The number of transactions in the last one day.
34
+ attr_accessor :last_one_day_transaction_count
35
+
36
+ # The number of transactions in the last three months.
37
+ attr_accessor :last_three_months_txn_count
38
+
39
+ # The total number of transactions.
40
+ attr_accessor :total_transaction_count
41
+
42
+ # Indicates if PIN verification is required.
43
+ attr_accessor :pin_verification
44
+
45
+ # Indicates if face ID verification is required.
46
+ attr_accessor :face_id_verification
47
+
48
+ # Indicates if the user passed verification.
49
+ attr_accessor :user_passed_verification
50
+
51
+ # The IP address of the user.
52
+ attr_accessor :ip_address
53
+
54
+ # The date of the transaction.
55
+ attr_accessor :transaction_date
56
+
57
+ # Indicates if the transaction involves tangible goods.
58
+ attr_accessor :tangible
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'processing_instruction' => :'processingInstruction',
64
+ :'authorization_options' => :'authorizationOptions',
65
+ :'action_list' => :'actionList',
66
+ :'high_risk_transaction_flag' => :'highRiskTransactionFlag',
67
+ :'transaction_retry' => :'transactionRetry',
68
+ :'last_one_hr_transaction_count' => :'lastOneHrTransactionCount',
69
+ :'last_one_day_transaction_count' => :'lastOneDayTransactionCount',
70
+ :'last_three_months_txn_count' => :'lastThreeMonthsTxnCount',
71
+ :'total_transaction_count' => :'totalTransactionCount',
72
+ :'pin_verification' => :'pinVerification',
73
+ :'face_id_verification' => :'faceIdVerification',
74
+ :'user_passed_verification' => :'userPassedVerification',
75
+ :'ip_address' => :'ipAddress',
76
+ :'transaction_date' => :'transactionDate',
77
+ :'tangible' => :'tangible'
78
+ }
79
+ end
80
+
81
+ # Attribute mapping from JSON key to ruby-style variable name.
82
+ def self.json_map
83
+ {
84
+ :'processing_instruction' => :'processing_instruction',
85
+ :'authorization_options' => :'authorization_options',
86
+ :'action_list' => :'action_list',
87
+ :'high_risk_transaction_flag' => :'high_risk_transaction_flag',
88
+ :'transaction_retry' => :'transaction_retry',
89
+ :'last_one_hr_transaction_count' => :'last_one_hr_transaction_count',
90
+ :'last_one_day_transaction_count' => :'last_one_day_transaction_count',
91
+ :'last_three_months_txn_count' => :'last_three_months_txn_count',
92
+ :'total_transaction_count' => :'total_transaction_count',
93
+ :'pin_verification' => :'pin_verification',
94
+ :'face_id_verification' => :'face_id_verification',
95
+ :'user_passed_verification' => :'user_passed_verification',
96
+ :'ip_address' => :'ip_address',
97
+ :'transaction_date' => :'transaction_date',
98
+ :'tangible' => :'tangible'
99
+ }
100
+ end
101
+
102
+ # Attribute type mapping.
103
+ def self.swagger_types
104
+ {
105
+ :'processing_instruction' => :'String',
106
+ :'authorization_options' => :'Ptsv2intentsProcessingInformationAuthorizationOptions',
107
+ :'action_list' => :'Array<String>',
108
+ :'high_risk_transaction_flag' => :'String',
109
+ :'transaction_retry' => :'String',
110
+ :'last_one_hr_transaction_count' => :'String',
111
+ :'last_one_day_transaction_count' => :'String',
112
+ :'last_three_months_txn_count' => :'String',
113
+ :'total_transaction_count' => :'String',
114
+ :'pin_verification' => :'String',
115
+ :'face_id_verification' => :'String',
116
+ :'user_passed_verification' => :'String',
117
+ :'ip_address' => :'String',
118
+ :'transaction_date' => :'String',
119
+ :'tangible' => :'String'
120
+ }
121
+ end
122
+
123
+ # Initializes the object
124
+ # @param [Hash] attributes Model attributes in the form of hash
125
+ def initialize(attributes = {})
126
+ return unless attributes.is_a?(Hash)
127
+
128
+ # convert string to symbol for hash key
129
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
130
+
131
+ if attributes.has_key?(:'processingInstruction')
132
+ self.processing_instruction = attributes[:'processingInstruction']
133
+ end
134
+
135
+ if attributes.has_key?(:'authorizationOptions')
136
+ self.authorization_options = attributes[:'authorizationOptions']
137
+ end
138
+
139
+ if attributes.has_key?(:'actionList')
140
+ if (value = attributes[:'actionList']).is_a?(Array)
141
+ self.action_list = value
142
+ end
143
+ end
144
+
145
+ if attributes.has_key?(:'highRiskTransactionFlag')
146
+ self.high_risk_transaction_flag = attributes[:'highRiskTransactionFlag']
147
+ end
148
+
149
+ if attributes.has_key?(:'transactionRetry')
150
+ self.transaction_retry = attributes[:'transactionRetry']
151
+ end
152
+
153
+ if attributes.has_key?(:'lastOneHrTransactionCount')
154
+ self.last_one_hr_transaction_count = attributes[:'lastOneHrTransactionCount']
155
+ end
156
+
157
+ if attributes.has_key?(:'lastOneDayTransactionCount')
158
+ self.last_one_day_transaction_count = attributes[:'lastOneDayTransactionCount']
159
+ end
160
+
161
+ if attributes.has_key?(:'lastThreeMonthsTxnCount')
162
+ self.last_three_months_txn_count = attributes[:'lastThreeMonthsTxnCount']
163
+ end
164
+
165
+ if attributes.has_key?(:'totalTransactionCount')
166
+ self.total_transaction_count = attributes[:'totalTransactionCount']
167
+ end
168
+
169
+ if attributes.has_key?(:'pinVerification')
170
+ self.pin_verification = attributes[:'pinVerification']
171
+ end
172
+
173
+ if attributes.has_key?(:'faceIdVerification')
174
+ self.face_id_verification = attributes[:'faceIdVerification']
175
+ end
176
+
177
+ if attributes.has_key?(:'userPassedVerification')
178
+ self.user_passed_verification = attributes[:'userPassedVerification']
179
+ end
180
+
181
+ if attributes.has_key?(:'ipAddress')
182
+ self.ip_address = attributes[:'ipAddress']
183
+ end
184
+
185
+ if attributes.has_key?(:'transactionDate')
186
+ self.transaction_date = attributes[:'transactionDate']
187
+ end
188
+
189
+ if attributes.has_key?(:'tangible')
190
+ self.tangible = attributes[:'tangible']
191
+ end
192
+ end
193
+
194
+ # Show invalid properties with the reasons. Usually used together with valid?
195
+ # @return Array for valid properties with the reasons
196
+ def list_invalid_properties
197
+ invalid_properties = Array.new
198
+ invalid_properties
199
+ end
200
+
201
+ # Check to see if the all the properties in the model are valid
202
+ # @return true if the model is valid
203
+ def valid?
204
+ true
205
+ end
206
+
207
+ # Custom attribute writer method with validation
208
+ # @param [Object] processing_instruction Value to be assigned
209
+ def processing_instruction=(processing_instruction)
210
+ @processing_instruction = processing_instruction
211
+ end
212
+
213
+ # Checks equality by comparing each attribute.
214
+ # @param [Object] Object to be compared
215
+ def ==(o)
216
+ return true if self.equal?(o)
217
+ self.class == o.class &&
218
+ processing_instruction == o.processing_instruction &&
219
+ authorization_options == o.authorization_options &&
220
+ action_list == o.action_list &&
221
+ high_risk_transaction_flag == o.high_risk_transaction_flag &&
222
+ transaction_retry == o.transaction_retry &&
223
+ last_one_hr_transaction_count == o.last_one_hr_transaction_count &&
224
+ last_one_day_transaction_count == o.last_one_day_transaction_count &&
225
+ last_three_months_txn_count == o.last_three_months_txn_count &&
226
+ total_transaction_count == o.total_transaction_count &&
227
+ pin_verification == o.pin_verification &&
228
+ face_id_verification == o.face_id_verification &&
229
+ user_passed_verification == o.user_passed_verification &&
230
+ ip_address == o.ip_address &&
231
+ transaction_date == o.transaction_date &&
232
+ tangible == o.tangible
233
+ end
234
+
235
+ # @see the `==` method
236
+ # @param [Object] Object to be compared
237
+ def eql?(o)
238
+ self == o
239
+ end
240
+
241
+ # Calculates hash code according to all attributes.
242
+ # @return [Fixnum] Hash code
243
+ def hash
244
+ [processing_instruction, authorization_options, action_list, high_risk_transaction_flag, transaction_retry, last_one_hr_transaction_count, last_one_day_transaction_count, last_three_months_txn_count, total_transaction_count, pin_verification, face_id_verification, user_passed_verification, ip_address, transaction_date, tangible].hash
245
+ end
246
+
247
+ # Builds the object from hash
248
+ # @param [Hash] attributes Model attributes in the form of hash
249
+ # @return [Object] Returns the model itself
250
+ def build_from_hash(attributes)
251
+ return nil unless attributes.is_a?(Hash)
252
+ self.class.swagger_types.each_pair do |key, type|
253
+ if type =~ /\AArray<(.*)>/i
254
+ # check to ensure the input is an array given that the the attribute
255
+ # is documented as an array but the input is not
256
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
257
+ self.send("#{self.class.json_map[key]}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
258
+ end
259
+ elsif !attributes[self.class.attribute_map[key]].nil?
260
+ self.send("#{self.class.json_map[key]}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
261
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
262
+ end
263
+
264
+ self
265
+ end
266
+
267
+ # Deserializes the data based on type
268
+ # @param string type Data type
269
+ # @param string value Value to be deserialized
270
+ # @return [Object] Deserialized data
271
+ def _deserialize(type, value)
272
+ case type.to_sym
273
+ when :DateTime
274
+ DateTime.parse(value)
275
+ when :Date
276
+ Date.parse(value)
277
+ when :String
278
+ value.to_s
279
+ when :Integer
280
+ value.to_i
281
+ when :Float
282
+ value.to_f
283
+ when :BOOLEAN
284
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
285
+ true
286
+ else
287
+ false
288
+ end
289
+ when :Object
290
+ # generic object (usually a Hash), return directly
291
+ value
292
+ when /\AArray<(?<inner_type>.+)>\z/
293
+ inner_type = Regexp.last_match[:inner_type]
294
+ value.map { |v| _deserialize(inner_type, v) }
295
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
296
+ k_type = Regexp.last_match[:k_type]
297
+ v_type = Regexp.last_match[:v_type]
298
+ {}.tap do |hash|
299
+ value.each do |k, v|
300
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
301
+ end
302
+ end
303
+ else # model
304
+ temp_model = CyberSource.const_get(type).new
305
+ temp_model.build_from_hash(value)
306
+ end
307
+ end
308
+
309
+ # Returns the string representation of the object
310
+ # @return [String] String presentation of the object
311
+ def to_s
312
+ to_hash.to_s
313
+ end
314
+
315
+ # to_body is an alias to to_hash (backward compatibility)
316
+ # @return [Hash] Returns the object in the form of hash
317
+ def to_body
318
+ to_hash
319
+ end
320
+
321
+ # Returns the object in the form of hash
322
+ # @return [Hash] Returns the object in the form of hash
323
+ def to_hash
324
+ hash = {}
325
+ self.class.attribute_map.each_pair do |attr, param|
326
+ value = self.send(attr)
327
+ next if value.nil?
328
+ hash[param] = _to_hash(value)
329
+ end
330
+ hash
331
+ end
332
+
333
+ # Outputs non-array value in the form of hash
334
+ # For object, use to_hash. Otherwise, just return the value
335
+ # @param [Object] value Any valid value
336
+ # @return [Hash] Returns the value in the form of hash
337
+ def _to_hash(value)
338
+ if value.is_a?(Array)
339
+ value.compact.map { |v| _to_hash(v) }
340
+ elsif value.is_a?(Hash)
341
+ {}.tap do |hash|
342
+ value.each { |k, v| hash[k] = _to_hash(v) }
343
+ end
344
+ elsif value.respond_to? :to_hash
345
+ value.to_hash
346
+ else
347
+ value
348
+ end
349
+ end
350
+ end
351
+ end