first_data_gateway 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (481) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +79 -0
  3. data/README.md +69 -39
  4. data/docs/AVSResponse.md +2 -2
  5. data/docs/AccessTokenResponse.md +2 -2
  6. data/docs/AccountUpdaterResponse.md +12 -0
  7. data/docs/AdditionalAmountRate.md +2 -2
  8. data/docs/AdditionalDetails.md +10 -0
  9. data/docs/AdditionalTransactionDetails.md +3 -3
  10. data/docs/Address.md +7 -7
  11. data/docs/Airline.md +12 -12
  12. data/docs/AirlineAncillaryServiceCategory.md +1 -1
  13. data/docs/AirlineTravelRoute.md +4 -4
  14. data/docs/AliPay.md +2 -2
  15. data/docs/{SecondaryTransactionAdditionalDetails.md → AliPayPaymentMethod.md} +2 -2
  16. data/docs/AliPaySaleTransaction.md +14 -0
  17. data/docs/Amount.md +2 -2
  18. data/docs/AmountComponents.md +6 -7
  19. data/docs/Authentication.md +8 -0
  20. data/docs/AuthenticationApi.md +12 -12
  21. data/docs/AuthenticationRedirect.md +10 -0
  22. data/docs/AuthenticationRedirectParams.md +10 -0
  23. data/docs/AuthenticationVerificationRequest.md +11 -0
  24. data/docs/BasicResponse.md +1 -1
  25. data/docs/Billing.md +3 -5
  26. data/docs/BillingAddress.md +4 -4
  27. data/docs/BillingAddressPhone.md +1 -1
  28. data/docs/CarRental.md +6 -6
  29. data/docs/CarRentalExtraCharges.md +1 -1
  30. data/docs/Card.md +6 -6
  31. data/docs/CardFunction.md +7 -0
  32. data/docs/CardInfo.md +2 -2
  33. data/docs/CardInfoLookupApi.md +14 -14
  34. data/docs/CardInfoLookupResponse.md +1 -1
  35. data/docs/CardVerificationApi.md +12 -12
  36. data/docs/CardVerificationRequest.md +1 -0
  37. data/docs/ChinaDomesticPaymentMethod.md +9 -0
  38. data/docs/ChinaPnRSaleTransaction.md +14 -0
  39. data/docs/ClientLocale.md +2 -2
  40. data/docs/Contact.md +4 -4
  41. data/docs/CreatePaymentToken.md +10 -0
  42. data/docs/CurrencyConversion.md +9 -0
  43. data/docs/CurrencyConversionApi.md +15 -15
  44. data/docs/Customer.md +6 -6
  45. data/docs/CustomerAddress.md +3 -3
  46. data/docs/CustomerAddressPhone.md +1 -1
  47. data/docs/DCCExchangeRateRequest.md +11 -0
  48. data/docs/Dcc.md +2 -1
  49. data/docs/Device.md +2 -2
  50. data/docs/DeviceNetworks.md +1 -1
  51. data/docs/Document.md +2 -2
  52. data/docs/DynamicPricing.md +11 -0
  53. data/docs/DynamicPricingExchangeRateRequest.md +11 -0
  54. data/docs/ErrorResponse.md +1 -1
  55. data/docs/ExchangeRateRequest.md +2 -4
  56. data/docs/ExchangeRateResponse.md +11 -11
  57. data/docs/Expiration.md +2 -2
  58. data/docs/FraudDetectApi.md +12 -12
  59. data/docs/FraudOrderItems.md +1 -1
  60. data/docs/FraudOrderShipToAddress.md +6 -6
  61. data/docs/Frequency.md +2 -2
  62. data/docs/InstallmentOptions.md +5 -3
  63. data/docs/Lodging.md +5 -5
  64. data/docs/MerchantLocationMerchantAddress.md +6 -6
  65. data/docs/Order.md +5 -0
  66. data/docs/OrderApi.md +36 -102
  67. data/docs/OrderErrorResponse.md +4 -5
  68. data/docs/OrderResponse.md +4 -5
  69. data/docs/PayPal.md +1 -1
  70. data/docs/PayPalPaymentMethod.md +8 -0
  71. data/docs/PaymentApi.md +67 -193
  72. data/docs/PaymentCard.md +8 -11
  73. data/docs/PaymentCardCreditTransaction.md +15 -0
  74. data/docs/PaymentCardForcedTicketTransaction.md +15 -0
  75. data/docs/PaymentCardPayerAuthTransaction.md +15 -0
  76. data/docs/PaymentCardPaymentMethod.md +9 -0
  77. data/docs/PaymentCardPaymentTokenizationRequest.md +13 -0
  78. data/docs/PaymentCardPreAuthTransaction.md +18 -0
  79. data/docs/PaymentCardSaleTransaction.md +18 -0
  80. data/docs/PaymentFacilitator.md +4 -4
  81. data/docs/PaymentMethod.md +0 -7
  82. data/docs/PaymentMethodDetails.md +9 -0
  83. data/docs/PaymentMethodPaymentSchedulesRequest.md +24 -0
  84. data/docs/PaymentMethodType.md +7 -0
  85. data/docs/PaymentPayMethod.md +1 -1
  86. data/docs/PaymentSchedulesApi.md +58 -58
  87. data/docs/PaymentSchedulesErrorResponse.md +1 -1
  88. data/docs/PaymentSchedulesRequest.md +5 -6
  89. data/docs/PaymentSchedulesResponse.md +1 -1
  90. data/docs/PaymentTokenApi.md +23 -23
  91. data/docs/PaymentTokenCreditTransaction.md +15 -0
  92. data/docs/PaymentTokenDetails.md +14 -0
  93. data/docs/PaymentTokenPaymentMethod.md +9 -0
  94. data/docs/PaymentTokenPreAuthTransaction.md +17 -0
  95. data/docs/PaymentTokenSaleTransaction.md +17 -0
  96. data/docs/PaymentTokenizationErrorResponse.md +8 -8
  97. data/docs/PaymentTokenizationRequest.md +4 -3
  98. data/docs/PaymentTokenizationResponse.md +8 -8
  99. data/docs/PaymentURLApi.md +12 -12
  100. data/docs/PaymentUrlErrorResponse.md +3 -3
  101. data/docs/PaymentUrlRequest.md +3 -3
  102. data/docs/PaymentUrlResponse.md +3 -3
  103. data/docs/PaymentVerification3ds.md +3 -3
  104. data/docs/PaymentVerificationAvs.md +3 -3
  105. data/docs/PaymentVerificationCvv.md +3 -3
  106. data/docs/PaypalCreditTransaction.md +14 -0
  107. data/docs/PostAuthTransaction.md +14 -0
  108. data/docs/PrimaryTransaction.md +3 -12
  109. data/docs/ProcessorData.md +8 -6
  110. data/docs/PurchaseCardsLevel2.md +3 -3
  111. data/docs/PurchaseCardsLevel3.md +1 -1
  112. data/docs/PurchaseCardsLevel3LineItems.md +8 -8
  113. data/docs/RecurringPaymentDetails.md +2 -2
  114. data/docs/RecurringPaymentDetailsResponse.md +4 -5
  115. data/docs/ReferencedOrderPaymentSchedulesRequest.md +24 -0
  116. data/docs/ReferencedOrderPaymentTokenizationRequest.md +13 -0
  117. data/docs/ResponseAmountComponents.md +14 -0
  118. data/docs/ReturnTransaction.md +13 -0
  119. data/docs/ScoreOnlyRequest.md +1 -1
  120. data/docs/ScoreOnlyResponse.md +3 -3
  121. data/docs/ScoreOnlyResponseFraudScore.md +1 -1
  122. data/docs/ScoreOnlyResponseFraudScoreExplanations.md +3 -3
  123. data/docs/SecondaryTransaction.md +3 -5
  124. data/docs/Secure3dAuthenticationRequest.md +8 -0
  125. data/docs/Secure3dAuthenticationResult.md +12 -0
  126. data/docs/Secure3dAuthenticationVerificationRequest.md +13 -0
  127. data/docs/Secure3dResponse.md +1 -1
  128. data/docs/Sepa.md +4 -4
  129. data/docs/SepaMandate.md +2 -2
  130. data/docs/SepaPaymentMethod.md +8 -0
  131. data/docs/SepaSaleTransaction.md +14 -0
  132. data/docs/Shipping.md +1 -1
  133. data/docs/SoftDescriptor.md +2 -2
  134. data/docs/SplitShipment.md +1 -1
  135. data/docs/StoredCredential.md +4 -4
  136. data/docs/SubMerchantData.md +4 -4
  137. data/docs/SubMerchantSplit.md +9 -0
  138. data/docs/Transaction.md +4 -4
  139. data/docs/TransactionErrorResponse.md +11 -10
  140. data/docs/TransactionResponse.md +11 -10
  141. data/docs/UnionPayAuthenticationRequest.md +9 -0
  142. data/docs/UnionPayAuthenticationVerificationRequest.md +12 -0
  143. data/docs/UsePaymentToken.md +10 -0
  144. data/docs/VoidTransaction.md +10 -0
  145. data/first_data_gateway.gemspec +3 -2
  146. data/lib/openapi_client/api/authentication_api.rb +18 -18
  147. data/lib/openapi_client/api/card_info_lookup_api.rb +15 -15
  148. data/lib/openapi_client/api/card_verification_api.rb +13 -13
  149. data/lib/openapi_client/api/currency_conversion_api.rb +17 -17
  150. data/lib/openapi_client/api/fraud_detect_api.rb +13 -17
  151. data/lib/openapi_client/api/order_api.rb +45 -153
  152. data/lib/openapi_client/api/payment_api.rb +88 -287
  153. data/lib/openapi_client/api/payment_schedules_api.rb +61 -63
  154. data/lib/openapi_client/api/payment_token_api.rb +24 -24
  155. data/lib/openapi_client/api/payment_url_api.rb +13 -13
  156. data/lib/openapi_client/api_client.rb +2 -2
  157. data/lib/openapi_client/api_error.rb +2 -2
  158. data/lib/openapi_client/configuration.rb +4 -4
  159. data/lib/openapi_client/models/access_token_response.rb +5 -5
  160. data/lib/openapi_client/models/account_updater_response.rb +225 -0
  161. data/lib/openapi_client/models/additional_amount_rate.rb +15 -4
  162. data/lib/openapi_client/models/{primary_transaction_additional_details.rb → additional_details.rb} +11 -113
  163. data/lib/openapi_client/models/additional_transaction_details.rb +6 -6
  164. data/lib/openapi_client/models/address.rb +9 -9
  165. data/lib/openapi_client/models/airline.rb +15 -15
  166. data/lib/openapi_client/models/airline_ancillary_service_category.rb +7 -2
  167. data/lib/openapi_client/models/airline_travel_route.rb +7 -6
  168. data/lib/openapi_client/models/ali_pay.rb +4 -4
  169. data/lib/openapi_client/models/{referenced_order.rb → ali_pay_payment_method.rb} +16 -20
  170. data/lib/openapi_client/models/ali_pay_sale_transaction.rb +286 -0
  171. data/lib/openapi_client/models/amount.rb +5 -5
  172. data/lib/openapi_client/models/amount_components.rb +13 -23
  173. data/lib/openapi_client/models/authentication.rb +190 -0
  174. data/lib/openapi_client/models/{authentication_request.rb → authentication_redirect.rb} +24 -20
  175. data/lib/openapi_client/models/authentication_redirect_params.rb +205 -0
  176. data/lib/openapi_client/models/authentication_verification_request.rb +234 -0
  177. data/lib/openapi_client/models/avs_response.rb +4 -2
  178. data/lib/openapi_client/models/basic_response.rb +2 -7
  179. data/lib/openapi_client/models/billing.rb +7 -76
  180. data/lib/openapi_client/models/billing_address.rb +7 -7
  181. data/lib/openapi_client/models/billing_address_phone.rb +4 -4
  182. data/lib/openapi_client/models/car_rental.rb +9 -9
  183. data/lib/openapi_client/models/car_rental_extra_charges.rb +3 -3
  184. data/lib/openapi_client/models/card.rb +9 -8
  185. data/lib/openapi_client/models/card_function.rb +33 -0
  186. data/lib/openapi_client/models/card_info.rb +4 -17
  187. data/lib/openapi_client/models/card_info_lookup_request.rb +3 -3
  188. data/lib/openapi_client/models/card_info_lookup_response.rb +2 -7
  189. data/lib/openapi_client/models/card_verification_request.rb +32 -7
  190. data/lib/openapi_client/models/china_domestic.rb +2 -2
  191. data/lib/openapi_client/models/{authentication_response_verification.rb → china_domestic_payment_method.rb} +33 -48
  192. data/lib/openapi_client/models/china_pn_r_sale_transaction.rb +286 -0
  193. data/lib/openapi_client/models/client_locale.rb +5 -5
  194. data/lib/openapi_client/models/contact.rb +7 -6
  195. data/lib/openapi_client/models/create_payment_token.rb +209 -0
  196. data/lib/openapi_client/models/{authentication_response_verification_request.rb → currency_conversion.rb} +29 -35
  197. data/lib/openapi_client/models/customer.rb +9 -9
  198. data/lib/openapi_client/models/customer_address.rb +6 -6
  199. data/lib/openapi_client/models/customer_address_phone.rb +4 -4
  200. data/lib/openapi_client/models/dcc.rb +24 -4
  201. data/lib/openapi_client/models/dcc_exchange_rate_request.rb +273 -0
  202. data/lib/openapi_client/models/device.rb +4 -3
  203. data/lib/openapi_client/models/device_networks.rb +4 -3
  204. data/lib/openapi_client/models/document.rb +4 -4
  205. data/lib/openapi_client/models/dynamic_pricing.rb +235 -0
  206. data/lib/openapi_client/models/dynamic_pricing_exchange_rate_request.rb +273 -0
  207. data/lib/openapi_client/models/error.rb +2 -2
  208. data/lib/openapi_client/models/error_details.rb +2 -2
  209. data/lib/openapi_client/models/error_response.rb +2 -7
  210. data/lib/openapi_client/models/exchange_rate_request.rb +26 -103
  211. data/lib/openapi_client/models/exchange_rate_response.rb +20 -25
  212. data/lib/openapi_client/models/expiration.rb +5 -5
  213. data/lib/openapi_client/models/fraud_order.rb +2 -2
  214. data/lib/openapi_client/models/fraud_order_items.rb +4 -2
  215. data/lib/openapi_client/models/fraud_order_ship_to_address.rb +8 -8
  216. data/lib/openapi_client/models/frequency.rb +5 -5
  217. data/lib/openapi_client/models/industry_specific_extensions.rb +3 -3
  218. data/lib/openapi_client/models/installment_options.rb +63 -9
  219. data/lib/openapi_client/models/lodging.rb +8 -8
  220. data/lib/openapi_client/models/lodging_extra_charges.rb +2 -2
  221. data/lib/openapi_client/models/loyalty.rb +2 -2
  222. data/lib/openapi_client/models/merchant.rb +2 -2
  223. data/lib/openapi_client/models/merchant_location.rb +2 -2
  224. data/lib/openapi_client/models/merchant_location_merchant_address.rb +9 -9
  225. data/lib/openapi_client/models/order.rb +52 -7
  226. data/lib/openapi_client/models/order_error_response.rb +6 -21
  227. data/lib/openapi_client/models/order_response.rb +7 -22
  228. data/lib/openapi_client/models/pay_pal.rb +3 -3
  229. data/lib/openapi_client/models/pay_pal_payment_method.rb +189 -0
  230. data/lib/openapi_client/models/payment.rb +2 -2
  231. data/lib/openapi_client/models/payment_card.rb +38 -58
  232. data/lib/openapi_client/models/payment_card_credit_transaction.rb +295 -0
  233. data/lib/openapi_client/models/payment_card_forced_ticket_transaction.rb +320 -0
  234. data/lib/openapi_client/models/payment_card_payer_auth_transaction.rb +295 -0
  235. data/lib/openapi_client/models/payment_card_payment_method.rb +198 -0
  236. data/lib/openapi_client/models/payment_card_payment_tokenization_request.rb +264 -0
  237. data/lib/openapi_client/models/payment_card_pre_auth_transaction.rb +325 -0
  238. data/lib/openapi_client/models/payment_card_sale_transaction.rb +325 -0
  239. data/lib/openapi_client/models/payment_facilitator.rb +7 -7
  240. data/lib/openapi_client/models/payment_issuer_response.rb +2 -2
  241. data/lib/openapi_client/models/payment_method.rb +5 -108
  242. data/lib/openapi_client/models/{basket_item.rb → payment_method_details.rb} +17 -38
  243. data/lib/openapi_client/models/payment_method_payment_schedules_request.rb +426 -0
  244. data/lib/openapi_client/models/payment_method_type.rb +47 -0
  245. data/lib/openapi_client/models/payment_pay_method.rb +4 -4
  246. data/lib/openapi_client/models/payment_schedules_error_response.rb +2 -7
  247. data/lib/openapi_client/models/payment_schedules_request.rb +41 -30
  248. data/lib/openapi_client/models/payment_schedules_response.rb +2 -7
  249. data/lib/openapi_client/models/payment_token_credit_transaction.rb +295 -0
  250. data/lib/openapi_client/models/{payment_tokenization.rb → payment_token_details.rb} +18 -96
  251. data/lib/openapi_client/models/payment_token_payment_method.rb +198 -0
  252. data/lib/openapi_client/models/payment_token_pre_auth_transaction.rb +316 -0
  253. data/lib/openapi_client/models/payment_token_sale_transaction.rb +316 -0
  254. data/lib/openapi_client/models/payment_tokenization_error_response.rb +10 -15
  255. data/lib/openapi_client/models/payment_tokenization_request.rb +60 -61
  256. data/lib/openapi_client/models/payment_tokenization_response.rb +10 -15
  257. data/lib/openapi_client/models/payment_url_error_response.rb +4 -9
  258. data/lib/openapi_client/models/payment_url_request.rb +11 -16
  259. data/lib/openapi_client/models/payment_url_response.rb +4 -9
  260. data/lib/openapi_client/models/payment_verification3ds.rb +5 -5
  261. data/lib/openapi_client/models/payment_verification_avs.rb +5 -5
  262. data/lib/openapi_client/models/payment_verification_cvv.rb +5 -5
  263. data/lib/openapi_client/models/paypal_credit_transaction.rb +286 -0
  264. data/lib/openapi_client/models/post_auth_transaction.rb +266 -0
  265. data/lib/openapi_client/models/primary_transaction.rb +30 -118
  266. data/lib/openapi_client/models/processor_data.rb +48 -7
  267. data/lib/openapi_client/models/purchase_cards.rb +3 -2
  268. data/lib/openapi_client/models/purchase_cards_level2.rb +6 -5
  269. data/lib/openapi_client/models/purchase_cards_level3.rb +9 -3
  270. data/lib/openapi_client/models/purchase_cards_level3_line_items.rb +16 -16
  271. data/lib/openapi_client/models/recurring_payment_details.rb +15 -15
  272. data/lib/openapi_client/models/recurring_payment_details_response.rb +6 -21
  273. data/lib/openapi_client/models/referenced_order_payment_schedules_request.rb +427 -0
  274. data/lib/openapi_client/models/referenced_order_payment_tokenization_request.rb +265 -0
  275. data/lib/openapi_client/models/response_amount_components.rb +245 -0
  276. data/lib/openapi_client/models/response_type.rb +2 -2
  277. data/lib/openapi_client/models/return_transaction.rb +257 -0
  278. data/lib/openapi_client/models/score_only_request.rb +4 -4
  279. data/lib/openapi_client/models/score_only_response.rb +6 -5
  280. data/lib/openapi_client/models/score_only_response_fraud_score.rb +4 -3
  281. data/lib/openapi_client/models/score_only_response_fraud_score_explanations.rb +5 -2
  282. data/lib/openapi_client/models/secondary_transaction.rb +45 -40
  283. data/lib/openapi_client/models/secure3d_authentication_request.rb +190 -0
  284. data/lib/openapi_client/models/{payment_card_authentication_result.rb → secure3d_authentication_result.rb} +34 -41
  285. data/lib/openapi_client/models/secure3d_authentication_verification_request.rb +264 -0
  286. data/lib/openapi_client/models/secure3d_response.rb +4 -3
  287. data/lib/openapi_client/models/sepa.rb +6 -6
  288. data/lib/openapi_client/models/sepa_mandate.rb +5 -5
  289. data/lib/openapi_client/models/{secondary_transaction_additional_details.rb → sepa_payment_method.rb} +16 -10
  290. data/lib/openapi_client/models/sepa_sale_transaction.rb +286 -0
  291. data/lib/openapi_client/models/shipping.rb +4 -3
  292. data/lib/openapi_client/models/soft_descriptor.rb +15 -15
  293. data/lib/openapi_client/models/split_shipment.rb +4 -4
  294. data/lib/openapi_client/models/stored_credential.rb +7 -7
  295. data/lib/openapi_client/models/sub_merchant_data.rb +7 -7
  296. data/lib/openapi_client/models/sub_merchant_split.rb +233 -0
  297. data/lib/openapi_client/models/transaction.rb +18 -18
  298. data/lib/openapi_client/models/transaction_error_response.rb +28 -24
  299. data/lib/openapi_client/models/transaction_origin.rb +2 -2
  300. data/lib/openapi_client/models/transaction_response.rb +32 -28
  301. data/lib/openapi_client/models/transaction_type.rb +2 -2
  302. data/lib/openapi_client/models/union_pay_authentication_request.rb +224 -0
  303. data/lib/openapi_client/models/union_pay_authentication_verification_request.rb +249 -0
  304. data/lib/openapi_client/models/use_payment_token.rb +233 -0
  305. data/lib/openapi_client/models/{card_verifications_transaction.rb → void_transaction.rb} +28 -17
  306. data/lib/openapi_client/version.rb +3 -3
  307. data/lib/openapi_client.rb +50 -12
  308. data/lib/simple/gateway.rb +8 -59
  309. data/lib/simple_client.rb +4 -4
  310. data/spec/api/authentication_api_spec.rb +7 -7
  311. data/spec/api/card_info_lookup_api_spec.rb +8 -8
  312. data/spec/api/card_verification_api_spec.rb +7 -7
  313. data/spec/api/currency_conversion_api_spec.rb +9 -9
  314. data/spec/api/fraud_detect_api_spec.rb +7 -7
  315. data/spec/api/order_api_spec.rb +19 -40
  316. data/spec/api/payment_api_spec.rb +33 -72
  317. data/spec/api/payment_schedules_api_spec.rb +29 -29
  318. data/spec/api/payment_token_api_spec.rb +12 -12
  319. data/spec/api/payment_url_api_spec.rb +7 -7
  320. data/spec/api_client_spec.rb +2 -2
  321. data/spec/configuration_spec.rb +5 -5
  322. data/spec/models/access_token_response_spec.rb +2 -2
  323. data/spec/models/account_updater_response_spec.rb +65 -0
  324. data/spec/models/additional_amount_rate_spec.rb +2 -2
  325. data/spec/models/additional_details_spec.rb +53 -0
  326. data/spec/models/additional_transaction_details_spec.rb +2 -2
  327. data/spec/models/address_spec.rb +2 -2
  328. data/spec/models/airline_ancillary_service_category_spec.rb +2 -2
  329. data/spec/models/airline_spec.rb +2 -2
  330. data/spec/models/airline_travel_route_spec.rb +2 -2
  331. data/spec/models/ali_pay_payment_method_spec.rb +41 -0
  332. data/spec/models/ali_pay_sale_transaction_spec.rb +77 -0
  333. data/spec/models/ali_pay_spec.rb +2 -2
  334. data/spec/models/amount_components_spec.rb +2 -8
  335. data/spec/models/amount_spec.rb +2 -2
  336. data/spec/models/authentication_redirect_params_spec.rb +53 -0
  337. data/spec/models/{authentication_response_verification_spec.rb → authentication_redirect_spec.rb} +11 -17
  338. data/spec/models/authentication_spec.rb +41 -0
  339. data/spec/models/{authentication_response_verification_request_spec.rb → authentication_verification_request_spec.rb} +11 -11
  340. data/spec/models/avs_response_spec.rb +2 -2
  341. data/spec/models/basic_response_spec.rb +2 -2
  342. data/spec/models/billing_address_phone_spec.rb +2 -2
  343. data/spec/models/billing_address_spec.rb +2 -2
  344. data/spec/models/billing_spec.rb +2 -18
  345. data/spec/models/car_rental_extra_charges_spec.rb +2 -2
  346. data/spec/models/car_rental_spec.rb +2 -2
  347. data/spec/models/card_function_spec.rb +35 -0
  348. data/spec/models/card_info_lookup_request_spec.rb +2 -2
  349. data/spec/models/card_info_lookup_response_spec.rb +2 -2
  350. data/spec/models/card_info_spec.rb +2 -6
  351. data/spec/models/card_spec.rb +2 -2
  352. data/spec/models/card_verification_request_spec.rb +8 -2
  353. data/spec/models/china_domestic_payment_method_spec.rb +51 -0
  354. data/spec/models/china_domestic_spec.rb +2 -2
  355. data/spec/models/china_pn_r_sale_transaction_spec.rb +77 -0
  356. data/spec/models/client_locale_spec.rb +2 -2
  357. data/spec/models/contact_spec.rb +2 -2
  358. data/spec/models/create_payment_token_spec.rb +53 -0
  359. data/spec/models/currency_conversion_spec.rb +47 -0
  360. data/spec/models/customer_address_phone_spec.rb +2 -2
  361. data/spec/models/customer_address_spec.rb +2 -2
  362. data/spec/models/customer_spec.rb +2 -2
  363. data/spec/models/dcc_exchange_rate_request_spec.rb +59 -0
  364. data/spec/models/dcc_spec.rb +8 -2
  365. data/spec/models/device_networks_spec.rb +2 -2
  366. data/spec/models/device_spec.rb +2 -2
  367. data/spec/models/document_spec.rb +2 -2
  368. data/spec/models/dynamic_pricing_exchange_rate_request_spec.rb +59 -0
  369. data/spec/models/{basket_item_spec.rb → dynamic_pricing_spec.rb} +12 -12
  370. data/spec/models/error_details_spec.rb +2 -2
  371. data/spec/models/error_response_spec.rb +2 -2
  372. data/spec/models/error_spec.rb +2 -2
  373. data/spec/models/exchange_rate_request_spec.rb +4 -20
  374. data/spec/models/exchange_rate_response_spec.rb +3 -3
  375. data/spec/models/expiration_spec.rb +2 -2
  376. data/spec/models/fraud_order_items_spec.rb +2 -2
  377. data/spec/models/fraud_order_ship_to_address_spec.rb +2 -2
  378. data/spec/models/fraud_order_spec.rb +2 -2
  379. data/spec/models/frequency_spec.rb +2 -2
  380. data/spec/models/industry_specific_extensions_spec.rb +2 -2
  381. data/spec/models/installment_options_spec.rb +18 -2
  382. data/spec/models/lodging_extra_charges_spec.rb +2 -2
  383. data/spec/models/lodging_spec.rb +2 -2
  384. data/spec/models/loyalty_spec.rb +2 -2
  385. data/spec/models/merchant_location_merchant_address_spec.rb +2 -2
  386. data/spec/models/merchant_location_spec.rb +2 -2
  387. data/spec/models/merchant_spec.rb +2 -2
  388. data/spec/models/order_error_response_spec.rb +2 -8
  389. data/spec/models/order_response_spec.rb +2 -8
  390. data/spec/models/order_spec.rb +32 -2
  391. data/spec/models/pay_pal_payment_method_spec.rb +41 -0
  392. data/spec/models/pay_pal_spec.rb +2 -2
  393. data/spec/models/payment_card_credit_transaction_spec.rb +83 -0
  394. data/spec/models/{primary_transaction_additional_details_spec.rb → payment_card_forced_ticket_transaction_spec.rb} +16 -22
  395. data/spec/models/payment_card_payer_auth_transaction_spec.rb +83 -0
  396. data/spec/models/payment_card_payment_method_spec.rb +47 -0
  397. data/spec/models/payment_card_payment_tokenization_request_spec.rb +71 -0
  398. data/spec/models/payment_card_pre_auth_transaction_spec.rb +101 -0
  399. data/spec/models/payment_card_sale_transaction_spec.rb +101 -0
  400. data/spec/models/payment_card_spec.rb +3 -21
  401. data/spec/models/payment_facilitator_spec.rb +2 -2
  402. data/spec/models/payment_issuer_response_spec.rb +2 -2
  403. data/spec/models/payment_method_details_spec.rb +47 -0
  404. data/spec/models/payment_method_payment_schedules_request_spec.rb +137 -0
  405. data/spec/models/payment_method_spec.rb +2 -48
  406. data/spec/models/payment_method_type_spec.rb +35 -0
  407. data/spec/models/payment_pay_method_spec.rb +2 -2
  408. data/spec/models/payment_schedules_error_response_spec.rb +2 -2
  409. data/spec/models/payment_schedules_request_spec.rb +5 -11
  410. data/spec/models/payment_schedules_response_spec.rb +2 -2
  411. data/spec/models/payment_spec.rb +2 -2
  412. data/spec/models/payment_token_credit_transaction_spec.rb +83 -0
  413. data/spec/models/{payment_tokenization_spec.rb → payment_token_details_spec.rb} +9 -25
  414. data/spec/models/payment_token_payment_method_spec.rb +47 -0
  415. data/spec/models/payment_token_pre_auth_transaction_spec.rb +95 -0
  416. data/spec/models/payment_token_sale_transaction_spec.rb +95 -0
  417. data/spec/models/payment_tokenization_error_response_spec.rb +2 -2
  418. data/spec/models/payment_tokenization_request_spec.rb +12 -10
  419. data/spec/models/payment_tokenization_response_spec.rb +2 -2
  420. data/spec/models/payment_url_error_response_spec.rb +2 -2
  421. data/spec/models/payment_url_request_spec.rb +3 -3
  422. data/spec/models/payment_url_response_spec.rb +2 -2
  423. data/spec/models/payment_verification3ds_spec.rb +2 -2
  424. data/spec/models/payment_verification_avs_spec.rb +2 -2
  425. data/spec/models/payment_verification_cvv_spec.rb +2 -2
  426. data/spec/models/paypal_credit_transaction_spec.rb +77 -0
  427. data/spec/models/post_auth_transaction_spec.rb +77 -0
  428. data/spec/models/primary_transaction_spec.rb +5 -59
  429. data/spec/models/processor_data_spec.rb +14 -2
  430. data/spec/models/purchase_cards_level2_spec.rb +2 -2
  431. data/spec/models/purchase_cards_level3_line_items_spec.rb +3 -3
  432. data/spec/models/purchase_cards_level3_spec.rb +2 -2
  433. data/spec/models/purchase_cards_spec.rb +2 -2
  434. data/spec/models/recurring_payment_details_response_spec.rb +2 -8
  435. data/spec/models/recurring_payment_details_spec.rb +4 -4
  436. data/spec/models/referenced_order_payment_schedules_request_spec.rb +137 -0
  437. data/spec/models/referenced_order_payment_tokenization_request_spec.rb +71 -0
  438. data/spec/models/response_amount_components_spec.rb +77 -0
  439. data/spec/models/response_type_spec.rb +2 -2
  440. data/spec/models/return_transaction_spec.rb +71 -0
  441. data/spec/models/score_only_request_spec.rb +2 -2
  442. data/spec/models/score_only_response_fraud_score_explanations_spec.rb +2 -2
  443. data/spec/models/score_only_response_fraud_score_spec.rb +2 -2
  444. data/spec/models/score_only_response_spec.rb +2 -2
  445. data/spec/models/secondary_transaction_spec.rb +5 -17
  446. data/spec/models/secure3d_authentication_request_spec.rb +41 -0
  447. data/spec/models/{payment_card_authentication_result_spec.rb → secure3d_authentication_result_spec.rb} +11 -15
  448. data/spec/models/secure3d_authentication_verification_request_spec.rb +71 -0
  449. data/spec/models/secure3d_response_spec.rb +2 -2
  450. data/spec/models/sepa_mandate_spec.rb +2 -2
  451. data/spec/models/sepa_payment_method_spec.rb +41 -0
  452. data/spec/models/sepa_sale_transaction_spec.rb +77 -0
  453. data/spec/models/sepa_spec.rb +2 -2
  454. data/spec/models/shipping_spec.rb +2 -2
  455. data/spec/models/soft_descriptor_spec.rb +3 -3
  456. data/spec/models/split_shipment_spec.rb +2 -2
  457. data/spec/models/stored_credential_spec.rb +2 -2
  458. data/spec/models/sub_merchant_data_spec.rb +2 -2
  459. data/spec/models/{card_verifications_transaction_spec.rb → sub_merchant_split_spec.rb} +10 -10
  460. data/spec/models/transaction_error_response_spec.rb +10 -4
  461. data/spec/models/transaction_origin_spec.rb +2 -2
  462. data/spec/models/transaction_response_spec.rb +10 -4
  463. data/spec/models/transaction_spec.rb +4 -4
  464. data/spec/models/transaction_type_spec.rb +2 -2
  465. data/spec/models/{authentication_request_spec.rb → union_pay_authentication_request_spec.rb} +9 -13
  466. data/spec/models/union_pay_authentication_verification_request_spec.rb +65 -0
  467. data/spec/models/use_payment_token_spec.rb +53 -0
  468. data/spec/models/void_transaction_spec.rb +53 -0
  469. data/spec/spec_helper.rb +2 -2
  470. metadata +195 -42
  471. data/docs/AuthenticationRequest.md +0 -9
  472. data/docs/AuthenticationResponseVerification.md +0 -11
  473. data/docs/AuthenticationResponseVerificationRequest.md +0 -11
  474. data/docs/BasketItem.md +0 -11
  475. data/docs/CardVerificationsTransaction.md +0 -9
  476. data/docs/PaymentCardAuthenticationResult.md +0 -12
  477. data/docs/PaymentTokenization.md +0 -16
  478. data/docs/PrimaryTransactionAdditionalDetails.md +0 -16
  479. data/docs/ReferencedOrder.md +0 -9
  480. data/spec/models/referenced_order_spec.rb +0 -47
  481. data/spec/models/secondary_transaction_additional_details_spec.rb +0 -41
