first_data_gateway 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/README.md +144 -65
  4. data/Rakefile +2 -0
  5. data/docs/AVSResponse.md +9 -0
  6. data/docs/AccessTokenResponse.md +2 -3
  7. data/docs/AdditionalAmountRate.md +9 -0
  8. data/docs/AdditionalTransactionDetails.md +10 -0
  9. data/docs/Address.md +5 -5
  10. data/docs/Airline.md +14 -14
  11. data/docs/AirlineAncillaryServiceCategory.md +2 -2
  12. data/docs/AirlineTravelRoute.md +8 -8
  13. data/docs/AliPay.md +11 -0
  14. data/docs/Amount.md +2 -2
  15. data/docs/AmountComponents.md +8 -8
  16. data/docs/AuthenticationApi.md +19 -24
  17. data/docs/AuthenticationRequest.md +9 -0
  18. data/docs/AuthenticationResponseVerification.md +5 -4
  19. data/docs/AuthenticationResponseVerificationRequest.md +11 -0
  20. data/docs/BasicResponse.md +10 -0
  21. data/docs/BasketItem.md +2 -2
  22. data/docs/Billing.md +6 -5
  23. data/docs/BillingAddress.md +17 -0
  24. data/docs/BillingAddressPhone.md +9 -0
  25. data/docs/CarRental.md +9 -9
  26. data/docs/CarRentalExtraCharges.md +2 -2
  27. data/docs/Card.md +15 -0
  28. data/docs/CardInfo.md +13 -0
  29. data/docs/CardInfoLookupApi.md +68 -0
  30. data/docs/CardInfoLookupRequest.md +9 -0
  31. data/docs/CardInfoLookupResponse.md +12 -0
  32. data/docs/CardVerificationApi.md +68 -0
  33. data/docs/CardVerificationRequest.md +9 -0
  34. data/docs/CardVerificationsTransaction.md +2 -2
  35. data/docs/ChinaDomestic.md +15 -0
  36. data/docs/ClientLocale.md +3 -3
  37. data/docs/Contact.md +5 -5
  38. data/docs/CurrencyConversionApi.md +68 -0
  39. data/docs/Customer.md +19 -0
  40. data/docs/CustomerAddress.md +14 -0
  41. data/docs/CustomerAddressPhone.md +9 -0
  42. data/docs/Dcc.md +9 -0
  43. data/docs/Device.md +19 -0
  44. data/docs/DeviceNetworks.md +21 -0
  45. data/docs/Document.md +9 -0
  46. data/docs/Error.md +1 -1
  47. data/docs/ErrorDetails.md +1 -1
  48. data/docs/ErrorResponse.md +4 -4
  49. data/docs/ExchangeRateRequest.md +12 -0
  50. data/docs/ExchangeRateResponse.md +21 -0
  51. data/docs/Expiration.md +3 -3
  52. data/docs/FraudDetectApi.md +68 -0
  53. data/docs/FraudOrder.md +10 -0
  54. data/docs/FraudOrderItems.md +15 -0
  55. data/docs/FraudOrderShipToAddress.md +14 -0
  56. data/docs/Frequency.md +3 -3
  57. data/docs/IndustrySpecificExtensions.md +1 -1
  58. data/docs/InstallmentOptions.md +1 -1
  59. data/docs/Lodging.md +3 -3
  60. data/docs/LodgingExtraCharges.md +1 -1
  61. data/docs/Loyalty.md +10 -0
  62. data/docs/Merchant.md +11 -0
  63. data/docs/MerchantLocation.md +12 -0
  64. data/docs/MerchantLocationMerchantAddress.md +13 -0
  65. data/docs/Order.md +2 -2
  66. data/docs/OrderApi.md +107 -55
  67. data/docs/OrderErrorResponse.md +19 -0
  68. data/docs/OrderResponse.md +18 -0
  69. data/docs/PayPal.md +1 -1
  70. data/docs/Payment.md +18 -0
  71. data/docs/PaymentApi.md +164 -124
  72. data/docs/PaymentCard.md +10 -6
  73. data/docs/PaymentCardAuthenticationResult.md +1 -1
  74. data/docs/PaymentFacilitator.md +12 -0
  75. data/docs/PaymentIssuerResponse.md +10 -0
  76. data/docs/PaymentMethod.md +5 -2
  77. data/docs/PaymentPayMethod.md +13 -0
  78. data/docs/PaymentSchedulesApi.md +256 -0
  79. data/docs/PaymentSchedulesErrorResponse.md +14 -0
  80. data/docs/PaymentSchedulesRequest.md +10 -7
  81. data/docs/PaymentSchedulesResponse.md +7 -5
  82. data/docs/PaymentTokenApi.md +134 -0
  83. data/docs/PaymentTokenization.md +16 -0
  84. data/docs/PaymentTokenizationErrorResponse.md +19 -0
  85. data/docs/PaymentTokenizationRequest.md +11 -0
  86. data/docs/PaymentTokenizationResponse.md +18 -0
  87. data/docs/PaymentURLApi.md +68 -0
  88. data/docs/PaymentUrlErrorResponse.md +15 -0
  89. data/docs/PaymentUrlRequest.md +13 -3
  90. data/docs/PaymentUrlResponse.md +6 -5
  91. data/docs/PaymentVerification3ds.md +10 -0
  92. data/docs/PaymentVerificationAvs.md +10 -0
  93. data/docs/PaymentVerificationCvv.md +10 -0
  94. data/docs/PrimaryTransaction.md +7 -3
  95. data/docs/PrimaryTransactionAdditionalDetails.md +7 -5
  96. data/docs/ProcessorData.md +8 -4
  97. data/docs/PurchaseCards.md +9 -0
  98. data/docs/PurchaseCardsLevel2.md +12 -0
  99. data/docs/PurchaseCardsLevel3.md +8 -0
  100. data/docs/PurchaseCardsLevel3LineItems.md +16 -0
  101. data/docs/RecurringPaymentDetails.md +20 -0
  102. data/docs/RecurringPaymentDetailsResponse.md +19 -0
  103. data/docs/ReferencedOrder.md +9 -0
  104. data/docs/ResponseType.md +1 -1
  105. data/docs/ScoreOnlyRequest.md +21 -0
  106. data/docs/ScoreOnlyResponse.md +13 -0
  107. data/docs/ScoreOnlyResponseFraudScore.md +10 -0
  108. data/docs/ScoreOnlyResponseFraudScoreExplanations.md +10 -0
  109. data/docs/SecondaryTransaction.md +4 -1
  110. data/docs/SecondaryTransactionAdditionalDetails.md +8 -0
  111. data/docs/Secure3dResponse.md +8 -0
  112. data/docs/Sepa.md +1 -1
  113. data/docs/SepaMandate.md +3 -3
  114. data/docs/Shipping.md +1 -1
  115. data/docs/SoftDescriptor.md +9 -0
  116. data/docs/SplitShipment.md +3 -3
  117. data/docs/StoredCredential.md +4 -4
  118. data/docs/SubMerchantData.md +13 -0
  119. data/docs/Transaction.md +19 -0
  120. data/docs/TransactionErrorResponse.md +13 -11
  121. data/docs/TransactionOrigin.md +7 -0
  122. data/docs/TransactionResponse.md +13 -11
  123. data/docs/TransactionType.md +1 -1
  124. data/first_data_gateway.gemspec +9 -9
  125. data/git_push.sh +2 -2
  126. data/lib/openapi_client/.DS_Store +0 -0
  127. data/lib/{swagger_client → openapi_client}/api/authentication_api.rb +22 -27
  128. data/lib/openapi_client/api/card_info_lookup_api.rb +117 -0
  129. data/lib/openapi_client/api/card_verification_api.rb +117 -0
  130. data/lib/openapi_client/api/currency_conversion_api.rb +117 -0
  131. data/lib/openapi_client/api/fraud_detect_api.rb +122 -0
  132. data/lib/openapi_client/api/order_api.rb +327 -0
  133. data/lib/{swagger_client → openapi_client}/api/payment_api.rb +212 -111
  134. data/lib/openapi_client/api/payment_schedules_api.rb +411 -0
  135. data/lib/openapi_client/api/payment_token_api.rb +218 -0
  136. data/lib/openapi_client/api/payment_url_api.rb +117 -0
  137. data/lib/{swagger_client → openapi_client}/api_client.rb +50 -38
  138. data/lib/{swagger_client → openapi_client}/api_error.rb +6 -6
  139. data/lib/{swagger_client → openapi_client}/configuration.rb +49 -7
  140. data/lib/openapi_client/models/.DS_Store +0 -0
  141. data/lib/{swagger_client → openapi_client}/models/access_token_response.rb +20 -33
  142. data/lib/{swagger_client/models/secondary_transaction.rb → openapi_client/models/additional_amount_rate.rb} +25 -28
  143. data/lib/{swagger_client/models/primary_transaction_additional_details.rb → openapi_client/models/additional_transaction_details.rb} +68 -62
  144. data/lib/{swagger_client → openapi_client}/models/address.rb +33 -44
  145. data/lib/{swagger_client → openapi_client}/models/airline.rb +48 -47
  146. data/lib/{swagger_client → openapi_client}/models/airline_ancillary_service_category.rb +18 -21
  147. data/lib/{swagger_client → openapi_client}/models/airline_travel_route.rb +39 -42
  148. data/lib/openapi_client/models/ali_pay.rb +326 -0
  149. data/lib/{swagger_client → openapi_client}/models/amount.rb +18 -21
  150. data/lib/{swagger_client → openapi_client}/models/amount_components.rb +22 -19
  151. data/lib/{swagger_client/models/transaction_response_authentication_redirect.rb → openapi_client/models/authentication_request.rb} +33 -38
  152. data/lib/{swagger_client → openapi_client}/models/authentication_response_verification.rb +43 -30
  153. data/lib/{swagger_client/models/payment_url_request.rb → openapi_client/models/authentication_response_verification_request.rb} +35 -56
  154. data/lib/openapi_client/models/avs_response.rb +239 -0
  155. data/lib/openapi_client/models/basic_response.rb +209 -0
  156. data/lib/{swagger_client → openapi_client}/models/basket_item.rb +16 -20
  157. data/lib/{swagger_client → openapi_client}/models/billing.rb +65 -25
  158. data/lib/openapi_client/models/billing_address.rb +279 -0
  159. data/lib/{swagger_client/models/transaction_response_authentication_redirect_params.rb → openapi_client/models/billing_address_phone.rb} +31 -42
  160. data/lib/{swagger_client → openapi_client}/models/car_rental.rb +31 -31
  161. data/lib/{swagger_client → openapi_client}/models/car_rental_extra_charges.rb +18 -21
  162. data/lib/openapi_client/models/card.rb +254 -0
  163. data/lib/{swagger_client/models/payment_card.rb → openapi_client/models/card_info.rb} +68 -81
  164. data/lib/openapi_client/models/card_info_lookup_request.rb +214 -0
  165. data/lib/openapi_client/models/card_info_lookup_response.rb +265 -0
  166. data/lib/openapi_client/models/card_verification_request.rb +198 -0
  167. data/lib/{swagger_client → openapi_client}/models/card_verifications_transaction.rb +31 -20
  168. data/lib/openapi_client/models/china_domestic.rb +386 -0
  169. data/lib/{swagger_client → openapi_client}/models/client_locale.rb +19 -23
  170. data/lib/{swagger_client → openapi_client}/models/contact.rb +26 -31
  171. data/lib/openapi_client/models/customer.rb +333 -0
  172. data/lib/openapi_client/models/customer_address.rb +259 -0
  173. data/lib/openapi_client/models/customer_address_phone.rb +195 -0
  174. data/lib/openapi_client/models/dcc.rb +200 -0
  175. data/lib/openapi_client/models/device.rb +340 -0
  176. data/lib/openapi_client/models/device_networks.rb +353 -0
  177. data/lib/{swagger_client/models/payment_card_authentication_request.rb → openapi_client/models/document.rb} +62 -26
  178. data/lib/{swagger_client → openapi_client}/models/error.rb +14 -18
  179. data/lib/{swagger_client → openapi_client}/models/error_details.rb +14 -19
  180. data/lib/{swagger_client → openapi_client}/models/error_response.rb +22 -22
  181. data/lib/openapi_client/models/exchange_rate_request.rb +307 -0
  182. data/lib/openapi_client/models/exchange_rate_response.rb +319 -0
  183. data/lib/{swagger_client → openapi_client}/models/expiration.rb +18 -20
  184. data/lib/openapi_client/models/fraud_order.rb +206 -0
  185. data/lib/openapi_client/models/fraud_order_items.rb +253 -0
  186. data/lib/openapi_client/models/fraud_order_ship_to_address.rb +245 -0
  187. data/lib/{swagger_client → openapi_client}/models/frequency.rb +27 -30
  188. data/lib/{swagger_client → openapi_client}/models/industry_specific_extensions.rb +15 -19
  189. data/lib/{swagger_client → openapi_client}/models/installment_options.rb +22 -28
  190. data/lib/{swagger_client → openapi_client}/models/lodging.rb +19 -22
  191. data/lib/{swagger_client → openapi_client}/models/lodging_extra_charges.rb +17 -21
  192. data/lib/openapi_client/models/loyalty.rb +205 -0
  193. data/lib/openapi_client/models/merchant.rb +219 -0
  194. data/lib/openapi_client/models/merchant_location.rb +224 -0
  195. data/lib/openapi_client/models/merchant_location_merchant_address.rb +250 -0
  196. data/lib/{swagger_client/models/processor_data.rb → openapi_client/models/order.rb} +49 -47
  197. data/lib/openapi_client/models/order_error_response.rb +296 -0
  198. data/lib/openapi_client/models/order_response.rb +287 -0
  199. data/lib/{swagger_client → openapi_client}/models/pay_pal.rb +19 -23
  200. data/lib/openapi_client/models/payment.rb +346 -0
  201. data/lib/openapi_client/models/payment_card.rb +363 -0
  202. data/lib/{swagger_client → openapi_client}/models/payment_card_authentication_result.rb +32 -37
  203. data/lib/openapi_client/models/payment_facilitator.rb +292 -0
  204. data/lib/openapi_client/models/payment_issuer_response.rb +249 -0
  205. data/lib/openapi_client/models/payment_method.rb +278 -0
  206. data/lib/openapi_client/models/payment_pay_method.rb +278 -0
  207. data/lib/openapi_client/models/payment_schedules_error_response.rb +281 -0
  208. data/lib/{swagger_client → openapi_client}/models/payment_schedules_request.rb +83 -80
  209. data/lib/openapi_client/models/payment_schedules_response.rb +272 -0
  210. data/lib/openapi_client/models/payment_tokenization.rb +327 -0
  211. data/lib/openapi_client/models/payment_tokenization_error_response.rb +329 -0
  212. data/lib/{swagger_client/models/payment_method.rb → openapi_client/models/payment_tokenization_request.rb} +34 -37
  213. data/lib/openapi_client/models/payment_tokenization_response.rb +319 -0
  214. data/lib/openapi_client/models/payment_url_error_response.rb +292 -0
  215. data/lib/openapi_client/models/payment_url_request.rb +335 -0
  216. data/lib/{swagger_client → openapi_client}/models/payment_url_response.rb +35 -38
  217. data/lib/openapi_client/models/payment_verification3ds.rb +215 -0
  218. data/lib/openapi_client/models/payment_verification_avs.rb +215 -0
  219. data/lib/openapi_client/models/payment_verification_cvv.rb +215 -0
  220. data/lib/{swagger_client → openapi_client}/models/primary_transaction.rb +93 -31
  221. data/lib/openapi_client/models/primary_transaction_additional_details.rb +352 -0
  222. data/lib/openapi_client/models/processor_data.rb +272 -0
  223. data/lib/openapi_client/models/purchase_cards.rb +192 -0
  224. data/lib/openapi_client/models/purchase_cards_level2.rb +267 -0
  225. data/lib/openapi_client/models/purchase_cards_level3.rb +186 -0
  226. data/lib/openapi_client/models/purchase_cards_level3_line_items.rb +337 -0
  227. data/lib/openapi_client/models/recurring_payment_details.rb +399 -0
  228. data/lib/openapi_client/models/recurring_payment_details_response.rb +296 -0
  229. data/lib/{swagger_client/models/order.rb → openapi_client/models/referenced_order.rb} +23 -36
  230. data/lib/openapi_client/models/response_type.rb +37 -0
  231. data/lib/openapi_client/models/score_only_request.rb +389 -0
  232. data/lib/{swagger_client/models/payment_schedules_response.rb → openapi_client/models/score_only_response.rb} +56 -56
  233. data/lib/openapi_client/models/score_only_response_fraud_score.rb +208 -0
  234. data/lib/openapi_client/models/score_only_response_fraud_score_explanations.rb +201 -0
  235. data/lib/openapi_client/models/secondary_transaction.rb +220 -0
  236. data/lib/openapi_client/models/secondary_transaction_additional_details.rb +183 -0
  237. data/lib/openapi_client/models/secure3d_response.rb +184 -0
  238. data/lib/{swagger_client → openapi_client}/models/sepa.rb +30 -35
  239. data/lib/{swagger_client → openapi_client}/models/sepa_mandate.rb +32 -35
  240. data/lib/{swagger_client → openapi_client}/models/shipping.rb +17 -22
  241. data/lib/openapi_client/models/soft_descriptor.rb +215 -0
  242. data/lib/{swagger_client → openapi_client}/models/split_shipment.rb +17 -21
  243. data/lib/{swagger_client → openapi_client}/models/stored_credential.rb +28 -32
  244. data/lib/openapi_client/models/sub_merchant_data.rb +302 -0
  245. data/lib/openapi_client/models/transaction.rb +337 -0
  246. data/lib/{swagger_client → openapi_client}/models/transaction_error_response.rb +110 -80
  247. data/lib/openapi_client/models/transaction_origin.rb +32 -0
  248. data/lib/{swagger_client → openapi_client}/models/transaction_response.rb +112 -82
  249. data/lib/openapi_client/models/transaction_type.rb +36 -0
  250. data/lib/openapi_client/version.rb +15 -0
  251. data/lib/openapi_client.rb +158 -0
  252. data/lib/simple/client_context.rb +2 -2
  253. data/lib/simple/gateway.rb +274 -37
  254. data/spec/api/authentication_api_spec.rb +12 -12
  255. data/spec/api/card_info_lookup_api_spec.rb +53 -0
  256. data/spec/api/card_verification_api_spec.rb +53 -0
  257. data/spec/api/currency_conversion_api_spec.rb +53 -0
  258. data/spec/api/fraud_detect_api_spec.rb +53 -0
  259. data/spec/api/order_api_spec.rb +44 -23
  260. data/spec/api/payment_api_spec.rb +50 -26
  261. data/spec/api/payment_schedules_api_spec.rb +111 -0
  262. data/spec/api/payment_token_api_spec.rb +74 -0
  263. data/spec/api/payment_url_api_spec.rb +53 -0
  264. data/spec/api_client_spec.rb +66 -66
  265. data/spec/configuration_spec.rb +15 -15
  266. data/spec/models/access_token_response_spec.rb +16 -23
  267. data/spec/models/additional_amount_rate_spec.rb +47 -0
  268. data/spec/models/additional_transaction_details_spec.rb +53 -0
  269. data/spec/models/address_spec.rb +16 -17
  270. data/spec/models/airline_ancillary_service_category_spec.rb +14 -15
  271. data/spec/models/airline_spec.rb +27 -28
  272. data/spec/models/airline_travel_route_spec.rb +22 -23
  273. data/spec/models/ali_pay_spec.rb +63 -0
  274. data/spec/models/amount_components_spec.rb +16 -17
  275. data/spec/models/amount_spec.rb +12 -13
  276. data/spec/models/authentication_request_spec.rb +51 -0
  277. data/spec/models/authentication_response_verification_request_spec.rb +59 -0
  278. data/spec/models/authentication_response_verification_spec.rb +23 -18
  279. data/spec/models/avs_response_spec.rb +55 -0
  280. data/spec/models/basic_response_spec.rb +53 -0
  281. data/spec/models/basket_item_spec.rb +13 -14
  282. data/spec/models/billing_address_phone_spec.rb +47 -0
  283. data/spec/models/billing_address_spec.rb +95 -0
  284. data/spec/models/billing_spec.rb +25 -20
  285. data/spec/models/car_rental_extra_charges_spec.rb +14 -15
  286. data/spec/models/car_rental_spec.rb +17 -18
  287. data/spec/models/card_info_lookup_request_spec.rb +47 -0
  288. data/spec/models/card_info_lookup_response_spec.rb +69 -0
  289. data/spec/models/card_info_spec.rb +79 -0
  290. data/spec/models/card_spec.rb +83 -0
  291. data/spec/models/card_verification_request_spec.rb +47 -0
  292. data/spec/models/card_verifications_transaction_spec.rb +11 -12
  293. data/spec/models/china_domestic_spec.rb +83 -0
  294. data/spec/models/client_locale_spec.rb +11 -12
  295. data/spec/models/contact_spec.rb +13 -14
  296. data/spec/models/customer_address_phone_spec.rb +47 -0
  297. data/spec/models/customer_address_spec.rb +77 -0
  298. data/spec/models/customer_spec.rb +111 -0
  299. data/spec/models/dcc_spec.rb +47 -0
  300. data/spec/models/device_networks_spec.rb +123 -0
  301. data/spec/models/device_spec.rb +111 -0
  302. data/spec/models/document_spec.rb +51 -0
  303. data/spec/models/error_details_spec.rb +11 -12
  304. data/spec/models/error_response_spec.rb +13 -14
  305. data/spec/models/error_spec.rb +12 -13
  306. data/spec/models/exchange_rate_request_spec.rb +69 -0
  307. data/spec/models/exchange_rate_response_spec.rb +119 -0
  308. data/spec/models/expiration_spec.rb +11 -12
  309. data/spec/models/fraud_order_items_spec.rb +83 -0
  310. data/spec/models/fraud_order_ship_to_address_spec.rb +77 -0
  311. data/spec/models/fraud_order_spec.rb +53 -0
  312. data/spec/models/frequency_spec.rb +15 -16
  313. data/spec/models/industry_specific_extensions_spec.rb +12 -13
  314. data/spec/models/installment_options_spec.rb +12 -13
  315. data/spec/models/lodging_extra_charges_spec.rb +14 -15
  316. data/spec/models/lodging_spec.rb +14 -15
  317. data/spec/models/loyalty_spec.rb +53 -0
  318. data/spec/models/merchant_location_merchant_address_spec.rb +71 -0
  319. data/spec/models/merchant_location_spec.rb +65 -0
  320. data/spec/models/merchant_spec.rb +59 -0
  321. data/spec/models/order_error_response_spec.rb +107 -0
  322. data/spec/models/order_response_spec.rb +101 -0
  323. data/spec/models/order_spec.rb +12 -13
  324. data/spec/models/pay_pal_spec.rb +10 -11
  325. data/spec/models/payment_card_authentication_result_spec.rb +26 -27
  326. data/spec/models/payment_card_spec.rb +41 -22
  327. data/spec/models/payment_facilitator_spec.rb +65 -0
  328. data/spec/models/payment_issuer_response_spec.rb +57 -0
  329. data/spec/models/payment_method_spec.rb +35 -18
  330. data/spec/models/payment_pay_method_spec.rb +75 -0
  331. data/spec/models/payment_schedules_error_response_spec.rb +81 -0
  332. data/spec/models/payment_schedules_request_spec.rb +43 -30
  333. data/spec/models/payment_schedules_response_spec.rb +30 -19
  334. data/spec/models/payment_spec.rb +109 -0
  335. data/spec/models/payment_tokenization_error_response_spec.rb +111 -0
  336. data/spec/models/payment_tokenization_request_spec.rb +63 -0
  337. data/spec/models/payment_tokenization_response_spec.rb +105 -0
  338. data/spec/models/payment_tokenization_spec.rb +93 -0
  339. data/spec/models/payment_url_error_response_spec.rb +87 -0
  340. data/spec/models/payment_url_request_spec.rb +73 -14
  341. data/spec/models/payment_url_response_spec.rb +25 -20
  342. data/spec/models/payment_verification3ds_spec.rb +53 -0
  343. data/spec/models/payment_verification_avs_spec.rb +53 -0
  344. data/spec/models/payment_verification_cvv_spec.rb +53 -0
  345. data/spec/models/primary_transaction_additional_details_spec.rb +28 -17
  346. data/spec/models/primary_transaction_spec.rb +45 -22
  347. data/spec/models/processor_data_spec.rb +41 -14
  348. data/spec/models/purchase_cards_level2_spec.rb +65 -0
  349. data/spec/models/purchase_cards_level3_line_items_spec.rb +89 -0
  350. data/spec/models/purchase_cards_level3_spec.rb +41 -0
  351. data/spec/models/purchase_cards_spec.rb +47 -0
  352. data/spec/models/recurring_payment_details_response_spec.rb +107 -0
  353. data/spec/models/recurring_payment_details_spec.rb +117 -0
  354. data/spec/models/referenced_order_spec.rb +47 -0
  355. data/spec/models/response_type_spec.rb +9 -10
  356. data/spec/models/score_only_request_spec.rb +127 -0
  357. data/spec/models/score_only_response_fraud_score_explanations_spec.rb +53 -0
  358. data/spec/models/score_only_response_fraud_score_spec.rb +53 -0
  359. data/spec/models/score_only_response_spec.rb +75 -0
  360. data/spec/models/secondary_transaction_additional_details_spec.rb +41 -0
  361. data/spec/models/secondary_transaction_spec.rb +29 -12
  362. data/spec/models/secure3d_response_spec.rb +41 -0
  363. data/spec/models/sepa_mandate_spec.rb +17 -18
  364. data/spec/models/sepa_spec.rb +14 -15
  365. data/spec/models/shipping_spec.rb +12 -13
  366. data/spec/models/soft_descriptor_spec.rb +47 -0
  367. data/spec/models/split_shipment_spec.rb +11 -12
  368. data/spec/models/stored_credential_spec.rb +21 -22
  369. data/spec/models/sub_merchant_data_spec.rb +71 -0
  370. data/spec/models/transaction_error_response_spec.rb +62 -51
  371. data/spec/models/transaction_origin_spec.rb +35 -0
  372. data/spec/models/transaction_response_spec.rb +61 -50
  373. data/spec/models/transaction_spec.rb +115 -0
  374. data/spec/models/transaction_type_spec.rb +9 -10
  375. data/spec/spec_helper.rb +6 -6
  376. metadata +339 -69
  377. data/docs/PaymentCardAuthenticationRequest.md +0 -8
  378. data/docs/TransactionResponseAuthenticationRedirect.md +0 -10
  379. data/docs/TransactionResponseAuthenticationRedirectParams.md +0 -10
  380. data/lib/swagger_client/api/order_api.rb +0 -229
  381. data/lib/swagger_client/models/response_type.rb +0 -37
  382. data/lib/swagger_client/models/transaction_type.rb +0 -36
  383. data/lib/swagger_client/version.rb +0 -15
  384. data/lib/swagger_client.rb +0 -91
  385. data/spec/models/payment_card_authentication_request_spec.rb +0 -46
  386. data/spec/models/transaction_response_authentication_redirect_params_spec.rb +0 -54
  387. data/spec/models/transaction_response_authentication_redirect_spec.rb +0 -58
