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,286 @@
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 create credit transaction using PayPal.
17
+ class PaypalCreditTransaction
18
+ # Object name of the primary transaction request.
19
+ attr_accessor :request_type
20
+
21
+ # An optional outlet ID for clients that support multiple stores in the same app.
22
+ attr_accessor :store_id
23
+
24
+ # The unique merchant transaction ID from the request header, if supplied.
25
+ attr_accessor :merchant_transaction_id
26
+
27
+ attr_accessor :transaction_amount
28
+
29
+ attr_accessor :transaction_origin
30
+
31
+ attr_accessor :order
32
+
33
+ attr_accessor :payment_method
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'request_type' => :'requestType',
39
+ :'store_id' => :'storeId',
40
+ :'merchant_transaction_id' => :'merchantTransactionId',
41
+ :'transaction_amount' => :'transactionAmount',
42
+ :'transaction_origin' => :'transactionOrigin',
43
+ :'order' => :'order',
44
+ :'payment_method' => :'paymentMethod'
45
+ }
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.openapi_types
50
+ {
51
+ :'request_type' => :'String',
52
+ :'store_id' => :'String',
53
+ :'merchant_transaction_id' => :'String',
54
+ :'transaction_amount' => :'Amount',
55
+ :'transaction_origin' => :'TransactionOrigin',
56
+ :'order' => :'Order',
57
+ :'payment_method' => :'PayPalPaymentMethod'
58
+ }
59
+ end
60
+
61
+ # Initializes the object
62
+ # @param [Hash] attributes Model attributes in the form of hash
63
+ def initialize(attributes = {})
64
+ return unless attributes.is_a?(Hash)
65
+
66
+ # convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
68
+
69
+ if attributes.has_key?(:'requestType')
70
+ self.request_type = attributes[:'requestType']
71
+ end
72
+
73
+ if attributes.has_key?(:'storeId')
74
+ self.store_id = attributes[:'storeId']
75
+ end
76
+
77
+ if attributes.has_key?(:'merchantTransactionId')
78
+ self.merchant_transaction_id = attributes[:'merchantTransactionId']
79
+ end
80
+
81
+ if attributes.has_key?(:'transactionAmount')
82
+ self.transaction_amount = attributes[:'transactionAmount']
83
+ end
84
+
85
+ if attributes.has_key?(:'transactionOrigin')
86
+ self.transaction_origin = attributes[:'transactionOrigin']
87
+ end
88
+
89
+ if attributes.has_key?(:'order')
90
+ self.order = attributes[:'order']
91
+ end
92
+
93
+ if attributes.has_key?(:'paymentMethod')
94
+ self.payment_method = attributes[:'paymentMethod']
95
+ end
96
+ end
97
+
98
+ # Show invalid properties with the reasons. Usually used together with valid?
99
+ # @return Array for valid properties with the reasons
100
+ def list_invalid_properties
101
+ invalid_properties = Array.new
102
+ if @request_type.nil?
103
+ invalid_properties.push('invalid value for "request_type", request_type cannot be nil.')
104
+ end
105
+
106
+ if !@store_id.nil? && @store_id.to_s.length > 20
107
+ invalid_properties.push('invalid value for "store_id", the character length must be smaller than or equal to 20.')
108
+ end
109
+
110
+ if !@merchant_transaction_id.nil? && @merchant_transaction_id.to_s.length > 40
111
+ invalid_properties.push('invalid value for "merchant_transaction_id", the character length must be smaller than or equal to 40.')
112
+ end
113
+
114
+ if @transaction_amount.nil?
115
+ invalid_properties.push('invalid value for "transaction_amount", transaction_amount cannot be nil.')
116
+ end
117
+
118
+ if @payment_method.nil?
119
+ invalid_properties.push('invalid value for "payment_method", payment_method cannot be nil.')
120
+ end
121
+
122
+ invalid_properties
123
+ end
124
+
125
+ # Check to see if the all the properties in the model are valid
126
+ # @return true if the model is valid
127
+ def valid?
128
+ return false if @request_type.nil?
129
+ return false if !@store_id.nil? && @store_id.to_s.length > 20
130
+ return false if !@merchant_transaction_id.nil? && @merchant_transaction_id.to_s.length > 40
131
+ return false if @transaction_amount.nil?
132
+ return false if @payment_method.nil?
133
+ true
134
+ end
135
+
136
+ # Custom attribute writer method with validation
137
+ # @param [Object] store_id Value to be assigned
138
+ def store_id=(store_id)
139
+ if !store_id.nil? && store_id.to_s.length > 20
140
+ fail ArgumentError, 'invalid value for "store_id", the character length must be smaller than or equal to 20.'
141
+ end
142
+
143
+ @store_id = store_id
144
+ end
145
+
146
+ # Custom attribute writer method with validation
147
+ # @param [Object] merchant_transaction_id Value to be assigned
148
+ def merchant_transaction_id=(merchant_transaction_id)
149
+ if !merchant_transaction_id.nil? && merchant_transaction_id.to_s.length > 40
150
+ fail ArgumentError, 'invalid value for "merchant_transaction_id", the character length must be smaller than or equal to 40.'
151
+ end
152
+
153
+ @merchant_transaction_id = merchant_transaction_id
154
+ end
155
+
156
+ # Checks equality by comparing each attribute.
157
+ # @param [Object] Object to be compared
158
+ def ==(o)
159
+ return true if self.equal?(o)
160
+ self.class == o.class &&
161
+ request_type == o.request_type &&
162
+ store_id == o.store_id &&
163
+ merchant_transaction_id == o.merchant_transaction_id &&
164
+ transaction_amount == o.transaction_amount &&
165
+ transaction_origin == o.transaction_origin &&
166
+ order == o.order &&
167
+ payment_method == o.payment_method
168
+ end
169
+
170
+ # @see the `==` method
171
+ # @param [Object] Object to be compared
172
+ def eql?(o)
173
+ self == o
174
+ end
175
+
176
+ # Calculates hash code according to all attributes.
177
+ # @return [Fixnum] Hash code
178
+ def hash
179
+ [request_type, store_id, merchant_transaction_id, transaction_amount, transaction_origin, order, payment_method].hash
180
+ end
181
+
182
+ # Builds the object from hash
183
+ # @param [Hash] attributes Model attributes in the form of hash
184
+ # @return [Object] Returns the model itself
185
+ def build_from_hash(attributes)
186
+ return nil unless attributes.is_a?(Hash)
187
+ self.class.openapi_types.each_pair do |key, type|
188
+ if type =~ /\AArray<(.*)>/i
189
+ # check to ensure the input is an array given that the the attribute
190
+ # is documented as an array but the input is not
191
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
192
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
193
+ end
194
+ elsif !attributes[self.class.attribute_map[key]].nil?
195
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
196
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
197
+ end
198
+
199
+ self
200
+ end
201
+
202
+ # Deserializes the data based on type
203
+ # @param string type Data type
204
+ # @param string value Value to be deserialized
205
+ # @return [Object] Deserialized data
206
+ def _deserialize(type, value)
207
+ case type.to_sym
208
+ when :DateTime
209
+ DateTime.parse(value)
210
+ when :Date
211
+ Date.parse(value)
212
+ when :String
213
+ value.to_s
214
+ when :Integer
215
+ value.to_i
216
+ when :Float
217
+ value.to_f
218
+ when :BOOLEAN
219
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
220
+ true
221
+ else
222
+ false
223
+ end
224
+ when :Object
225
+ # generic object (usually a Hash), return directly
226
+ value
227
+ when /\AArray<(?<inner_type>.+)>\z/
228
+ inner_type = Regexp.last_match[:inner_type]
229
+ value.map { |v| _deserialize(inner_type, v) }
230
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
231
+ k_type = Regexp.last_match[:k_type]
232
+ v_type = Regexp.last_match[:v_type]
233
+ {}.tap do |hash|
234
+ value.each do |k, v|
235
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
236
+ end
237
+ end
238
+ else # model
239
+ temp_model = OpenapiClient.const_get(type).new
240
+ temp_model.build_from_hash(value)
241
+ end
242
+ end
243
+
244
+ # Returns the string representation of the object
245
+ # @return [String] String presentation of the object
246
+ def to_s
247
+ to_hash.to_s
248
+ end
249
+
250
+ # to_body is an alias to to_hash (backward compatibility)
251
+ # @return [Hash] Returns the object in the form of hash
252
+ def to_body
253
+ to_hash
254
+ end
255
+
256
+ # Returns the object in the form of hash
257
+ # @return [Hash] Returns the object in the form of hash
258
+ def to_hash
259
+ hash = {}
260
+ self.class.attribute_map.each_pair do |attr, param|
261
+ value = self.send(attr)
262
+ next if value.nil?
263
+ hash[param] = _to_hash(value)
264
+ end
265
+ hash
266
+ end
267
+
268
+ # Outputs non-array value in the form of hash
269
+ # For object, use to_hash. Otherwise, just return the value
270
+ # @param [Object] value Any valid value
271
+ # @return [Hash] Returns the value in the form of hash
272
+ def _to_hash(value)
273
+ if value.is_a?(Array)
274
+ value.compact.map { |v| _to_hash(v) }
275
+ elsif value.is_a?(Hash)
276
+ {}.tap do |hash|
277
+ value.each { |k, v| hash[k] = _to_hash(v) }
278
+ end
279
+ elsif value.respond_to? :to_hash
280
+ value.to_hash
281
+ else
282
+ value
283
+ end
284
+ end
285
+ end
286
+ end
@@ -0,0 +1,266 @@
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 post auth transaction.
17
+ class PostAuthTransaction
18
+ # Object name of the secondary transaction request.
19
+ attr_accessor :request_type
20
+
21
+ # An optional outlet ID for clients that support multiple stores in the same developer app.
22
+ attr_accessor :store_id
23
+
24
+ # Comment for the secondary transaction.
25
+ attr_accessor :comments
26
+
27
+ attr_accessor :transaction_amount
28
+
29
+ attr_accessor :transaction_origin
30
+
31
+ attr_accessor :split_shipment
32
+
33
+ attr_accessor :soft_descriptor
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'request_type' => :'requestType',
39
+ :'store_id' => :'storeId',
40
+ :'comments' => :'comments',
41
+ :'transaction_amount' => :'transactionAmount',
42
+ :'transaction_origin' => :'transactionOrigin',
43
+ :'split_shipment' => :'splitShipment',
44
+ :'soft_descriptor' => :'softDescriptor'
45
+ }
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.openapi_types
50
+ {
51
+ :'request_type' => :'String',
52
+ :'store_id' => :'String',
53
+ :'comments' => :'String',
54
+ :'transaction_amount' => :'Amount',
55
+ :'transaction_origin' => :'TransactionOrigin',
56
+ :'split_shipment' => :'SplitShipment',
57
+ :'soft_descriptor' => :'SoftDescriptor'
58
+ }
59
+ end
60
+
61
+ # Initializes the object
62
+ # @param [Hash] attributes Model attributes in the form of hash
63
+ def initialize(attributes = {})
64
+ return unless attributes.is_a?(Hash)
65
+
66
+ # convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
68
+
69
+ if attributes.has_key?(:'requestType')
70
+ self.request_type = attributes[:'requestType']
71
+ end
72
+
73
+ if attributes.has_key?(:'storeId')
74
+ self.store_id = attributes[:'storeId']
75
+ end
76
+
77
+ if attributes.has_key?(:'comments')
78
+ self.comments = attributes[:'comments']
79
+ end
80
+
81
+ if attributes.has_key?(:'transactionAmount')
82
+ self.transaction_amount = attributes[:'transactionAmount']
83
+ end
84
+
85
+ if attributes.has_key?(:'transactionOrigin')
86
+ self.transaction_origin = attributes[:'transactionOrigin']
87
+ end
88
+
89
+ if attributes.has_key?(:'splitShipment')
90
+ self.split_shipment = attributes[:'splitShipment']
91
+ end
92
+
93
+ if attributes.has_key?(:'softDescriptor')
94
+ self.soft_descriptor = attributes[:'softDescriptor']
95
+ end
96
+ end
97
+
98
+ # Show invalid properties with the reasons. Usually used together with valid?
99
+ # @return Array for valid properties with the reasons
100
+ def list_invalid_properties
101
+ invalid_properties = Array.new
102
+ if @request_type.nil?
103
+ invalid_properties.push('invalid value for "request_type", request_type cannot be nil.')
104
+ end
105
+
106
+ if !@store_id.nil? && @store_id.to_s.length > 20
107
+ invalid_properties.push('invalid value for "store_id", the character length must be smaller than or equal to 20.')
108
+ end
109
+
110
+ if @transaction_amount.nil?
111
+ invalid_properties.push('invalid value for "transaction_amount", transaction_amount cannot be nil.')
112
+ end
113
+
114
+ invalid_properties
115
+ end
116
+
117
+ # Check to see if the all the properties in the model are valid
118
+ # @return true if the model is valid
119
+ def valid?
120
+ return false if @request_type.nil?
121
+ return false if !@store_id.nil? && @store_id.to_s.length > 20
122
+ return false if @transaction_amount.nil?
123
+ true
124
+ end
125
+
126
+ # Custom attribute writer method with validation
127
+ # @param [Object] store_id Value to be assigned
128
+ def store_id=(store_id)
129
+ if !store_id.nil? && store_id.to_s.length > 20
130
+ fail ArgumentError, 'invalid value for "store_id", the character length must be smaller than or equal to 20.'
131
+ end
132
+
133
+ @store_id = store_id
134
+ end
135
+
136
+ # Checks equality by comparing each attribute.
137
+ # @param [Object] Object to be compared
138
+ def ==(o)
139
+ return true if self.equal?(o)
140
+ self.class == o.class &&
141
+ request_type == o.request_type &&
142
+ store_id == o.store_id &&
143
+ comments == o.comments &&
144
+ transaction_amount == o.transaction_amount &&
145
+ transaction_origin == o.transaction_origin &&
146
+ split_shipment == o.split_shipment &&
147
+ soft_descriptor == o.soft_descriptor
148
+ end
149
+
150
+ # @see the `==` method
151
+ # @param [Object] Object to be compared
152
+ def eql?(o)
153
+ self == o
154
+ end
155
+
156
+ # Calculates hash code according to all attributes.
157
+ # @return [Fixnum] Hash code
158
+ def hash
159
+ [request_type, store_id, comments, transaction_amount, transaction_origin, split_shipment, soft_descriptor].hash
160
+ end
161
+
162
+ # Builds the object from hash
163
+ # @param [Hash] attributes Model attributes in the form of hash
164
+ # @return [Object] Returns the model itself
165
+ def build_from_hash(attributes)
166
+ return nil unless attributes.is_a?(Hash)
167
+ self.class.openapi_types.each_pair do |key, type|
168
+ if type =~ /\AArray<(.*)>/i
169
+ # check to ensure the input is an array given that the the attribute
170
+ # is documented as an array but the input is not
171
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
172
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
173
+ end
174
+ elsif !attributes[self.class.attribute_map[key]].nil?
175
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
176
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
177
+ end
178
+
179
+ self
180
+ end
181
+
182
+ # Deserializes the data based on type
183
+ # @param string type Data type
184
+ # @param string value Value to be deserialized
185
+ # @return [Object] Deserialized data
186
+ def _deserialize(type, value)
187
+ case type.to_sym
188
+ when :DateTime
189
+ DateTime.parse(value)
190
+ when :Date
191
+ Date.parse(value)
192
+ when :String
193
+ value.to_s
194
+ when :Integer
195
+ value.to_i
196
+ when :Float
197
+ value.to_f
198
+ when :BOOLEAN
199
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
200
+ true
201
+ else
202
+ false
203
+ end
204
+ when :Object
205
+ # generic object (usually a Hash), return directly
206
+ value
207
+ when /\AArray<(?<inner_type>.+)>\z/
208
+ inner_type = Regexp.last_match[:inner_type]
209
+ value.map { |v| _deserialize(inner_type, v) }
210
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
211
+ k_type = Regexp.last_match[:k_type]
212
+ v_type = Regexp.last_match[:v_type]
213
+ {}.tap do |hash|
214
+ value.each do |k, v|
215
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
216
+ end
217
+ end
218
+ else # model
219
+ temp_model = OpenapiClient.const_get(type).new
220
+ temp_model.build_from_hash(value)
221
+ end
222
+ end
223
+
224
+ # Returns the string representation of the object
225
+ # @return [String] String presentation of the object
226
+ def to_s
227
+ to_hash.to_s
228
+ end
229
+
230
+ # to_body is an alias to to_hash (backward compatibility)
231
+ # @return [Hash] Returns the object in the form of hash
232
+ def to_body
233
+ to_hash
234
+ end
235
+
236
+ # Returns the object in the form of hash
237
+ # @return [Hash] Returns the object in the form of hash
238
+ def to_hash
239
+ hash = {}
240
+ self.class.attribute_map.each_pair do |attr, param|
241
+ value = self.send(attr)
242
+ next if value.nil?
243
+ hash[param] = _to_hash(value)
244
+ end
245
+ hash
246
+ end
247
+
248
+ # Outputs non-array value in the form of hash
249
+ # For object, use to_hash. Otherwise, just return the value
250
+ # @param [Object] value Any valid value
251
+ # @return [Hash] Returns the value in the form of hash
252
+ def _to_hash(value)
253
+ if value.is_a?(Array)
254
+ value.compact.map { |v| _to_hash(v) }
255
+ elsif value.is_a?(Hash)
256
+ {}.tap do |hash|
257
+ value.each { |k, v| hash[k] = _to_hash(v) }
258
+ end
259
+ elsif value.respond_to? :to_hash
260
+ value.to_hash
261
+ else
262
+ value
263
+ end
264
+ end
265
+ end
266
+ end