@@ -0,0 +1,273 @@
1
+ =begin
2
+ #Payment Gateway API Specification.
3
+
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
+
6
+ OpenAPI spec version: 6.6.0.20190329.001
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # Request to perform a DCC exchange rate inquiry.
17
+ class DCCExchangeRateRequest
18
+ # Object name of the exchange rate request.
19
+ attr_accessor :request_type
20
+
21
+ # The original amount of the merchant currency for calculation.
22
+ attr_accessor :base_amount
23
+
24
+ # An optional outlet ID for clients that support multiple stores in the same app.
25
+ attr_accessor :store_id
26
+
27
+ # A bank identification number (BIN) of the card to be used for DCC.
28
+ attr_accessor :bin
29
+
30
+ # Attribute mapping from ruby-style variable name to JSON key.
31
+ def self.attribute_map
32
+ {
33
+ :'request_type' => :'requestType',
34
+ :'base_amount' => :'baseAmount',
35
+ :'store_id' => :'storeId',
36
+ :'bin' => :'bin'
37
+ }
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.openapi_types
42
+ {
43
+ :'request_type' => :'String',
44
+ :'base_amount' => :'Float',
45
+ :'store_id' => :'String',
46
+ :'bin' => :'String'
47
+ }
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ return unless attributes.is_a?(Hash)
54
+
55
+ # convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
57
+
58
+ if attributes.has_key?(:'requestType')
59
+ self.request_type = attributes[:'requestType']
60
+ end
61
+
62
+ if attributes.has_key?(:'baseAmount')
63
+ self.base_amount = attributes[:'baseAmount']
64
+ end
65
+
66
+ if attributes.has_key?(:'storeId')
67
+ self.store_id = attributes[:'storeId']
68
+ end
69
+
70
+ if attributes.has_key?(:'bin')
71
+ self.bin = attributes[:'bin']
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ invalid_properties = Array.new
79
+ if @request_type.nil?
80
+ invalid_properties.push('invalid value for "request_type", request_type cannot be nil.')
81
+ end
82
+
83
+ if @base_amount.nil?
84
+ invalid_properties.push('invalid value for "base_amount", base_amount cannot be nil.')
85
+ end
86
+
87
+ if !@store_id.nil? && @store_id.to_s.length > 20
88
+ invalid_properties.push('invalid value for "store_id", the character length must be smaller than or equal to 20.')
89
+ end
90
+
91
+ if @bin.nil?
92
+ invalid_properties.push('invalid value for "bin", bin cannot be nil.')
93
+ end
94
+
95
+ if @bin.to_s.length > 6
96
+ invalid_properties.push('invalid value for "bin", the character length must be smaller than or equal to 6.')
97
+ end
98
+
99
+ if @bin !~ Regexp.new(/[0-9]{6}/)
100
+ invalid_properties.push('invalid value for "bin", must conform to the pattern /[0-9]{6}/.')
101
+ end
102
+
103
+ invalid_properties
104
+ end
105
+
106
+ # Check to see if the all the properties in the model are valid
107
+ # @return true if the model is valid
108
+ def valid?
109
+ return false if @request_type.nil?
110
+ return false if @base_amount.nil?
111
+ return false if !@store_id.nil? && @store_id.to_s.length > 20
112
+ return false if @bin.nil?
113
+ return false if @bin.to_s.length > 6
114
+ return false if @bin !~ Regexp.new(/[0-9]{6}/)
115
+ true
116
+ end
117
+
118
+ # Custom attribute writer method with validation
119
+ # @param [Object] store_id Value to be assigned
120
+ def store_id=(store_id)
121
+ if !store_id.nil? && store_id.to_s.length > 20
122
+ fail ArgumentError, 'invalid value for "store_id", the character length must be smaller than or equal to 20.'
123
+ end
124
+
125
+ @store_id = store_id
126
+ end
127
+
128
+ # Custom attribute writer method with validation
129
+ # @param [Object] bin Value to be assigned
130
+ def bin=(bin)
131
+ if bin.nil?
132
+ fail ArgumentError, 'bin cannot be nil'
133
+ end
134
+
135
+ if bin.to_s.length > 6
136
+ fail ArgumentError, 'invalid value for "bin", the character length must be smaller than or equal to 6.'
137
+ end
138
+
139
+ if bin !~ Regexp.new(/[0-9]{6}/)
140
+ fail ArgumentError, 'invalid value for "bin", must conform to the pattern /[0-9]{6}/.'
141
+ end
142
+
143
+ @bin = bin
144
+ end
145
+
146
+ # Checks equality by comparing each attribute.
147
+ # @param [Object] Object to be compared
148
+ def ==(o)
149
+ return true if self.equal?(o)
150
+ self.class == o.class &&
151
+ request_type == o.request_type &&
152
+ base_amount == o.base_amount &&
153
+ store_id == o.store_id &&
154
+ bin == o.bin
155
+ end
156
+
157
+ # @see the `==` method
158
+ # @param [Object] Object to be compared
159
+ def eql?(o)
160
+ self == o
161
+ end
162
+
163
+ # Calculates hash code according to all attributes.
164
+ # @return [Fixnum] Hash code
165
+ def hash
166
+ [request_type, base_amount, store_id, bin].hash
167
+ end
168
+
169
+ # Builds the object from hash
170
+ # @param [Hash] attributes Model attributes in the form of hash
171
+ # @return [Object] Returns the model itself
172
+ def build_from_hash(attributes)
173
+ return nil unless attributes.is_a?(Hash)
174
+ self.class.openapi_types.each_pair do |key, type|
175
+ if type =~ /\AArray<(.*)>/i
176
+ # check to ensure the input is an array given that the the attribute
177
+ # is documented as an array but the input is not
178
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
179
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
180
+ end
181
+ elsif !attributes[self.class.attribute_map[key]].nil?
182
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
183
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
184
+ end
185
+
186
+ self
187
+ end
188
+
189
+ # Deserializes the data based on type
190
+ # @param string type Data type
191
+ # @param string value Value to be deserialized
192
+ # @return [Object] Deserialized data
193
+ def _deserialize(type, value)
194
+ case type.to_sym
195
+ when :DateTime
196
+ DateTime.parse(value)
197
+ when :Date
198
+ Date.parse(value)
199
+ when :String
200
+ value.to_s
201
+ when :Integer
202
+ value.to_i
203
+ when :Float
204
+ value.to_f
205
+ when :BOOLEAN
206
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
207
+ true
208
+ else
209
+ false
210
+ end
211
+ when :Object
212
+ # generic object (usually a Hash), return directly
213
+ value
214
+ when /\AArray<(?<inner_type>.+)>\z/
215
+ inner_type = Regexp.last_match[:inner_type]
216
+ value.map { |v| _deserialize(inner_type, v) }
217
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
218
+ k_type = Regexp.last_match[:k_type]
219
+ v_type = Regexp.last_match[:v_type]
220
+ {}.tap do |hash|
221
+ value.each do |k, v|
222
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
223
+ end
224
+ end
225
+ else # model
226
+ temp_model = OpenapiClient.const_get(type).new
227
+ temp_model.build_from_hash(value)
228
+ end
229
+ end
230
+
231
+ # Returns the string representation of the object
232
+ # @return [String] String presentation of the object
233
+ def to_s
234
+ to_hash.to_s
235
+ end
236
+
237
+ # to_body is an alias to to_hash (backward compatibility)
238
+ # @return [Hash] Returns the object in the form of hash
239
+ def to_body
240
+ to_hash
241
+ end
242
+
243
+ # Returns the object in the form of hash
244
+ # @return [Hash] Returns the object in the form of hash
245
+ def to_hash
246
+ hash = {}
247
+ self.class.attribute_map.each_pair do |attr, param|
248
+ value = self.send(attr)
249
+ next if value.nil?
250
+ hash[param] = _to_hash(value)
251
+ end
252
+ hash
253
+ end
254
+
255
+ # Outputs non-array value in the form of hash
256
+ # For object, use to_hash. Otherwise, just return the value
257
+ # @param [Object] value Any valid value
258
+ # @return [Hash] Returns the value in the form of hash
259
+ def _to_hash(value)
260
+ if value.is_a?(Array)
261
+ value.compact.map { |v| _to_hash(v) }
262
+ elsif value.is_a?(Hash)
263
+ {}.tap do |hash|
264
+ value.each { |k, v| hash[k] = _to_hash(v) }
265
+ end
266
+ elsif value.respond_to? :to_hash
267
+ value.to_hash
268
+ else
269
+ value
270
+ end
271
+ end
272
+ end
273
+ end
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #Payment Gateway API Specification.
3
3
 