@@ -1,24 +1,24 @@
1
1
  =begin
2
- #Payment Gateway API Specification
2
+ #Payment Gateway API Specification.
3
3
 
4
- #Payment Gateway API for payment processing.
4
+ #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
5
5
 
6
- OpenAPI spec version: 0.0.1
6
+ OpenAPI spec version: 6.4.0.20181018.001
7
7
 
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: unset
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
14
 
15
- module SwaggerClient
16
-
15
+ module OpenapiClient
16
+ # Model for basket items
17
17
  class BasketItem
18
18
  # Item ID
19
19
  attr_accessor :id
20
20
 
21
- # Referenced parent Business Entity ID in master database for the outlets // COPY-PASTE ERROR?
21
+ # Item in the basket
22
22
  attr_accessor :description
23
23
 
24
24
  attr_accessor :unit_price
@@ -26,7 +26,6 @@ module SwaggerClient
26
26
  # Total quantity of items
27
27
  attr_accessor :count
28
28
 
29
-
30
29
  # Attribute mapping from ruby-style variable name to JSON key.
31
30
  def self.attribute_map
32
31
  {
@@ -38,7 +37,7 @@ module SwaggerClient
38
37
  end
39
38
 
40
39
  # Attribute type mapping.
41
- def self.swagger_types
40
+ def self.openapi_types
42
41
  {
43
42
  :'id' => :'String',
44
43
  :'description' => :'String',
@@ -53,7 +52,7 @@ module SwaggerClient
53
52
  return unless attributes.is_a?(Hash)
54
53
 
55
54
  # convert string to symbol for hash key
56
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
55
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
57
56
 
58
57
  if attributes.has_key?(:'id')
59
58
  self.id = attributes[:'id']
@@ -70,20 +69,19 @@ module SwaggerClient
70
69
  if attributes.has_key?(:'count')
71
70
  self.count = attributes[:'count']
72
71
  end
73
-
74
72
  end
75
73
 
76
74
  # Show invalid properties with the reasons. Usually used together with valid?
77
75
  # @return Array for valid properties with the reasons
78
76
  def list_invalid_properties
79
77
  invalid_properties = Array.new
80
- return invalid_properties
78
+ invalid_properties
81
79
  end
82
80
 
83
81
  # Check to see if the all the properties in the model are valid
84
82
  # @return true if the model is valid
85
83
  def valid?
86
- return true
84
+ true
87
85
  end
88
86
 
89
87
  # Checks equality by comparing each attribute.
@@ -114,12 +112,12 @@ module SwaggerClient
114
112
  # @return [Object] Returns the model itself
115
113
  def build_from_hash(attributes)
116
114
  return nil unless attributes.is_a?(Hash)
117
- self.class.swagger_types.each_pair do |key, type|
115
+ self.class.openapi_types.each_pair do |key, type|
118
116
  if type =~ /\AArray<(.*)>/i
119
117
  # check to ensure the input is an array given that the the attribute
120
118
  # is documented as an array but the input is not
121
119
  if attributes[self.class.attribute_map[key]].is_a?(Array)
122
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
120
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
123
121
  end
124
122
  elsif !attributes[self.class.attribute_map[key]].nil?
125
123
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -166,7 +164,7 @@ module SwaggerClient
166
164
  end
167
165
  end
168
166
  else # model
169
- temp_model = SwaggerClient.const_get(type).new
167
+ temp_model = OpenapiClient.const_get(type).new
170
168
  temp_model.build_from_hash(value)
171
169
  end
172
170
  end
@@ -201,7 +199,7 @@ module SwaggerClient
201
199
  # @return [Hash] Returns the value in the form of hash
202
200
  def _to_hash(value)
203
201
  if value.is_a?(Array)
204
- value.compact.map{ |v| _to_hash(v) }
202
+ value.compact.map { |v| _to_hash(v) }
205
203
  elsif value.is_a?(Hash)
206
204
  {}.tap do |hash|
207
205
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -212,7 +210,5 @@ module SwaggerClient
212
210
  value
213
211
  end
214
212
  end
215
-
216
213
  end
217
-
218
214
  end
@@ -1,26 +1,33 @@
1
1
  =begin
2
- #Payment Gateway API Specification
2
+ #Payment Gateway API Specification.
3
3
 
4
- #Payment Gateway API for payment processing.
4
+ #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
5
5
 
6
- OpenAPI spec version: 0.0.1
6
+ OpenAPI spec version: 6.4.0.20181018.001
7
7
 
8
- Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: unset
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
14
 
15
- module SwaggerClient
16
-
15
+ module OpenapiClient
16
+ # Customer billing information
17
17
  class Billing
18
+ # Billing name
18
19
  attr_accessor :name
19
20
 
21
+ # Customer ID for billing purpose
22
+ attr_accessor :customer_id
23
+
24
+ # Personal number for the customer
20
25
  attr_accessor :personal_number
21
26
 
27
+ # Customer birth date
22
28
  attr_accessor :birth_date
23
29
 
30
+ # Customer gender
24
31
  attr_accessor :gender
25
32
 
26
33
  attr_accessor :contact
@@ -53,6 +60,7 @@ module SwaggerClient
53
60
  def self.attribute_map
54
61
  {
55
62
  :'name' => :'name',
63
+ :'customer_id' => :'customerId',
56
64
  :'personal_number' => :'personalNumber',
57
65
  :'birth_date' => :'birthDate',
58
66
  :'gender' => :'gender',
@@ -62,9 +70,10 @@ module SwaggerClient
62
70
  end
63
71
 
64
72
  # Attribute type mapping.
65
- def self.swagger_types
73
+ def self.openapi_types
66
74
  {
67
75
  :'name' => :'String',
76
+ :'customer_id' => :'String',
68
77
  :'personal_number' => :'String',
69
78
  :'birth_date' => :'Date',
70
79
  :'gender' => :'String',
@@ -79,12 +88,16 @@ module SwaggerClient
79
88
  return unless attributes.is_a?(Hash)
80
89
 
81
90
  # convert string to symbol for hash key
82
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
91
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
83
92
 
84
93
  if attributes.has_key?(:'name')
85
94
  self.name = attributes[:'name']
86
95
  end
87
96
 
97
+ if attributes.has_key?(:'customerId')
98
+ self.customer_id = attributes[:'customerId']
99
+ end
100
+
88
101
  if attributes.has_key?(:'personalNumber')
89
102
  self.personal_number = attributes[:'personalNumber']
90
103
  end
@@ -104,7 +117,6 @@ module SwaggerClient
104
117
  if attributes.has_key?(:'address')
105
118
  self.address = attributes[:'address']
106
119
  end
107
-
108
120
  end
109
121
 
110
122
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -112,38 +124,67 @@ module SwaggerClient
112
124
  def list_invalid_properties
113
125
  invalid_properties = Array.new
114
126
  if !@name.nil? && @name.to_s.length > 96
115
- invalid_properties.push("invalid value for 'name', the character length must be smaller than or equal to 96.")
127
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 96.')
116
128
  end
117
129
 
118
- return invalid_properties
130
+ if !@customer_id.nil? && @customer_id.to_s.length > 32
131
+ invalid_properties.push('invalid value for "customer_id", the character length must be smaller than or equal to 32.')
132
+ end
133
+
134
+ if !@personal_number.nil? && @personal_number.to_s.length > 20
135
+ invalid_properties.push('invalid value for "personal_number", the character length must be smaller than or equal to 20.')
136
+ end
137
+
138
+ invalid_properties
119
139
  end
120
140
 
121
141
  # Check to see if the all the properties in the model are valid
122
142
  # @return true if the model is valid
123
143
  def valid?
124
144
  return false if !@name.nil? && @name.to_s.length > 96
125
- gender_validator = EnumAttributeValidator.new('String', ["MALE", "FEMALE", "UNKNOWN"])
145
+ return false if !@customer_id.nil? && @customer_id.to_s.length > 32
146
+ return false if !@personal_number.nil? && @personal_number.to_s.length > 20
147
+ gender_validator = EnumAttributeValidator.new('String', ['MALE', 'FEMALE', 'UNKNOWN'])
126
148
  return false unless gender_validator.valid?(@gender)
127
- return true
149
+ true
128
150
  end
129
151
 
130
152
  # Custom attribute writer method with validation
131
153
  # @param [Object] name Value to be assigned
132
154
  def name=(name)
133
-
134
155
  if !name.nil? && name.to_s.length > 96
135
- fail ArgumentError, "invalid value for 'name', the character length must be smaller than or equal to 96."
156
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 96.'
136
157
  end
137
158
 
138
159
  @name = name
139
160
  end
140
161
 
162
+ # Custom attribute writer method with validation
163
+ # @param [Object] customer_id Value to be assigned
164
+ def customer_id=(customer_id)
165
+ if !customer_id.nil? && customer_id.to_s.length > 32
166
+ fail ArgumentError, 'invalid value for "customer_id", the character length must be smaller than or equal to 32.'
167
+ end
168
+
169
+ @customer_id = customer_id
170
+ end
171
+
172
+ # Custom attribute writer method with validation
173
+ # @param [Object] personal_number Value to be assigned
174
+ def personal_number=(personal_number)
175
+ if !personal_number.nil? && personal_number.to_s.length > 20
176
+ fail ArgumentError, 'invalid value for "personal_number", the character length must be smaller than or equal to 20.'
177
+ end
178
+
179
+ @personal_number = personal_number
180
+ end
181
+
141
182
  # Custom attribute writer method checking allowed values (enum).
142
183
  # @param [Object] gender Object to be assigned
143
184
  def gender=(gender)
144
- validator = EnumAttributeValidator.new('String', ["MALE", "FEMALE", "UNKNOWN"])
185
+ validator = EnumAttributeValidator.new('String', ['MALE', 'FEMALE', 'UNKNOWN'])
145
186
  unless validator.valid?(gender)
146
- fail ArgumentError, "invalid value for 'gender', must be one of #{validator.allowable_values}."
187
+ fail ArgumentError, 'invalid value for "gender", must be one of #{validator.allowable_values}.'
147
188
  end
148
189
  @gender = gender
149
190
  end
@@ -154,6 +195,7 @@ module SwaggerClient
154
195
  return true if self.equal?(o)
155
196
  self.class == o.class &&
156
197
  name == o.name &&
198
+ customer_id == o.customer_id &&
157
199
  personal_number == o.personal_number &&
158
200
  birth_date == o.birth_date &&
159
201
  gender == o.gender &&
@@ -170,7 +212,7 @@ module SwaggerClient
170
212
  # Calculates hash code according to all attributes.
171
213
  # @return [Fixnum] Hash code
172
214
  def hash
173
- [name, personal_number, birth_date, gender, contact, address].hash
215
+ [name, customer_id, personal_number, birth_date, gender, contact, address].hash
174
216
  end
175
217
 
176
218
  # Builds the object from hash
@@ -178,12 +220,12 @@ module SwaggerClient
178
220
  # @return [Object] Returns the model itself
179
221
  def build_from_hash(attributes)
180
222
  return nil unless attributes.is_a?(Hash)
181
- self.class.swagger_types.each_pair do |key, type|
223
+ self.class.openapi_types.each_pair do |key, type|
182
224
  if type =~ /\AArray<(.*)>/i
183
225
  # check to ensure the input is an array given that the the attribute
184
226
  # is documented as an array but the input is not
185
227
  if attributes[self.class.attribute_map[key]].is_a?(Array)
186
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
228
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
187
229
  end
188
230
  elsif !attributes[self.class.attribute_map[key]].nil?
189
231
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -230,7 +272,7 @@ module SwaggerClient
230
272
  end
231
273
  end
232
274
  else # model
233
- temp_model = SwaggerClient.const_get(type).new
275
+ temp_model = OpenapiClient.const_get(type).new
234
276
  temp_model.build_from_hash(value)
235
277
  end
236
278
  end
@@ -265,7 +307,7 @@ module SwaggerClient
265
307
  # @return [Hash] Returns the value in the form of hash
266
308
  def _to_hash(value)
267
309
  if value.is_a?(Array)
268
- value.compact.map{ |v| _to_hash(v) }
310
+ value.compact.map { |v| _to_hash(v) }
269
311
  elsif value.is_a?(Hash)
270
312
  {}.tap do |hash|
271
313
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -276,7 +318,5 @@ module SwaggerClient
276
318
  value
277
319
  end
278
320
  end
279
-
280
321
  end
281
-
282
322
  end
@@ -0,0 +1,279 @@
1
+ =begin
2
+ #Payment Gateway API Specification.
3
+
4
+ #Payment Gateway API for payment processing. Version 6.4.0.20181018.001
5
+
6
+ OpenAPI spec version: 6.4.0.20181018.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
+ # Customer Address Fields associated with billing.
17
+ class BillingAddress
18
+ # First name.
19
+ attr_accessor :first_name
20
+
21
+ # Last name.
22
+ attr_accessor :last_name
23
+
24
+ # Middle name.
25
+ attr_accessor :middle_name
26
+
27
+ # Street Address 1. This field is required if the parent object is present.
28
+ attr_accessor :street
29
+
30
+ # Street Address 2.
31
+ attr_accessor :street2
32
+
33
+ # State or Province.
34
+ attr_accessor :state_province
35
+
36
+ # City.
37
+ attr_accessor :city
38
+
39
+ # Country.
40
+ attr_accessor :country
41
+
42
+ attr_accessor :phone
43
+
44
+ # Postal code
45
+ attr_accessor :zip_postal_code
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'first_name' => :'firstName',
51
+ :'last_name' => :'lastName',
52
+ :'middle_name' => :'middleName',
53
+ :'street' => :'street',
54
+ :'street2' => :'street2',
55
+ :'state_province' => :'stateProvince',
56
+ :'city' => :'city',
57
+ :'country' => :'country',
58
+ :'phone' => :'phone',
59
+ :'zip_postal_code' => :'zipPostalCode'
60
+ }
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.openapi_types
65
+ {
66
+ :'first_name' => :'String',
67
+ :'last_name' => :'String',
68
+ :'middle_name' => :'String',
69
+ :'street' => :'String',
70
+ :'street2' => :'String',
71
+ :'state_province' => :'String',
72
+ :'city' => :'String',
73
+ :'country' => :'String',
74
+ :'phone' => :'BillingAddressPhone',
75
+ :'zip_postal_code' => :'String'
76
+ }
77
+ end
78
+
79
+ # Initializes the object
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ def initialize(attributes = {})
82
+ return unless attributes.is_a?(Hash)
83
+
84
+ # convert string to symbol for hash key
85
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
86
+
87
+ if attributes.has_key?(:'firstName')
88
+ self.first_name = attributes[:'firstName']
89
+ end
90
+
91
+ if attributes.has_key?(:'lastName')
92
+ self.last_name = attributes[:'lastName']
93
+ end
94
+
95
+ if attributes.has_key?(:'middleName')
96
+ self.middle_name = attributes[:'middleName']
97
+ end
98
+
99
+ if attributes.has_key?(:'street')
100
+ self.street = attributes[:'street']
101
+ end
102
+
103
+ if attributes.has_key?(:'street2')
104
+ self.street2 = attributes[:'street2']
105
+ end
106
+
107
+ if attributes.has_key?(:'stateProvince')
108
+ self.state_province = attributes[:'stateProvince']
109
+ end
110
+
111
+ if attributes.has_key?(:'city')
112
+ self.city = attributes[:'city']
113
+ end
114
+
115
+ if attributes.has_key?(:'country')
116
+ self.country = attributes[:'country']
117
+ end
118
+
119
+ if attributes.has_key?(:'phone')
120
+ self.phone = attributes[:'phone']
121
+ end
122
+
123
+ if attributes.has_key?(:'zipPostalCode')
124
+ self.zip_postal_code = attributes[:'zipPostalCode']
125
+ end
126
+ end
127
+
128
+ # Show invalid properties with the reasons. Usually used together with valid?
129
+ # @return Array for valid properties with the reasons
130
+ def list_invalid_properties
131
+ invalid_properties = Array.new
132
+ if @street.nil?
133
+ invalid_properties.push('invalid value for "street", street cannot be nil.')
134
+ end
135
+
136
+ invalid_properties
137
+ end
138
+
139
+ # Check to see if the all the properties in the model are valid
140
+ # @return true if the model is valid
141
+ def valid?
142
+ return false if @street.nil?
143
+ true
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
+ first_name == o.first_name &&
152
+ last_name == o.last_name &&
153
+ middle_name == o.middle_name &&
154
+ street == o.street &&
155
+ street2 == o.street2 &&
156
+ state_province == o.state_province &&
157
+ city == o.city &&
158
+ country == o.country &&
159
+ phone == o.phone &&
160
+ zip_postal_code == o.zip_postal_code
161
+ end
162
+
163
+ # @see the `==` method
164
+ # @param [Object] Object to be compared
165
+ def eql?(o)
166
+ self == o
167
+ end
168
+
169
+ # Calculates hash code according to all attributes.
170
+ # @return [Fixnum] Hash code
171
+ def hash
172
+ [first_name, last_name, middle_name, street, street2, state_province, city, country, phone, zip_postal_code].hash
173
+ end
174
+
175
+ # Builds the object from hash
176
+ # @param [Hash] attributes Model attributes in the form of hash
177
+ # @return [Object] Returns the model itself
178
+ def build_from_hash(attributes)
179
+ return nil unless attributes.is_a?(Hash)
180
+ self.class.openapi_types.each_pair do |key, type|
181
+ if type =~ /\AArray<(.*)>/i
182
+ # check to ensure the input is an array given that the the attribute
183
+ # is documented as an array but the input is not
184
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
185
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
186
+ end
187
+ elsif !attributes[self.class.attribute_map[key]].nil?
188
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
189
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
190
+ end
191
+
192
+ self
193
+ end
194
+
195
+ # Deserializes the data based on type
196
+ # @param string type Data type
197
+ # @param string value Value to be deserialized
198
+ # @return [Object] Deserialized data
199
+ def _deserialize(type, value)
200
+ case type.to_sym
201
+ when :DateTime
202
+ DateTime.parse(value)
203
+ when :Date
204
+ Date.parse(value)
205
+ when :String
206
+ value.to_s
207
+ when :Integer
208
+ value.to_i
209
+ when :Float
210
+ value.to_f
211
+ when :BOOLEAN
212
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
213
+ true
214
+ else
215
+ false
216
+ end
217
+ when :Object
218
+ # generic object (usually a Hash), return directly
219
+ value
220
+ when /\AArray<(?<inner_type>.+)>\z/
221
+ inner_type = Regexp.last_match[:inner_type]
222
+ value.map { |v| _deserialize(inner_type, v) }
223
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
224
+ k_type = Regexp.last_match[:k_type]
225
+ v_type = Regexp.last_match[:v_type]
226
+ {}.tap do |hash|
227
+ value.each do |k, v|
228
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
229
+ end
230
+ end
231
+ else # model
232
+ temp_model = OpenapiClient.const_get(type).new
233
+ temp_model.build_from_hash(value)
234
+ end
235
+ end
236
+
237
+ # Returns the string representation of the object
238
+ # @return [String] String presentation of the object
239
+ def to_s
240
+ to_hash.to_s
241
+ end
242
+
243
+ # to_body is an alias to to_hash (backward compatibility)
244
+ # @return [Hash] Returns the object in the form of hash
245
+ def to_body
246
+ to_hash
247
+ end
248
+
249
+ # Returns the object in the form of hash
250
+ # @return [Hash] Returns the object in the form of hash
251
+ def to_hash
252
+ hash = {}
253
+ self.class.attribute_map.each_pair do |attr, param|
254
+ value = self.send(attr)
255
+ next if value.nil?
256
+ hash[param] = _to_hash(value)
257
+ end
258
+ hash
259
+ end
260
+
261
+ # Outputs non-array value in the form of hash
262
+ # For object, use to_hash. Otherwise, just return the value
263
+ # @param [Object] value Any valid value
264
+ # @return [Hash] Returns the value in the form of hash
265
+ def _to_hash(value)
266
+ if value.is_a?(Array)
267
+ value.compact.map { |v| _to_hash(v) }
268
+ elsif value.is_a?(Hash)
269
+ {}.tap do |hash|
270
+ value.each { |k, v| hash[k] = _to_hash(v) }
271
+ end
272
+ elsif value.respond_to? :to_hash
273
+ value.to_hash
274
+ else
275
+ value
276
+ end
277
+ end
278
+ end
279
+ end