4
- #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
5
 
6
- OpenAPI spec version: 6.4.0.20181018.001
6
+ OpenAPI spec version: 6.6.0.20190329.001
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: unset
@@ -21,6 +21,7 @@ module OpenapiClient
21
21
  # The unique ID of the device. Must be unique for the entire system (not just within a specific merchant or industry).
22
22
  attr_accessor :device_id
23
23
 
24
+ # Information about the networks associated with the device.
24
25
  attr_accessor :networks
25
26
 
26
27
  # The GPS decimal latitude, ranging from (-90.0 to 90.0) where positive numbers indicate locations North of the equator.
@@ -29,7 +30,7 @@ module OpenapiClient
29
30
  # The GPS decimal longitude, ranging from (-180.0 to 180.0) where positive numbers indicate locations East of the IERS Reference Meridian.
30
31
  attr_accessor :longitude
31
32
 
32
- # The device's International Mobile Equipment Identity (IMEI) as described in IETFs RFC7254.
33
+ # The device's International Mobile Equipment Identity (IMEI) as described in IETF RFC7254.
33
34
  attr_accessor :imei
34
35
 
35
36
  # The device's model name.
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #Payment Gateway API Specification.
3
3
 
4
- #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
5
 
6
- OpenAPI spec version: 6.4.0.20181018.001
6
+ OpenAPI spec version: 6.6.0.20190329.001
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: unset
@@ -13,6 +13,7 @@ OpenAPI Generator version: unset
13
13
  require 'date'
14
14
 
15
15
  module OpenapiClient
16
+ # Network information.
16
17
  class DeviceNetworks
17
18
  # Defines the type of network associated with the device.
18
19
  attr_accessor :network_type
@@ -35,7 +36,7 @@ module OpenapiClient
35
36
  # The Mobile Subscription Identification Number code (MSIN) as described in the ITUs E.212 specification.
36
37
  attr_accessor :subscription_identification_number
37
38
 
38
- # The Location Area Code (LAC) is a16-bit identifier for a region that is covered by a set of network antennas.
39
+ # The Location Area Code (LAC) is a 16-bit identifier for a region that is covered by a set of network antennas.
39
40
  attr_accessor :location_area_code
40
41
 
41
42
  # The Cell ID (CID) is identifier for a specific Base Transceiver Station (BTS) within a specific Location Area Code (LAC).
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #Payment Gateway API Specification.
3
3
 
4
- #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
5
 
6
- OpenAPI spec version: 6.4.0.20181018.001
6
+ OpenAPI spec version: 6.6.0.20190329.001
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: unset
@@ -15,10 +15,10 @@ require 'date'
15
15
  module OpenapiClient
16
16
  # Document information.
17
17
  class Document
18
- # Document type
18
+ # Document type.
19
19
  attr_accessor :type
20
20
 
21
- # Document number
21
+ # Document number.
22
22
  attr_accessor :number
23
23
 
24
24
  class EnumAttributeValidator
@@ -0,0 +1,235 @@
1
+ =begin
2
+ #Payment Gateway API Specification.
3
+
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
+
6
+ OpenAPI spec version: 6.6.0.20190329.001
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # Request to perform a dynamic pricing exchange rate inquiry.
17
+ class DynamicPricing
18
+ # Type of currency conversion.
19
+ attr_accessor :conversion_type
20
+
21
+ # Inquiry rate id.
22
+ attr_accessor :inquiry_rate_id
23
+
24
+ # The currency code to convert for dynamic pricing in ISO 4217 currency code format.
25
+ attr_accessor :foreign_currency
26
+
27
+ # Foreign amount.
28
+ attr_accessor :foreign_amount
29
+
30
+ # Attribute mapping from ruby-style variable name to JSON key.
31
+ def self.attribute_map
32
+ {
33
+ :'conversion_type' => :'conversionType',
34
+ :'inquiry_rate_id' => :'inquiryRateId',
35
+ :'foreign_currency' => :'foreignCurrency',
36
+ :'foreign_amount' => :'foreignAmount'
37
+ }
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.openapi_types
42
+ {
43
+ :'conversion_type' => :'String',
44
+ :'inquiry_rate_id' => :'String',
45
+ :'foreign_currency' => :'String',
46
+ :'foreign_amount' => :'String'
47
+ }
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ return unless attributes.is_a?(Hash)
54
+
55
+ # convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
57
+
58
+ if attributes.has_key?(:'conversionType')
59
+ self.conversion_type = attributes[:'conversionType']
60
+ end
61
+
62
+ if attributes.has_key?(:'inquiryRateId')
63
+ self.inquiry_rate_id = attributes[:'inquiryRateId']
64
+ end
65
+
66
+ if attributes.has_key?(:'foreignCurrency')
67
+ self.foreign_currency = attributes[:'foreignCurrency']
68
+ end
69
+
70
+ if attributes.has_key?(:'foreignAmount')
71
+ self.foreign_amount = attributes[:'foreignAmount']
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ invalid_properties = Array.new
79
+ if @conversion_type.nil?
80
+ invalid_properties.push('invalid value for "conversion_type", conversion_type cannot be nil.')
81
+ end
82
+
83
+ if @inquiry_rate_id.nil?
84
+ invalid_properties.push('invalid value for "inquiry_rate_id", inquiry_rate_id cannot be nil.')
85
+ end
86
+
87
+ if @foreign_currency.nil?
88
+ invalid_properties.push('invalid value for "foreign_currency", foreign_currency cannot be nil.')
89
+ end
90
+
91
+ if @foreign_amount.nil?
92
+ invalid_properties.push('invalid value for "foreign_amount", foreign_amount cannot be nil.')
93
+ end
94
+
95
+ invalid_properties
96
+ end
97
+
98
+ # Check to see if the all the properties in the model are valid
99
+ # @return true if the model is valid
100
+ def valid?
101
+ return false if @conversion_type.nil?
102
+ return false if @inquiry_rate_id.nil?
103
+ return false if @foreign_currency.nil?
104
+ return false if @foreign_amount.nil?
105
+ true
106
+ end
107
+
108
+ # Checks equality by comparing each attribute.
109
+ # @param [Object] Object to be compared
110
+ def ==(o)
111
+ return true if self.equal?(o)
112
+ self.class == o.class &&
113
+ conversion_type == o.conversion_type &&
114
+ inquiry_rate_id == o.inquiry_rate_id &&
115
+ foreign_currency == o.foreign_currency &&
116
+ foreign_amount == o.foreign_amount
117
+ end
118
+
119
+ # @see the `==` method
120
+ # @param [Object] Object to be compared
121
+ def eql?(o)
122
+ self == o
123
+ end
124
+
125
+ # Calculates hash code according to all attributes.
126
+ # @return [Fixnum] Hash code
127
+ def hash
128
+ [conversion_type, inquiry_rate_id, foreign_currency, foreign_amount].hash
129
+ end
130
+
131
+ # Builds the object from hash
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ # @return [Object] Returns the model itself
134
+ def build_from_hash(attributes)
135
+ return nil unless attributes.is_a?(Hash)
136
+ self.class.openapi_types.each_pair do |key, type|
137
+ if type =~ /\AArray<(.*)>/i
138
+ # check to ensure the input is an array given that the the attribute
139
+ # is documented as an array but the input is not
140
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
141
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
142
+ end
143
+ elsif !attributes[self.class.attribute_map[key]].nil?
144
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
145
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
146
+ end
147
+
148
+ self
149
+ end
150
+
151
+ # Deserializes the data based on type
152
+ # @param string type Data type
153
+ # @param string value Value to be deserialized
154
+ # @return [Object] Deserialized data
155
+ def _deserialize(type, value)
156
+ case type.to_sym
157
+ when :DateTime
158
+ DateTime.parse(value)
159
+ when :Date
160
+ Date.parse(value)
161
+ when :String
162
+ value.to_s
163
+ when :Integer
164
+ value.to_i
165
+ when :Float
166
+ value.to_f
167
+ when :BOOLEAN
168
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
169
+ true
170
+ else
171
+ false
172
+ end
173
+ when :Object
174
+ # generic object (usually a Hash), return directly
175
+ value
176
+ when /\AArray<(?<inner_type>.+)>\z/
177
+ inner_type = Regexp.last_match[:inner_type]
178
+ value.map { |v| _deserialize(inner_type, v) }
179
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
180
+ k_type = Regexp.last_match[:k_type]
181
+ v_type = Regexp.last_match[:v_type]
182
+ {}.tap do |hash|
183
+ value.each do |k, v|
184
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
185
+ end
186
+ end
187
+ else # model
188
+ temp_model = OpenapiClient.const_get(type).new
189
+ temp_model.build_from_hash(value)
190
+ end
191
+ end
192
+
193
+ # Returns the string representation of the object
194
+ # @return [String] String presentation of the object
195
+ def to_s
196
+ to_hash.to_s
197
+ end
198
+
199
+ # to_body is an alias to to_hash (backward compatibility)
200
+ # @return [Hash] Returns the object in the form of hash
201
+ def to_body
202
+ to_hash
203
+ end
204
+
205
+ # Returns the object in the form of hash
206
+ # @return [Hash] Returns the object in the form of hash
207
+ def to_hash
208
+ hash = {}
209
+ self.class.attribute_map.each_pair do |attr, param|
210
+ value = self.send(attr)
211
+ next if value.nil?
212
+ hash[param] = _to_hash(value)
213
+ end
214
+ hash
215
+ end
216
+
217
+ # Outputs non-array value in the form of hash
218
+ # For object, use to_hash. Otherwise, just return the value
219
+ # @param [Object] value Any valid value
220
+ # @return [Hash] Returns the value in the form of hash
221
+ def _to_hash(value)
222
+ if value.is_a?(Array)
223
+ value.compact.map { |v| _to_hash(v) }
224
+ elsif value.is_a?(Hash)
225
+ {}.tap do |hash|
226
+ value.each { |k, v| hash[k] = _to_hash(v) }
227
+ end
228
+ elsif value.respond_to? :to_hash
229
+ value.to_hash
230
+ else
231
+ value
232
+ end
233
+ end
234
+ end
235
+ end