connect-sdk-ruby 2.45.0 → 2.46.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 (588) hide show
  1. checksums.yaml +4 -4
  2. data/connect-sdk-ruby.gemspec +1 -1
  3. data/examples/merchant/captures/create_refund_capture_example.rb +1 -1
  4. data/examples/merchant/captures/get_capture_example.rb +1 -1
  5. data/examples/merchant/disputes/cancel_dispute_example.rb +1 -1
  6. data/examples/merchant/disputes/get_dispute_example.rb +1 -1
  7. data/examples/merchant/disputes/submit_dispute_example.rb +1 -1
  8. data/examples/merchant/disputes/upload_dispute_file_example.rb +1 -1
  9. data/examples/merchant/files/get_file_example.rb +1 -1
  10. data/examples/merchant/hostedcheckouts/create_hosted_checkout_example.rb +1 -1
  11. data/examples/merchant/hostedcheckouts/delete_hosted_checkout_example.rb +1 -1
  12. data/examples/merchant/hostedcheckouts/get_hosted_checkout_example.rb +1 -1
  13. data/examples/merchant/hostedmandatemanagements/create_hosted_mandate_management_example.rb +1 -1
  14. data/examples/merchant/hostedmandatemanagements/get_hosted_mandate_management_example.rb +1 -1
  15. data/examples/merchant/installments/get_installments_info_example.rb +1 -1
  16. data/examples/merchant/mandates/block_mandate_example.rb +1 -1
  17. data/examples/merchant/mandates/create_mandate_example.rb +1 -1
  18. data/examples/merchant/mandates/create_mandate_with_reference_example.rb +1 -1
  19. data/examples/merchant/mandates/get_mandate_example.rb +1 -1
  20. data/examples/merchant/mandates/revoke_mandate_example.rb +1 -1
  21. data/examples/merchant/mandates/unblock_mandate_example.rb +1 -1
  22. data/examples/merchant/payments/approve_payment_example.rb +1 -1
  23. data/examples/merchant/payments/cancel_approval_payment_example.rb +1 -1
  24. data/examples/merchant/payments/cancel_payment_example.rb +1 -1
  25. data/examples/merchant/payments/capture_payment_example.rb +1 -1
  26. data/examples/merchant/payments/complete_payment_example.rb +1 -1
  27. data/examples/merchant/payments/create_payment_dispute_example.rb +1 -1
  28. data/examples/merchant/payments/create_payment_example.rb +1 -1
  29. data/examples/merchant/payments/find_payments_example.rb +1 -1
  30. data/examples/merchant/payments/get_payment_captures_example.rb +1 -1
  31. data/examples/merchant/payments/get_payment_device_fingerprint_details_example.rb +1 -1
  32. data/examples/merchant/payments/get_payment_disputes_example.rb +1 -1
  33. data/examples/merchant/payments/get_payment_example.rb +1 -1
  34. data/examples/merchant/payments/get_refunds_example.rb +1 -1
  35. data/examples/merchant/payments/get_third_party_status_example.rb +1 -1
  36. data/examples/merchant/payments/process_challenged_payment_example.rb +1 -1
  37. data/examples/merchant/payments/refund_payment_example.rb +1 -1
  38. data/examples/merchant/payments/tokenize_payment_example.rb +1 -1
  39. data/examples/merchant/payouts/approve_payout_example.rb +1 -1
  40. data/examples/merchant/payouts/cancel_approval_payout_example.rb +1 -1
  41. data/examples/merchant/payouts/cancel_payout_example.rb +1 -1
  42. data/examples/merchant/payouts/create_payout_example.rb +1 -1
  43. data/examples/merchant/payouts/find_payouts_example.rb +1 -1
  44. data/examples/merchant/payouts/get_payout_example.rb +1 -1
  45. data/examples/merchant/productgroups/get_device_fingerprint_for_groups_example.rb +1 -1
  46. data/examples/merchant/productgroups/get_payment_product_group_example.rb +1 -1
  47. data/examples/merchant/productgroups/get_payment_product_groups_example.rb +1 -1
  48. data/examples/merchant/products/create_payment_product_session_example.rb +1 -1
  49. data/examples/merchant/products/get_customer_details_example.rb +1 -1
  50. data/examples/merchant/products/get_device_fingerprint_example.rb +1 -1
  51. data/examples/merchant/products/get_directory_example.rb +1 -1
  52. data/examples/merchant/products/get_networks_example.rb +1 -1
  53. data/examples/merchant/products/get_payment_product_example.rb +1 -1
  54. data/examples/merchant/products/get_payment_products_example.rb +1 -1
  55. data/examples/merchant/refunds/approve_refund_example.rb +1 -1
  56. data/examples/merchant/refunds/cancel_approval_refund_example.rb +1 -1
  57. data/examples/merchant/refunds/cancel_refund_example.rb +1 -1
  58. data/examples/merchant/refunds/find_refunds_example.rb +1 -1
  59. data/examples/merchant/refunds/get_refund_example.rb +1 -1
  60. data/examples/merchant/riskassessments/risk_assessment_bank_account_example.rb +1 -1
  61. data/examples/merchant/riskassessments/risk_assessment_cards_example.rb +1 -1
  62. data/examples/merchant/services/convert_amount_example.rb +1 -1
  63. data/examples/merchant/services/convert_bank_account_example.rb +1 -1
  64. data/examples/merchant/services/get_privacy_policy_example.rb +1 -1
  65. data/examples/merchant/services/iin_details_example.rb +1 -1
  66. data/examples/merchant/services/test_connection_example.rb +1 -1
  67. data/examples/merchant/sessions/create_session_example.rb +1 -1
  68. data/examples/merchant/tokens/approve_sepa_direct_debit_token_example.rb +1 -1
  69. data/examples/merchant/tokens/create_token_example.rb +1 -1
  70. data/examples/merchant/tokens/delete_token_example.rb +1 -1
  71. data/examples/merchant/tokens/get_token_example.rb +1 -1
  72. data/examples/merchant/tokens/update_token_example.rb +1 -1
  73. data/lib/ingenico/connect/sdk/api_exception.rb +46 -43
  74. data/lib/ingenico/connect/sdk/api_resource.rb +124 -107
  75. data/lib/ingenico/connect/sdk/authenticator.rb +15 -12
  76. data/lib/ingenico/connect/sdk/authorization_exception.rb +13 -8
  77. data/lib/ingenico/connect/sdk/call_context.rb +24 -21
  78. data/lib/ingenico/connect/sdk/client.rb +3 -4
  79. data/lib/ingenico/connect/sdk/communication_exception.rb +14 -11
  80. data/lib/ingenico/connect/sdk/communicator.rb +475 -471
  81. data/lib/ingenico/connect/sdk/communicator_configuration.rb +79 -73
  82. data/lib/ingenico/connect/sdk/connection.rb +38 -33
  83. data/lib/ingenico/connect/sdk/data_object.rb +26 -24
  84. data/lib/ingenico/connect/sdk/declined_payment_exception.rb +38 -35
  85. data/lib/ingenico/connect/sdk/declined_payout_exception.rb +38 -35
  86. data/lib/ingenico/connect/sdk/declined_refund_exception.rb +37 -36
  87. data/lib/ingenico/connect/sdk/declined_transaction_exception.rb +15 -10
  88. data/lib/ingenico/connect/sdk/defaultimpl/authorization_type.rb +16 -13
  89. data/lib/ingenico/connect/sdk/defaultimpl/default_authenticator.rb +98 -94
  90. data/lib/ingenico/connect/sdk/defaultimpl/default_connection.rb +365 -347
  91. data/lib/ingenico/connect/sdk/defaultimpl/default_marshaller.rb +30 -25
  92. data/lib/ingenico/connect/sdk/defaultimpl.rb +1 -6
  93. data/lib/ingenico/connect/sdk/domain/capture/capture.rb +35 -32
  94. data/lib/ingenico/connect/sdk/domain/capture/capture_output.rb +117 -114
  95. data/lib/ingenico/connect/sdk/domain/capture/capture_response.rb +9 -6
  96. data/lib/ingenico/connect/sdk/domain/capture/capture_status_output.rb +36 -33
  97. data/lib/ingenico/connect/sdk/domain/capture/captures_response.rb +24 -21
  98. data/lib/ingenico/connect/sdk/domain/capture.rb +5 -0
  99. data/lib/ingenico/connect/sdk/domain/definitions/abstract_order_status.rb +21 -18
  100. data/lib/ingenico/connect/sdk/domain/definitions/abstract_payment_method_specific_input.rb +21 -18
  101. data/lib/ingenico/connect/sdk/domain/definitions/additional_order_input_airline_data.rb +29 -26
  102. data/lib/ingenico/connect/sdk/domain/definitions/address.rb +63 -60
  103. data/lib/ingenico/connect/sdk/domain/definitions/airline_data.rb +200 -197
  104. data/lib/ingenico/connect/sdk/domain/definitions/airline_flight_leg.rb +159 -156
  105. data/lib/ingenico/connect/sdk/domain/definitions/airline_passenger.rb +45 -42
  106. data/lib/ingenico/connect/sdk/domain/definitions/amount_of_money.rb +27 -24
  107. data/lib/ingenico/connect/sdk/domain/definitions/bank_account.rb +21 -18
  108. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_bban.rb +51 -48
  109. data/lib/ingenico/connect/sdk/domain/definitions/bank_account_iban.rb +21 -18
  110. data/lib/ingenico/connect/sdk/domain/definitions/card.rb +27 -24
  111. data/lib/ingenico/connect/sdk/domain/definitions/card_essentials.rb +33 -30
  112. data/lib/ingenico/connect/sdk/domain/definitions/card_fraud_results.rb +47 -44
  113. data/lib/ingenico/connect/sdk/domain/definitions/card_without_cvv.rb +21 -18
  114. data/lib/ingenico/connect/sdk/domain/definitions/company_information.rb +27 -24
  115. data/lib/ingenico/connect/sdk/domain/definitions/contact_details_base.rb +27 -24
  116. data/lib/ingenico/connect/sdk/domain/definitions/customer_base.rb +36 -33
  117. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields.rb +171 -168
  118. data/lib/ingenico/connect/sdk/domain/definitions/fraud_fields_shipping_details.rb +40 -37
  119. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results.rb +35 -32
  120. data/lib/ingenico/connect/sdk/domain/definitions/fraud_results_retail_decisions.rb +33 -30
  121. data/lib/ingenico/connect/sdk/domain/definitions/fraugster_results.rb +27 -24
  122. data/lib/ingenico/connect/sdk/domain/definitions/in_auth.rb +52 -49
  123. data/lib/ingenico/connect/sdk/domain/definitions/key_value_pair.rb +27 -24
  124. data/lib/ingenico/connect/sdk/domain/definitions/lodging_charge.rb +33 -30
  125. data/lib/ingenico/connect/sdk/domain/definitions/lodging_data.rb +135 -132
  126. data/lib/ingenico/connect/sdk/domain/definitions/lodging_room.rb +69 -66
  127. data/lib/ingenico/connect/sdk/domain/definitions/microsoft_fraud_results.rb +57 -54
  128. data/lib/ingenico/connect/sdk/domain/definitions/order_status_output.rb +64 -61
  129. data/lib/ingenico/connect/sdk/domain/definitions/payment_product_filter.rb +34 -31
  130. data/lib/ingenico/connect/sdk/domain/definitions/personal_name_base.rb +33 -30
  131. data/lib/ingenico/connect/sdk/domain/definitions/redirect_data_base.rb +27 -24
  132. data/lib/ingenico/connect/sdk/domain/definitions/result_do_risk_assessment.rb +47 -44
  133. data/lib/ingenico/connect/sdk/domain/definitions/retail_decisions_cc_fraud_check_output.rb +33 -30
  134. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_check.rb +33 -30
  135. data/lib/ingenico/connect/sdk/domain/definitions/validation_bank_account_output.rb +48 -45
  136. data/lib/ingenico/connect/sdk/domain/definitions.rb +5 -0
  137. data/lib/ingenico/connect/sdk/domain/dispute/create_dispute_request.rb +46 -43
  138. data/lib/ingenico/connect/sdk/domain/dispute/dispute.rb +47 -44
  139. data/lib/ingenico/connect/sdk/domain/dispute/dispute_creation_detail.rb +33 -30
  140. data/lib/ingenico/connect/sdk/domain/dispute/dispute_output.rb +75 -72
  141. data/lib/ingenico/connect/sdk/domain/dispute/dispute_reference.rb +52 -49
  142. data/lib/ingenico/connect/sdk/domain/dispute/dispute_response.rb +9 -6
  143. data/lib/ingenico/connect/sdk/domain/dispute/dispute_status_output.rb +45 -42
  144. data/lib/ingenico/connect/sdk/domain/dispute/disputes_response.rb +24 -21
  145. data/lib/ingenico/connect/sdk/domain/dispute/upload_dispute_file_response.rb +27 -24
  146. data/lib/ingenico/connect/sdk/domain/dispute.rb +5 -0
  147. data/lib/ingenico/connect/sdk/domain/errors/api_error.rb +57 -54
  148. data/lib/ingenico/connect/sdk/domain/errors/error_response.rb +30 -27
  149. data/lib/ingenico/connect/sdk/domain/errors.rb +5 -0
  150. data/lib/ingenico/connect/sdk/domain/file/hosted_file.rb +45 -42
  151. data/lib/ingenico/connect/sdk/domain/file.rb +5 -0
  152. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_request.rb +92 -89
  153. data/lib/ingenico/connect/sdk/domain/hostedcheckout/create_hosted_checkout_response.rb +48 -45
  154. data/lib/ingenico/connect/sdk/domain/hostedcheckout/created_payment_output.rb +62 -59
  155. data/lib/ingenico/connect/sdk/domain/hostedcheckout/displayed_data.rb +36 -33
  156. data/lib/ingenico/connect/sdk/domain/hostedcheckout/frequency.rb +27 -24
  157. data/lib/ingenico/connect/sdk/domain/hostedcheckout/get_hosted_checkout_response.rb +28 -25
  158. data/lib/ingenico/connect/sdk/domain/hostedcheckout/hosted_checkout_specific_input.rb +77 -74
  159. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_method_specific_input_hosted_checkout.rb +53 -50
  160. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product302_specific_input_hosted_checkout.rb +21 -18
  161. data/lib/ingenico/connect/sdk/domain/hostedcheckout/mobile_payment_product320_specific_input_hosted_checkout.rb +34 -31
  162. data/lib/ingenico/connect/sdk/domain/hostedcheckout/payment_product_filters_hosted_checkout.rb +35 -32
  163. data/lib/ingenico/connect/sdk/domain/hostedcheckout/recurring_payments_data.rb +29 -26
  164. data/lib/ingenico/connect/sdk/domain/hostedcheckout/trial_information.rb +48 -45
  165. data/lib/ingenico/connect/sdk/domain/hostedcheckout/trial_period.rb +27 -24
  166. data/lib/ingenico/connect/sdk/domain/hostedcheckout.rb +5 -0
  167. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_request.rb +29 -26
  168. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/create_hosted_mandate_management_response.rb +33 -30
  169. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/get_hosted_mandate_management_response.rb +28 -25
  170. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_info.rb +52 -49
  171. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement/hosted_mandate_management_specific_input.rb +45 -42
  172. data/lib/ingenico/connect/sdk/domain/hostedmandatemanagement.rb +5 -0
  173. data/lib/ingenico/connect/sdk/domain/installments/get_installment_request.rb +46 -43
  174. data/lib/ingenico/connect/sdk/domain/installments/installment_display_hints.rb +33 -30
  175. data/lib/ingenico/connect/sdk/domain/installments/installment_options.rb +37 -34
  176. data/lib/ingenico/connect/sdk/domain/installments/installment_options_response.rb +24 -21
  177. data/lib/ingenico/connect/sdk/domain/installments.rb +5 -0
  178. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_base.rb +58 -55
  179. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_request.rb +9 -6
  180. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_response.rb +29 -26
  181. data/lib/ingenico/connect/sdk/domain/mandates/create_mandate_with_return_url.rb +21 -18
  182. data/lib/ingenico/connect/sdk/domain/mandates/get_mandate_response.rb +22 -19
  183. data/lib/ingenico/connect/sdk/domain/mandates/mandate_address.rb +52 -49
  184. data/lib/ingenico/connect/sdk/domain/mandates/mandate_contact_details.rb +21 -18
  185. data/lib/ingenico/connect/sdk/domain/mandates/mandate_customer.rb +49 -46
  186. data/lib/ingenico/connect/sdk/domain/mandates/mandate_merchant_action.rb +28 -25
  187. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_information.rb +28 -25
  188. data/lib/ingenico/connect/sdk/domain/mandates/mandate_personal_name.rb +27 -24
  189. data/lib/ingenico/connect/sdk/domain/mandates/mandate_redirect_data.rb +9 -6
  190. data/lib/ingenico/connect/sdk/domain/mandates/mandate_response.rb +52 -49
  191. data/lib/ingenico/connect/sdk/domain/mandates.rb +5 -0
  192. data/lib/ingenico/connect/sdk/domain/metadata/shopping_cart_extension.rb +49 -42
  193. data/lib/ingenico/connect/sdk/domain/metadata.rb +1 -0
  194. data/lib/ingenico/connect/sdk/domain/payment/abstract_bank_transfer_payment_method_specific_input.rb +21 -18
  195. data/lib/ingenico/connect/sdk/domain/payment/abstract_card_payment_method_specific_input.rb +129 -119
  196. data/lib/ingenico/connect/sdk/domain/payment/abstract_cash_payment_method_specific_input.rb +9 -6
  197. data/lib/ingenico/connect/sdk/domain/payment/abstract_e_invoice_payment_method_specific_input.rb +21 -18
  198. data/lib/ingenico/connect/sdk/domain/payment/abstract_payment_method_specific_output.rb +21 -18
  199. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_method_specific_input.rb +52 -49
  200. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_product4101_specific_input.rb +9 -6
  201. data/lib/ingenico/connect/sdk/domain/payment/abstract_redirect_payment_product840_specific_input.rb +21 -18
  202. data/lib/ingenico/connect/sdk/domain/payment/abstract_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  203. data/lib/ingenico/connect/sdk/domain/payment/abstract_sepa_direct_debit_payment_product771_specific_input.rb +23 -20
  204. data/lib/ingenico/connect/sdk/domain/payment/abstract_three_d_secure.rb +72 -69
  205. data/lib/ingenico/connect/sdk/domain/payment/account_funding_recipient.rb +53 -50
  206. data/lib/ingenico/connect/sdk/domain/payment/additional_order_input.rb +82 -79
  207. data/lib/ingenico/connect/sdk/domain/payment/address_personal.rb +22 -19
  208. data/lib/ingenico/connect/sdk/domain/payment/afr_name.rb +27 -24
  209. data/lib/ingenico/connect/sdk/domain/payment/amount_breakdown.rb +27 -24
  210. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_card_payment_method_specific_output.rb +21 -18
  211. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_direct_debit_payment_method_specific_input.rb +9 -6
  212. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_mobile_payment_method_specific_output.rb +21 -18
  213. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_non_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  214. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_payment_method_specific_input.rb +27 -24
  215. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_request.rb +48 -45
  216. data/lib/ingenico/connect/sdk/domain/payment/approve_payment_sepa_direct_debit_payment_method_specific_input.rb +9 -6
  217. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input.rb +9 -6
  218. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_input_base.rb +9 -6
  219. data/lib/ingenico/connect/sdk/domain/payment/bank_transfer_payment_method_specific_output.rb +22 -19
  220. data/lib/ingenico/connect/sdk/domain/payment/browser_data.rb +57 -54
  221. data/lib/ingenico/connect/sdk/domain/payment/cancel_approval_payment_response.rb +22 -19
  222. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_card_payment_method_specific_output.rb +21 -18
  223. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_mobile_payment_method_specific_output.rb +21 -18
  224. data/lib/ingenico/connect/sdk/domain/payment/cancel_payment_response.rb +36 -33
  225. data/lib/ingenico/connect/sdk/domain/payment/capture_payment_request.rb +27 -24
  226. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input.rb +65 -62
  227. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_input_base.rb +22 -19
  228. data/lib/ingenico/connect/sdk/domain/payment/card_payment_method_specific_output.rb +60 -57
  229. data/lib/ingenico/connect/sdk/domain/payment/card_recurrence_details.rb +33 -30
  230. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input.rb +66 -63
  231. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_input_base.rb +9 -6
  232. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_method_specific_output.rb +22 -19
  233. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1503_specific_input.rb +24 -21
  234. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1504_specific_input.rb +9 -6
  235. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1521_specific_input.rb +9 -6
  236. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1522_specific_input.rb +9 -6
  237. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1523_specific_input.rb +9 -6
  238. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1524_specific_input.rb +9 -6
  239. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product1526_specific_input.rb +9 -6
  240. data/lib/ingenico/connect/sdk/domain/payment/cash_payment_product_with_redirect_specific_input_base.rb +21 -18
  241. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_card_payment_method_specific_input.rb +22 -19
  242. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_request.rb +36 -33
  243. data/lib/ingenico/connect/sdk/domain/payment/complete_payment_response.rb +9 -6
  244. data/lib/ingenico/connect/sdk/domain/payment/contact_details.rb +45 -42
  245. data/lib/ingenico/connect/sdk/domain/payment/create_payment_request.rb +120 -117
  246. data/lib/ingenico/connect/sdk/domain/payment/create_payment_response.rb +9 -6
  247. data/lib/ingenico/connect/sdk/domain/payment/create_payment_result.rb +36 -33
  248. data/lib/ingenico/connect/sdk/domain/payment/customer.rb +89 -86
  249. data/lib/ingenico/connect/sdk/domain/payment/customer_account.rb +104 -101
  250. data/lib/ingenico/connect/sdk/domain/payment/customer_account_authentication.rb +33 -30
  251. data/lib/ingenico/connect/sdk/domain/payment/customer_approve_payment.rb +21 -18
  252. data/lib/ingenico/connect/sdk/domain/payment/customer_device.rb +64 -61
  253. data/lib/ingenico/connect/sdk/domain/payment/customer_payment_activity.rb +33 -30
  254. data/lib/ingenico/connect/sdk/domain/payment/decrypted_payment_data.rb +65 -62
  255. data/lib/ingenico/connect/sdk/domain/payment/device_fingerprint_details.rb +27 -24
  256. data/lib/ingenico/connect/sdk/domain/payment/device_render_options.rb +38 -35
  257. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input.rb +28 -25
  258. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_input_base.rb +9 -6
  259. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_method_specific_output.rb +29 -26
  260. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_input.rb +28 -25
  261. data/lib/ingenico/connect/sdk/domain/payment/e_invoice_payment_product9000_specific_output.rb +21 -18
  262. data/lib/ingenico/connect/sdk/domain/payment/exemption_output.rb +33 -30
  263. data/lib/ingenico/connect/sdk/domain/payment/external_cardholder_authentication_data.rb +83 -80
  264. data/lib/ingenico/connect/sdk/domain/payment/find_payments_response.rb +47 -44
  265. data/lib/ingenico/connect/sdk/domain/payment/g_pay_three_d_secure.rb +46 -43
  266. data/lib/ingenico/connect/sdk/domain/payment/gift_card_purchase.rb +28 -25
  267. data/lib/ingenico/connect/sdk/domain/payment/hosted_checkout_specific_output.rb +27 -24
  268. data/lib/ingenico/connect/sdk/domain/payment/installments.rb +53 -50
  269. data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_input.rb +21 -18
  270. data/lib/ingenico/connect/sdk/domain/payment/invoice_payment_method_specific_output.rb +22 -19
  271. data/lib/ingenico/connect/sdk/domain/payment/level3_summary_data.rb +40 -37
  272. data/lib/ingenico/connect/sdk/domain/payment/line_item.rb +45 -42
  273. data/lib/ingenico/connect/sdk/domain/payment/line_item_invoice_data.rb +52 -49
  274. data/lib/ingenico/connect/sdk/domain/payment/line_item_level3_interchange_information.rb +63 -60
  275. data/lib/ingenico/connect/sdk/domain/payment/loan_recipient.rb +56 -53
  276. data/lib/ingenico/connect/sdk/domain/payment/merchant.rb +46 -43
  277. data/lib/ingenico/connect/sdk/domain/payment/merchant_action.rb +67 -64
  278. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_data.rb +27 -24
  279. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_input.rb +59 -56
  280. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_method_specific_output.rb +48 -45
  281. data/lib/ingenico/connect/sdk/domain/payment/mobile_payment_product320_specific_input.rb +28 -25
  282. data/lib/ingenico/connect/sdk/domain/payment/mobile_three_d_secure_challenge_parameters.rb +45 -42
  283. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_input.rb +71 -68
  284. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_method_specific_output.rb +22 -19
  285. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product705_specific_input.rb +34 -31
  286. data/lib/ingenico/connect/sdk/domain/payment/non_sepa_direct_debit_payment_product730_specific_input.rb +22 -19
  287. data/lib/ingenico/connect/sdk/domain/payment/order.rb +77 -74
  288. data/lib/ingenico/connect/sdk/domain/payment/order_approve_payment.rb +36 -33
  289. data/lib/ingenico/connect/sdk/domain/payment/order_invoice_data.rb +47 -44
  290. data/lib/ingenico/connect/sdk/domain/payment/order_line_details.rb +101 -98
  291. data/lib/ingenico/connect/sdk/domain/payment/order_output.rb +29 -26
  292. data/lib/ingenico/connect/sdk/domain/payment/order_references.rb +52 -49
  293. data/lib/ingenico/connect/sdk/domain/payment/order_references_approve_payment.rb +21 -18
  294. data/lib/ingenico/connect/sdk/domain/payment/order_type_information.rb +45 -42
  295. data/lib/ingenico/connect/sdk/domain/payment/payment.rb +48 -45
  296. data/lib/ingenico/connect/sdk/domain/payment/payment_account_on_file.rb +27 -24
  297. data/lib/ingenico/connect/sdk/domain/payment/payment_approval_response.rb +45 -42
  298. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_output.rb +45 -42
  299. data/lib/ingenico/connect/sdk/domain/payment/payment_creation_references.rb +27 -24
  300. data/lib/ingenico/connect/sdk/domain/payment/payment_error_response.rb +37 -34
  301. data/lib/ingenico/connect/sdk/domain/payment/payment_output.rb +117 -114
  302. data/lib/ingenico/connect/sdk/domain/payment/payment_product3201_specific_output.rb +22 -19
  303. data/lib/ingenico/connect/sdk/domain/payment/payment_product771_specific_output.rb +21 -18
  304. data/lib/ingenico/connect/sdk/domain/payment/payment_product806_specific_output.rb +29 -26
  305. data/lib/ingenico/connect/sdk/domain/payment/payment_product836_specific_output.rb +21 -18
  306. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_customer_account.rb +75 -72
  307. data/lib/ingenico/connect/sdk/domain/payment/payment_product840_specific_output.rb +49 -46
  308. data/lib/ingenico/connect/sdk/domain/payment/payment_product863_third_party_data.rb +57 -54
  309. data/lib/ingenico/connect/sdk/domain/payment/payment_references.rb +57 -54
  310. data/lib/ingenico/connect/sdk/domain/payment/payment_response.rb +9 -6
  311. data/lib/ingenico/connect/sdk/domain/payment/payment_status_output.rb +33 -30
  312. data/lib/ingenico/connect/sdk/domain/payment/personal_identification.rb +33 -30
  313. data/lib/ingenico/connect/sdk/domain/payment/personal_information.rb +47 -44
  314. data/lib/ingenico/connect/sdk/domain/payment/personal_name.rb +21 -18
  315. data/lib/ingenico/connect/sdk/domain/payment/protection_eligibility.rb +27 -24
  316. data/lib/ingenico/connect/sdk/domain/payment/redirect_data.rb +9 -6
  317. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input.rb +92 -89
  318. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_input_base.rb +29 -26
  319. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_method_specific_output.rb +76 -73
  320. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product4101_specific_input.rb +33 -30
  321. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product4101_specific_input_base.rb +21 -18
  322. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product809_specific_input.rb +29 -26
  323. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product816_specific_input.rb +22 -19
  324. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product840_specific_input.rb +29 -26
  325. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product840_specific_input_base.rb +9 -6
  326. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product861_specific_input.rb +21 -18
  327. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product863_specific_input.rb +27 -24
  328. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product869_specific_input.rb +33 -30
  329. data/lib/ingenico/connect/sdk/domain/payment/redirect_payment_product882_specific_input.rb +21 -18
  330. data/lib/ingenico/connect/sdk/domain/payment/redirection_data.rb +27 -24
  331. data/lib/ingenico/connect/sdk/domain/payment/refund_bank_method_specific_output.rb +9 -6
  332. data/lib/ingenico/connect/sdk/domain/payment/refund_card_method_specific_output.rb +28 -25
  333. data/lib/ingenico/connect/sdk/domain/payment/refund_cash_method_specific_output.rb +9 -6
  334. data/lib/ingenico/connect/sdk/domain/payment/refund_e_invoice_method_specific_output.rb +9 -6
  335. data/lib/ingenico/connect/sdk/domain/payment/refund_e_wallet_method_specific_output.rb +22 -19
  336. data/lib/ingenico/connect/sdk/domain/payment/refund_method_specific_output.rb +33 -30
  337. data/lib/ingenico/connect/sdk/domain/payment/refund_mobile_method_specific_output.rb +21 -18
  338. data/lib/ingenico/connect/sdk/domain/payment/refund_output.rb +69 -66
  339. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_customer_account.rb +33 -30
  340. data/lib/ingenico/connect/sdk/domain/payment/refund_payment_product840_specific_output.rb +22 -19
  341. data/lib/ingenico/connect/sdk/domain/payment/scheme_token_data.rb +52 -49
  342. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_input.rb +58 -55
  343. data/lib/ingenico/connect/sdk/domain/payment/sdk_data_output.rb +21 -18
  344. data/lib/ingenico/connect/sdk/domain/payment/seller.rb +102 -99
  345. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input.rb +64 -61
  346. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_input_base.rb +22 -19
  347. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_method_specific_output.rb +35 -32
  348. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input.rb +28 -25
  349. data/lib/ingenico/connect/sdk/domain/payment/sepa_direct_debit_payment_product771_specific_input_base.rb +28 -25
  350. data/lib/ingenico/connect/sdk/domain/payment/shipping.rb +64 -61
  351. data/lib/ingenico/connect/sdk/domain/payment/shopping_cart.rb +59 -56
  352. data/lib/ingenico/connect/sdk/domain/payment/third_party_data.rb +22 -19
  353. data/lib/ingenico/connect/sdk/domain/payment/third_party_status_response.rb +21 -18
  354. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure.rb +29 -26
  355. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_base.rb +9 -6
  356. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_data.rb +33 -30
  357. data/lib/ingenico/connect/sdk/domain/payment/three_d_secure_results.rb +112 -109
  358. data/lib/ingenico/connect/sdk/domain/payment/tokenize_payment_request.rb +21 -18
  359. data/lib/ingenico/connect/sdk/domain/payment/trustly_bank_account.rb +45 -42
  360. data/lib/ingenico/connect/sdk/domain/payment.rb +5 -0
  361. data/lib/ingenico/connect/sdk/domain/payout/abstract_payout_method_specific_input.rb +9 -6
  362. data/lib/ingenico/connect/sdk/domain/payout/approve_payout_request.rb +21 -18
  363. data/lib/ingenico/connect/sdk/domain/payout/bank_transfer_payout_method_specific_input.rb +56 -53
  364. data/lib/ingenico/connect/sdk/domain/payout/card_payout_method_specific_input.rb +47 -44
  365. data/lib/ingenico/connect/sdk/domain/payout/create_payout_request.rb +126 -123
  366. data/lib/ingenico/connect/sdk/domain/payout/find_payouts_response.rb +47 -44
  367. data/lib/ingenico/connect/sdk/domain/payout/payout_customer.rb +49 -46
  368. data/lib/ingenico/connect/sdk/domain/payout/payout_details.rb +36 -33
  369. data/lib/ingenico/connect/sdk/domain/payout/payout_error_response.rb +37 -34
  370. data/lib/ingenico/connect/sdk/domain/payout/payout_merchant.rb +21 -18
  371. data/lib/ingenico/connect/sdk/domain/payout/payout_recipient.rb +33 -30
  372. data/lib/ingenico/connect/sdk/domain/payout/payout_references.rb +33 -30
  373. data/lib/ingenico/connect/sdk/domain/payout/payout_response.rb +9 -6
  374. data/lib/ingenico/connect/sdk/domain/payout/payout_result.rb +35 -32
  375. data/lib/ingenico/connect/sdk/domain/payout.rb +5 -0
  376. data/lib/ingenico/connect/sdk/domain/product/abstract_indicator.rb +27 -24
  377. data/lib/ingenico/connect/sdk/domain/product/account_on_file.rb +48 -45
  378. data/lib/ingenico/connect/sdk/domain/product/account_on_file_attribute.rb +27 -24
  379. data/lib/ingenico/connect/sdk/domain/product/account_on_file_display_hints.rb +30 -27
  380. data/lib/ingenico/connect/sdk/domain/product/authentication_indicator.rb +9 -6
  381. data/lib/ingenico/connect/sdk/domain/product/boleto_bancario_requiredness_validator.rb +21 -18
  382. data/lib/ingenico/connect/sdk/domain/product/create_payment_product_session_request.rb +22 -19
  383. data/lib/ingenico/connect/sdk/domain/product/create_payment_product_session_response.rb +22 -19
  384. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_request.rb +21 -18
  385. data/lib/ingenico/connect/sdk/domain/product/device_fingerprint_response.rb +27 -24
  386. data/lib/ingenico/connect/sdk/domain/product/directory.rb +24 -21
  387. data/lib/ingenico/connect/sdk/domain/product/directory_entry.rb +47 -44
  388. data/lib/ingenico/connect/sdk/domain/product/empty_validator.rb +9 -6
  389. data/lib/ingenico/connect/sdk/domain/product/fixed_list_validator.rb +24 -21
  390. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_request.rb +30 -27
  391. data/lib/ingenico/connect/sdk/domain/product/get_customer_details_response.rb +75 -72
  392. data/lib/ingenico/connect/sdk/domain/product/label_template_element.rb +27 -24
  393. data/lib/ingenico/connect/sdk/domain/product/length_validator.rb +27 -24
  394. data/lib/ingenico/connect/sdk/domain/product/mobile_payment_product_session302_specific_input.rb +33 -30
  395. data/lib/ingenico/connect/sdk/domain/product/mobile_payment_product_session302_specific_output.rb +21 -18
  396. data/lib/ingenico/connect/sdk/domain/product/payment_product.rb +203 -200
  397. data/lib/ingenico/connect/sdk/domain/product/payment_product302_specific_data.rb +24 -21
  398. data/lib/ingenico/connect/sdk/domain/product/payment_product320_specific_data.rb +30 -27
  399. data/lib/ingenico/connect/sdk/domain/product/payment_product863_specific_data.rb +24 -21
  400. data/lib/ingenico/connect/sdk/domain/product/payment_product_display_hints.rb +33 -30
  401. data/lib/ingenico/connect/sdk/domain/product/payment_product_field.rb +47 -44
  402. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_data_restrictions.rb +28 -25
  403. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_element.rb +45 -42
  404. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_display_hints.rb +77 -74
  405. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_form_element.rb +30 -27
  406. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_tooltip.rb +27 -24
  407. data/lib/ingenico/connect/sdk/domain/product/payment_product_field_validators.rb +92 -89
  408. data/lib/ingenico/connect/sdk/domain/product/payment_product_group.rb +59 -56
  409. data/lib/ingenico/connect/sdk/domain/product/payment_product_group_response.rb +9 -6
  410. data/lib/ingenico/connect/sdk/domain/product/payment_product_groups.rb +24 -21
  411. data/lib/ingenico/connect/sdk/domain/product/payment_product_networks_response.rb +24 -21
  412. data/lib/ingenico/connect/sdk/domain/product/payment_product_response.rb +9 -6
  413. data/lib/ingenico/connect/sdk/domain/product/payment_products.rb +24 -21
  414. data/lib/ingenico/connect/sdk/domain/product/range_validator.rb +27 -24
  415. data/lib/ingenico/connect/sdk/domain/product/regular_expression_validator.rb +21 -18
  416. data/lib/ingenico/connect/sdk/domain/product/value_mapping_element.rb +38 -35
  417. data/lib/ingenico/connect/sdk/domain/product.rb +5 -0
  418. data/lib/ingenico/connect/sdk/domain/refund/approve_refund_request.rb +21 -18
  419. data/lib/ingenico/connect/sdk/domain/refund/bank_account_bban_refund.rb +33 -30
  420. data/lib/ingenico/connect/sdk/domain/refund/bank_refund_method_specific_input.rb +35 -32
  421. data/lib/ingenico/connect/sdk/domain/refund/find_refunds_response.rb +47 -44
  422. data/lib/ingenico/connect/sdk/domain/refund/refund_customer.rb +48 -45
  423. data/lib/ingenico/connect/sdk/domain/refund/refund_error_response.rb +37 -34
  424. data/lib/ingenico/connect/sdk/domain/refund/refund_references.rb +21 -18
  425. data/lib/ingenico/connect/sdk/domain/refund/refund_request.rb +49 -46
  426. data/lib/ingenico/connect/sdk/domain/refund/refund_response.rb +9 -6
  427. data/lib/ingenico/connect/sdk/domain/refund/refund_result.rb +35 -32
  428. data/lib/ingenico/connect/sdk/domain/refund/refunds_response.rb +24 -21
  429. data/lib/ingenico/connect/sdk/domain/refund.rb +5 -0
  430. data/lib/ingenico/connect/sdk/domain/riskassessments/contact_details_risk_assessment.rb +21 -18
  431. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_account_risk_assessment.rb +27 -24
  432. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_device_risk_assessment.rb +27 -24
  433. data/lib/ingenico/connect/sdk/domain/riskassessments/customer_risk_assessment.rb +77 -74
  434. data/lib/ingenico/connect/sdk/domain/riskassessments/merchant_risk_assessment.rb +21 -18
  435. data/lib/ingenico/connect/sdk/domain/riskassessments/order_risk_assessment.rb +43 -40
  436. data/lib/ingenico/connect/sdk/domain/riskassessments/personal_information_risk_assessment.rb +22 -19
  437. data/lib/ingenico/connect/sdk/domain/riskassessments/personal_name_risk_assessment.rb +9 -6
  438. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment.rb +48 -45
  439. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_bank_account.rb +29 -26
  440. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_card.rb +22 -19
  441. data/lib/ingenico/connect/sdk/domain/riskassessments/risk_assessment_response.rb +24 -21
  442. data/lib/ingenico/connect/sdk/domain/riskassessments/shipping_risk_assessment.rb +34 -31
  443. data/lib/ingenico/connect/sdk/domain/riskassessments.rb +5 -0
  444. data/lib/ingenico/connect/sdk/domain/services/bank_data.rb +45 -42
  445. data/lib/ingenico/connect/sdk/domain/services/bank_details.rb +29 -26
  446. data/lib/ingenico/connect/sdk/domain/services/bank_details_request.rb +9 -6
  447. data/lib/ingenico/connect/sdk/domain/services/bank_details_response.rb +43 -40
  448. data/lib/ingenico/connect/sdk/domain/services/convert_amount.rb +21 -18
  449. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_request.rb +28 -25
  450. data/lib/ingenico/connect/sdk/domain/services/get_iin_details_response.rb +47 -44
  451. data/lib/ingenico/connect/sdk/domain/services/get_privacy_policy_response.rb +21 -18
  452. data/lib/ingenico/connect/sdk/domain/services/iin_detail.rb +27 -24
  453. data/lib/ingenico/connect/sdk/domain/services/payment_context.rb +46 -43
  454. data/lib/ingenico/connect/sdk/domain/services/swift.rb +75 -72
  455. data/lib/ingenico/connect/sdk/domain/services/test_connection.rb +21 -18
  456. data/lib/ingenico/connect/sdk/domain/services.rb +5 -0
  457. data/lib/ingenico/connect/sdk/domain/sessions/payment_product_filters_client_session.rb +29 -26
  458. data/lib/ingenico/connect/sdk/domain/sessions/session_request.rb +31 -28
  459. data/lib/ingenico/connect/sdk/domain/sessions/session_response.rb +54 -51
  460. data/lib/ingenico/connect/sdk/domain/sessions.rb +5 -0
  461. data/lib/ingenico/connect/sdk/domain/token/abstract_token.rb +21 -18
  462. data/lib/ingenico/connect/sdk/domain/token/approve_token_request.rb +9 -6
  463. data/lib/ingenico/connect/sdk/domain/token/contact_details_token.rb +9 -6
  464. data/lib/ingenico/connect/sdk/domain/token/create_token_request.rb +55 -52
  465. data/lib/ingenico/connect/sdk/domain/token/create_token_response.rb +33 -30
  466. data/lib/ingenico/connect/sdk/domain/token/creditor.rb +81 -78
  467. data/lib/ingenico/connect/sdk/domain/token/customer_token.rb +29 -26
  468. data/lib/ingenico/connect/sdk/domain/token/customer_token_with_contact_details.rb +22 -19
  469. data/lib/ingenico/connect/sdk/domain/token/debtor.rb +81 -78
  470. data/lib/ingenico/connect/sdk/domain/token/mandate_approval.rb +33 -30
  471. data/lib/ingenico/connect/sdk/domain/token/mandate_non_sepa_direct_debit.rb +29 -26
  472. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit.rb +22 -19
  473. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_with_mandate_id.rb +21 -18
  474. data/lib/ingenico/connect/sdk/domain/token/mandate_sepa_direct_debit_without_creditor.rb +54 -51
  475. data/lib/ingenico/connect/sdk/domain/token/personal_information_token.rb +22 -19
  476. data/lib/ingenico/connect/sdk/domain/token/personal_name_token.rb +9 -6
  477. data/lib/ingenico/connect/sdk/domain/token/token_card.rb +29 -26
  478. data/lib/ingenico/connect/sdk/domain/token/token_card_data.rb +34 -31
  479. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet.rb +29 -26
  480. data/lib/ingenico/connect/sdk/domain/token/token_e_wallet_data.rb +21 -18
  481. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit.rb +29 -26
  482. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product705_specific_data.rb +28 -25
  483. data/lib/ingenico/connect/sdk/domain/token/token_non_sepa_direct_debit_payment_product730_specific_data.rb +22 -19
  484. data/lib/ingenico/connect/sdk/domain/token/token_response.rb +61 -58
  485. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit.rb +29 -26
  486. data/lib/ingenico/connect/sdk/domain/token/token_sepa_direct_debit_without_creditor.rb +29 -26
  487. data/lib/ingenico/connect/sdk/domain/token/update_token_request.rb +49 -46
  488. data/lib/ingenico/connect/sdk/domain/token.rb +5 -0
  489. data/lib/ingenico/connect/sdk/domain.rb +1 -0
  490. data/lib/ingenico/connect/sdk/endpoint_configuration.rb +120 -116
  491. data/lib/ingenico/connect/sdk/exceptions.rb +1 -8
  492. data/lib/ingenico/connect/sdk/factory.rb +193 -182
  493. data/lib/ingenico/connect/sdk/global_collect_exception.rb +15 -10
  494. data/lib/ingenico/connect/sdk/idempotence_exception.rb +23 -19
  495. data/lib/ingenico/connect/sdk/logging/communicator_logger.rb +20 -16
  496. data/lib/ingenico/connect/sdk/logging/log_message_builder.rb +73 -67
  497. data/lib/ingenico/connect/sdk/logging/logging_capable.rb +12 -12
  498. data/lib/ingenico/connect/sdk/logging/logging_util.rb +304 -297
  499. data/lib/ingenico/connect/sdk/logging/obfuscation/body_obfuscator.rb +83 -79
  500. data/lib/ingenico/connect/sdk/logging/obfuscation/header_obfuscator.rb +42 -38
  501. data/lib/ingenico/connect/sdk/logging/obfuscation/obfuscation_capable.rb +17 -12
  502. data/lib/ingenico/connect/sdk/logging/obfuscation/obfuscation_rule.rb +40 -36
  503. data/lib/ingenico/connect/sdk/logging/obfuscation.rb +1 -0
  504. data/lib/ingenico/connect/sdk/logging/request_log_message_builder.rb +42 -34
  505. data/lib/ingenico/connect/sdk/logging/response_log_message_builder.rb +35 -29
  506. data/lib/ingenico/connect/sdk/logging/ruby_communicator_logger.rb +51 -47
  507. data/lib/ingenico/connect/sdk/logging/stdout_communicator_logger.rb +26 -22
  508. data/lib/ingenico/connect/sdk/logging.rb +1 -14
  509. data/lib/ingenico/connect/sdk/marshaller.rb +22 -19
  510. data/lib/ingenico/connect/sdk/marshaller_syntax_exception.rb +7 -4
  511. data/lib/ingenico/connect/sdk/merchant/captures/captures_client.rb +75 -72
  512. data/lib/ingenico/connect/sdk/merchant/captures.rb +5 -0
  513. data/lib/ingenico/connect/sdk/merchant/disputes/disputes_client.rb +134 -131
  514. data/lib/ingenico/connect/sdk/merchant/disputes/upload_file_request.rb +17 -14
  515. data/lib/ingenico/connect/sdk/merchant/disputes.rb +5 -0
  516. data/lib/ingenico/connect/sdk/merchant/files/files_client.rb +43 -40
  517. data/lib/ingenico/connect/sdk/merchant/files.rb +5 -0
  518. data/lib/ingenico/connect/sdk/merchant/hostedcheckouts/hostedcheckouts_client.rb +98 -95
  519. data/lib/ingenico/connect/sdk/merchant/hostedcheckouts.rb +5 -0
  520. data/lib/ingenico/connect/sdk/merchant/hostedmandatemanagements/hostedmandatemanagements_client.rb +70 -67
  521. data/lib/ingenico/connect/sdk/merchant/hostedmandatemanagements.rb +5 -0
  522. data/lib/ingenico/connect/sdk/merchant/installments/installments_client.rb +41 -38
  523. data/lib/ingenico/connect/sdk/merchant/installments.rb +5 -0
  524. data/lib/ingenico/connect/sdk/merchant/mandates/mandates_client.rb +191 -188
  525. data/lib/ingenico/connect/sdk/merchant/mandates.rb +5 -0
  526. data/lib/ingenico/connect/sdk/merchant/merchant_client.rb +110 -107
  527. data/lib/ingenico/connect/sdk/merchant/payments/find_payments_params.rb +35 -32
  528. data/lib/ingenico/connect/sdk/merchant/payments/payments_client.rb +519 -516
  529. data/lib/ingenico/connect/sdk/merchant/payments.rb +5 -0
  530. data/lib/ingenico/connect/sdk/merchant/payouts/find_payouts_params.rb +26 -23
  531. data/lib/ingenico/connect/sdk/merchant/payouts/payouts_client.rb +186 -183
  532. data/lib/ingenico/connect/sdk/merchant/payouts.rb +5 -0
  533. data/lib/ingenico/connect/sdk/merchant/productgroups/find_productgroups_params.rb +49 -46
  534. data/lib/ingenico/connect/sdk/merchant/productgroups/get_productgroup_params.rb +49 -46
  535. data/lib/ingenico/connect/sdk/merchant/productgroups/productgroups_client.rb +101 -98
  536. data/lib/ingenico/connect/sdk/merchant/productgroups.rb +5 -0
  537. data/lib/ingenico/connect/sdk/merchant/products/directory_params.rb +20 -17
  538. data/lib/ingenico/connect/sdk/merchant/products/find_products_params.rb +49 -46
  539. data/lib/ingenico/connect/sdk/merchant/products/get_product_params.rb +44 -41
  540. data/lib/ingenico/connect/sdk/merchant/products/networks_params.rb +26 -23
  541. data/lib/ingenico/connect/sdk/merchant/products/products_client.rb +223 -220
  542. data/lib/ingenico/connect/sdk/merchant/products.rb +5 -0
  543. data/lib/ingenico/connect/sdk/merchant/refunds/find_refunds_params.rb +35 -32
  544. data/lib/ingenico/connect/sdk/merchant/refunds/refunds_client.rb +157 -154
  545. data/lib/ingenico/connect/sdk/merchant/refunds.rb +5 -0
  546. data/lib/ingenico/connect/sdk/merchant/riskassessments/riskassessments_client.rb +68 -65
  547. data/lib/ingenico/connect/sdk/merchant/riskassessments.rb +5 -0
  548. data/lib/ingenico/connect/sdk/merchant/services/convert_amount_params.rb +23 -20
  549. data/lib/ingenico/connect/sdk/merchant/services/privacypolicy_params.rb +20 -17
  550. data/lib/ingenico/connect/sdk/merchant/services/services_client.rb +145 -142
  551. data/lib/ingenico/connect/sdk/merchant/services.rb +5 -0
  552. data/lib/ingenico/connect/sdk/merchant/sessions/sessions_client.rb +41 -38
  553. data/lib/ingenico/connect/sdk/merchant/sessions.rb +5 -0
  554. data/lib/ingenico/connect/sdk/merchant/tokens/delete_token_params.rb +17 -14
  555. data/lib/ingenico/connect/sdk/merchant/tokens/tokens_client.rb +159 -156
  556. data/lib/ingenico/connect/sdk/merchant/tokens.rb +5 -0
  557. data/lib/ingenico/connect/sdk/merchant.rb +5 -0
  558. data/lib/ingenico/connect/sdk/meta_data_provider.rb +151 -146
  559. data/lib/ingenico/connect/sdk/multipart_form_data_object.rb +36 -33
  560. data/lib/ingenico/connect/sdk/multipart_form_data_request.rb +10 -6
  561. data/lib/ingenico/connect/sdk/not_found_exception.rb +14 -11
  562. data/lib/ingenico/connect/sdk/param_request.rb +11 -8
  563. data/lib/ingenico/connect/sdk/pooled_connection.rb +20 -15
  564. data/lib/ingenico/connect/sdk/proxy_configuration.rb +63 -61
  565. data/lib/ingenico/connect/sdk/reference_exception.rb +14 -9
  566. data/lib/ingenico/connect/sdk/request_header.rb +52 -44
  567. data/lib/ingenico/connect/sdk/request_param.rb +22 -19
  568. data/lib/ingenico/connect/sdk/response_exception.rb +46 -41
  569. data/lib/ingenico/connect/sdk/response_header.rb +63 -55
  570. data/lib/ingenico/connect/sdk/session.rb +34 -31
  571. data/lib/ingenico/connect/sdk/uploadable_file.rb +23 -20
  572. data/lib/ingenico/connect/sdk/validation_exception.rb +14 -9
  573. data/lib/ingenico/connect/sdk/webhooks/api_version_mismatch_exception.rb +19 -15
  574. data/lib/ingenico/connect/sdk/webhooks/in_memory_secret_key_store.rb +49 -44
  575. data/lib/ingenico/connect/sdk/webhooks/secret_key_not_available_exception.rb +18 -12
  576. data/lib/ingenico/connect/sdk/webhooks/secret_key_store.rb +15 -11
  577. data/lib/ingenico/connect/sdk/webhooks/signature_validation_exception.rb +17 -14
  578. data/lib/ingenico/connect/sdk/webhooks/signature_validator.rb +83 -0
  579. data/lib/ingenico/connect/sdk/webhooks/webhooks.rb +20 -15
  580. data/lib/ingenico/connect/sdk/webhooks/webhooks_event.rb +60 -50
  581. data/lib/ingenico/connect/sdk/webhooks/webhooks_helper.rb +43 -94
  582. data/lib/ingenico/connect/sdk/webhooks/webhooks_helper_builder.rb +22 -17
  583. data/lib/ingenico/connect/sdk/webhooks.rb +1 -11
  584. data/lib/ingenico/connect/sdk.rb +1 -30
  585. data/spec/integration/connection_pooling_spec.rb +1 -1
  586. data/spec/lib/defaultimpl/default_connection_logger_spec.rb +17 -17
  587. data/spec/lib/webhooks/webhooks_spec.rb +2 -1
  588. metadata +40 -2
@@ -1,151 +1,156 @@
1
- require 'ingenico/connect/sdk/domain/metadata/shopping_cart_extension'
2
1
  require 'base64'
3
-
4
- module Ingenico::Connect::SDK
5
-
6
- # Manages metadata about the server using the SDK
7
- #
8
- # @attr_reader [Array<Ingenico::Connect::SDK::RequestHeader>] meta_data_headers List of headers that should be used in all requests.
9
- class MetaDataProvider
10
- @@SDK_VERSION = '2.45.0'
11
- @@SERVER_META_INFO_HEADER = 'X-GCS-ServerMetaInfo'
12
- @@PROHIBITED_HEADERS = [@@SERVER_META_INFO_HEADER, 'X-GCS-Idempotence-Key',
13
- 'Date', 'Content-Type', 'Authorization'].sort!.freeze
14
- @@CHARSET = 'utf-8'
15
-
16
- # Stores metadata about the server so it can be sent to the Ingenico ePayments platform
17
- class ServerMetaInfo < DataObject
18
- @platform_identifier = nil
19
- @sdk_identifier = nil
20
- @sdk_creator = nil
21
- @integrator = nil
22
- @shopping_cart_extension = nil
23
-
24
- # String containing system information (Operating system and Ruby version).
25
- attr_accessor :platform_identifier
26
-
27
- # String containing this SDK version.
28
- attr_accessor :sdk_identifier
29
-
30
- attr_accessor :sdk_creator
31
-
32
- attr_accessor :integrator
33
-
34
- attr_accessor :shopping_cart_extension
35
-
36
- # Returns the values of all attributes as a hash.
37
- def to_h
38
- hash = super
39
- hash['platformIdentifier'] = @platform_identifier unless @platform_identifier.nil?
40
- hash['sdkIdentifier'] = @sdk_identifier unless @sdk_identifier.nil?
41
- hash['sdkCreator'] = @sdk_creator unless @sdk_creator.nil?
42
- hash['integrator'] = @integrator unless @integrator.nil?
43
- hash['shoppingCartExtension'] = @shopping_cart_extension.to_h unless @shopping_cart_extension.nil?
44
- hash
45
- end
46
-
47
- # Initializes the ServerMetaInfo object with properties stored in the parameter hash
48
- def from_hash(hash)
49
- super
50
- @platform_identifier = hash['platformIdentifier'] if hash.has_key? 'platformIdentifier'
51
- @sdk_identifier = hash['sdkIdentifier'] if hash.has_key? 'sdkIdentifier'
52
- @sdk_creator = hash['sdkCreator'] if hash.has_key? 'sdkCreator'
53
- @integrator = hash['integrator'] if hash.has_key? 'integrator'
54
- @shopping_cart_extension = Domain::Metadata::ShoppingCartExtension.new_from_hash(hash['shoppingCartExtension']) if hash.has_key? 'shoppingCartExtension'
55
- end
56
- end
57
-
58
- # Create a new MetaDataProvider instance that can be used to access platform-related information
59
- #
60
- # @param integrator [String] Name of the integrator
61
- # @param shopping_cart_extension [Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension] shopping cart-related metadata.
62
- # @param additional_request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] list of additional headers to include in all requests made.
63
- # The following headers are not allowed due to conflicts with already added headers:
64
- # 'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
65
- def initialize(integrator, shopping_cart_extension: nil, additional_request_headers: [].freeze)
66
-
67
- MetaDataProvider.validate_additional_request_headers(additional_request_headers)
68
- server_meta_info = ServerMetaInfo.new
69
- server_meta_info.platform_identifier = get_platform_identifier
70
- server_meta_info.sdk_identifier = get_sdk_identifier
71
- server_meta_info.sdk_creator = 'Ingenico'
72
- server_meta_info.integrator = integrator
73
- server_meta_info.shopping_cart_extension = shopping_cart_extension unless shopping_cart_extension.nil?
74
- server_meta_info_string = DefaultImpl::DefaultMarshaller.INSTANCE.marshal(server_meta_info)
75
- server_meta_info_header = RequestHeader.new(
76
- @@SERVER_META_INFO_HEADER, Base64.strict_encode64(
77
- server_meta_info_string.force_encoding('iso-8859-1').encode(@@CHARSET)))
78
- if additional_request_headers.nil? || additional_request_headers.empty?
79
- @meta_data_headers = [server_meta_info_header].freeze
80
- else
81
- request_headers = [server_meta_info_header]
82
- request_headers += additional_request_headers
83
- @meta_data_headers = request_headers.freeze
84
- end
85
- end
86
-
87
- # Checks that none of the {Ingenico::Connect::SDK::RequestHeaders} in _additional_request_headers_ is equal to any of the forbidden headers.
88
- # The forbidden headers are:
89
- #'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
90
- # If a header is found that is equal to one of the forbidden headers an ArgumentError is raised.
91
- def self.validate_additional_request_headers(additional_request_headers)
92
- unless additional_request_headers.nil?
93
- additional_request_headers.each { |additional_request_header|
94
- validate_additional_request_header(additional_request_header)
95
- }
96
- end
97
- end
98
-
99
- # Checks that the {Ingenico::Connect::SDK::RequestHeaders} _additional_request_header_ is equal to any of the forbidden headers.
100
- # The forbidden headers are:
101
- #'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
102
- # If the header is equal to one of the forbidden headers an ArgumentError is raised.
103
- def self.validate_additional_request_header(additional_request_header)
104
- if MetaDataProvider.PROHIBITED_HEADERS.include? additional_request_header.name
105
- raise ArgumentError.new('request header not allowed' + additional_request_header.name)
106
- end
107
- end
108
-
109
- protected
110
-
111
- # String containing information of the system using the SDK.
112
- # It contains data like Operating System version and Ruby version
113
- def get_platform_identifier
114
- config = RbConfig::CONFIG['host_os']
115
- if config.include? 'mingw'
116
- s = 'Windows'
117
- elsif config.include? 'linux'
118
- s = 'Linux'
119
- else
120
- s = 'Mac OS X'
2
+ require 'ingenico/connect/sdk/data_object'
3
+ require 'ingenico/connect/sdk/defaultimpl/default_marshaller'
4
+ require 'ingenico/connect/sdk/domain/metadata/shopping_cart_extension'
5
+ require 'ingenico/connect/sdk/request_header'
6
+
7
+ module Ingenico
8
+ module Connect
9
+ module SDK
10
+ # Manages metadata about the server using the SDK
11
+ #
12
+ # @attr_reader [Array<Ingenico::Connect::SDK::RequestHeader>] meta_data_headers List of headers that should be used in all requests.
13
+ class MetaDataProvider
14
+ @@SDK_VERSION = '2.46.0'
15
+ @@SERVER_META_INFO_HEADER = 'X-GCS-ServerMetaInfo'
16
+ @@PROHIBITED_HEADERS = [@@SERVER_META_INFO_HEADER, 'X-GCS-Idempotence-Key',
17
+ 'Date', 'Content-Type', 'Authorization'].sort!.freeze
18
+ @@CHARSET = 'utf-8'
19
+
20
+ # Stores metadata about the server so it can be sent to the Ingenico ePayments platform
21
+ class ServerMetaInfo < DataObject
22
+ @platform_identifier = nil
23
+ @sdk_identifier = nil
24
+ @sdk_creator = nil
25
+ @integrator = nil
26
+ @shopping_cart_extension = nil
27
+
28
+ # String containing system information (Operating system and Ruby version).
29
+ attr_accessor :platform_identifier
30
+
31
+ # String containing this SDK version.
32
+ attr_accessor :sdk_identifier
33
+
34
+ attr_accessor :sdk_creator
35
+
36
+ attr_accessor :integrator
37
+
38
+ attr_accessor :shopping_cart_extension
39
+
40
+ # Returns the values of all attributes as a hash.
41
+ def to_h
42
+ hash = super
43
+ hash['platformIdentifier'] = @platform_identifier unless @platform_identifier.nil?
44
+ hash['sdkIdentifier'] = @sdk_identifier unless @sdk_identifier.nil?
45
+ hash['sdkCreator'] = @sdk_creator unless @sdk_creator.nil?
46
+ hash['integrator'] = @integrator unless @integrator.nil?
47
+ hash['shoppingCartExtension'] = @shopping_cart_extension.to_h unless @shopping_cart_extension.nil?
48
+ hash
49
+ end
50
+
51
+ # Initializes the ServerMetaInfo object with properties stored in the parameter hash
52
+ def from_hash(hash)
53
+ super
54
+ @platform_identifier = hash['platformIdentifier'] if hash.has_key? 'platformIdentifier'
55
+ @sdk_identifier = hash['sdkIdentifier'] if hash.has_key? 'sdkIdentifier'
56
+ @sdk_creator = hash['sdkCreator'] if hash.has_key? 'sdkCreator'
57
+ @integrator = hash['integrator'] if hash.has_key? 'integrator'
58
+ @shopping_cart_extension = Domain::Metadata::ShoppingCartExtension.new_from_hash(hash['shoppingCartExtension']) if hash.has_key? 'shoppingCartExtension'
59
+ end
60
+ end
61
+
62
+ # Create a new MetaDataProvider instance that can be used to access platform-related information
63
+ #
64
+ # @param integrator [String] Name of the integrator
65
+ # @param shopping_cart_extension [Ingenico::Connect::SDK::Domain::Metadata::ShoppingCartExtension] shopping cart-related metadata.
66
+ # @param additional_request_headers [Array<Ingenico::Connect::SDK::RequestHeader>] list of additional headers to include in all requests made.
67
+ # The following headers are not allowed due to conflicts with already added headers:
68
+ # 'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
69
+ def initialize(integrator, shopping_cart_extension: nil, additional_request_headers: [].freeze)
70
+
71
+ MetaDataProvider.validate_additional_request_headers(additional_request_headers)
72
+ server_meta_info = ServerMetaInfo.new
73
+ server_meta_info.platform_identifier = get_platform_identifier
74
+ server_meta_info.sdk_identifier = get_sdk_identifier
75
+ server_meta_info.sdk_creator = 'Ingenico'
76
+ server_meta_info.integrator = integrator
77
+ server_meta_info.shopping_cart_extension = shopping_cart_extension unless shopping_cart_extension.nil?
78
+ server_meta_info_string = DefaultImpl::DefaultMarshaller.INSTANCE.marshal(server_meta_info)
79
+ server_meta_info_header = RequestHeader.new(
80
+ @@SERVER_META_INFO_HEADER, Base64.strict_encode64(
81
+ server_meta_info_string.force_encoding('iso-8859-1').encode(@@CHARSET)))
82
+ if additional_request_headers.nil? || additional_request_headers.empty?
83
+ @meta_data_headers = [server_meta_info_header].freeze
84
+ else
85
+ request_headers = [server_meta_info_header]
86
+ request_headers += additional_request_headers
87
+ @meta_data_headers = request_headers.freeze
88
+ end
89
+ end
90
+
91
+ # Checks that none of the {Ingenico::Connect::SDK::RequestHeaders} in _additional_request_headers_ is equal to any of the forbidden headers.
92
+ # The forbidden headers are:
93
+ #'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
94
+ # If a header is found that is equal to one of the forbidden headers an ArgumentError is raised.
95
+ def self.validate_additional_request_headers(additional_request_headers)
96
+ unless additional_request_headers.nil?
97
+ additional_request_headers.each { |additional_request_header|
98
+ validate_additional_request_header(additional_request_header)
99
+ }
100
+ end
101
+ end
102
+
103
+ # Checks that the {Ingenico::Connect::SDK::RequestHeaders} _additional_request_header_ is equal to any of the forbidden headers.
104
+ # The forbidden headers are:
105
+ #'X-GCS-Idempotence-Key', 'Date', 'Content-Type', 'Authorization' and 'X-GCS-ServerMetaInfo'
106
+ # If the header is equal to one of the forbidden headers an ArgumentError is raised.
107
+ def self.validate_additional_request_header(additional_request_header)
108
+ if MetaDataProvider.PROHIBITED_HEADERS.include? additional_request_header.name
109
+ raise ArgumentError.new('request header not allowed' + additional_request_header.name)
110
+ end
111
+ end
112
+
113
+ protected
114
+
115
+ # String containing information of the system using the SDK.
116
+ # It contains data like Operating System version and Ruby version
117
+ def get_platform_identifier
118
+ config = RbConfig::CONFIG['host_os']
119
+ if config.include? 'mingw'
120
+ s = 'Windows'
121
+ elsif config.include? 'linux'
122
+ s = 'Linux'
123
+ else
124
+ s = 'Mac OS X'
125
+ end
126
+ s + '/' + RUBY_DESCRIPTION
127
+ end
128
+
129
+ # String describing the version of the SDK being used
130
+ def get_sdk_identifier
131
+ 'RubyServerSDK/v' + @@SDK_VERSION
132
+ end
133
+
134
+ public
135
+
136
+ # Version of this SDK being used
137
+ def self.SDK_VERSION
138
+ @@SDK_VERSION
139
+ end
140
+
141
+ # A {Ingenico::Connect::SDK::RequestHeader} that contains serialized and encoded {Ingenico::Connect::SDK::MetaDataProvider::ServerMetaInfo}.
142
+ def self.SERVER_META_INFO_HEADER
143
+ @@SERVER_META_INFO_HEADER
144
+ end
145
+
146
+ # A list of header names that should not be used by any added headers.
147
+ # These headers are reserved for specific purposes.
148
+ def self.PROHIBITED_HEADERS
149
+ @@PROHIBITED_HEADERS
150
+ end
151
+
152
+ attr_reader :meta_data_headers
121
153
  end
122
- s += '/' + RUBY_DESCRIPTION
123
- s
124
154
  end
125
-
126
- # String describing the version of the SDK being used
127
- def get_sdk_identifier
128
- 'RubyServerSDK/v' + @@SDK_VERSION
129
- end
130
-
131
- public
132
-
133
- # Version of this SDK being used
134
- def self.SDK_VERSION
135
- @@SDK_VERSION
136
- end
137
-
138
- # A {Ingenico::Connect::SDK::RequestHeader} that contains serialized and encoded {Ingenico::Connect::SDK::MetaDataProvider::ServerMetaInfo}.
139
- def self.SERVER_META_INFO_HEADER
140
- @@SERVER_META_INFO_HEADER
141
- end
142
-
143
- # A list of header names that should not be used by any added headers.
144
- # These headers are reserved for specific purposes.
145
- def self.PROHIBITED_HEADERS
146
- @@PROHIBITED_HEADERS
147
- end
148
-
149
- attr_reader :meta_data_headers
150
155
  end
151
156
  end
@@ -1,44 +1,47 @@
1
1
  require 'securerandom'
2
2
 
3
- module Ingenico::Connect::SDK
3
+ module Ingenico
4
+ module Connect
5
+ module SDK
6
+ # A representation of a multipart/form-data object
7
+ class MultipartFormDataObject
8
+ def initialize
9
+ @boundary = SecureRandom.uuid
10
+ @content_type = 'multipart/form-data; boundary=' + @boundary
11
+ @values = {}
12
+ @files = {}
13
+ end
4
14
 
5
- # A representation of a multipart/form-data object
6
- class MultipartFormDataObject
7
- def initialize
8
- @boundary = SecureRandom.uuid
9
- @content_type = 'multipart/form-data; boundary=' + @boundary
10
- @values = {}
11
- @files = {}
12
- end
15
+ attr_reader :boundary
16
+ attr_reader :content_type
17
+ attr_reader :values
18
+ attr_reader :files
13
19
 
14
- attr_reader :boundary
15
- attr_reader :content_type
16
- attr_reader :values
17
- attr_reader :files
20
+ def add_value(parameter_name, value)
21
+ if parameter_name.nil? || parameter_name.strip.empty?
22
+ raise ArgumentError, 'parameter_name is required'
23
+ end
24
+ raise ArgumentError, 'value is required' if value.nil?
25
+ if @values.include?(parameter_name) || @files.include?(parameter_name)
26
+ raise ArgumentError, 'duplicate parameterName: ' + parameter_name
27
+ end
18
28
 
19
- def add_value(parameter_name, value)
20
- if parameter_name.nil? || parameter_name.strip.empty?
21
- raise ArgumentError, 'parameter_name is required'
22
- end
23
- raise ArgumentError, 'value is required' if value.nil?
24
- if @values.include?(parameter_name) || @files.include?(parameter_name)
25
- raise ArgumentError, 'duplicate parameterName: ' + parameter_name
26
- end
29
+ @values[parameter_name] = value
30
+ end
27
31
 
28
- @values[parameter_name] = value
29
- end
32
+ # Adds a file to the multipart Form Data Object
33
+ def add_file(parameter_name, uploadable_file)
34
+ if parameter_name.nil? || parameter_name.strip.empty?
35
+ raise ArgumentError, 'parameter_name is required'
36
+ end
37
+ raise ArgumentError, 'uploadable_file is required' if uploadable_file.nil?
38
+ if @values.include?(parameter_name) || @files.include?(parameter_name)
39
+ raise ArgumentError, 'duplicate parameterName: ' + parameter_name
40
+ end
30
41
 
31
- # Adds a file to the multipart Form Data Object
32
- def add_file(parameter_name, uploadable_file)
33
- if parameter_name.nil? || parameter_name.strip.empty?
34
- raise ArgumentError, 'parameter_name is required'
35
- end
36
- raise ArgumentError, 'uploadable_file is required' if uploadable_file.nil?
37
- if @values.include?(parameter_name) || @files.include?(parameter_name)
38
- raise ArgumentError, 'duplicate parameterName: ' + parameter_name
42
+ @files[parameter_name] = uploadable_file
43
+ end
39
44
  end
40
-
41
- @files[parameter_name] = uploadable_file
42
45
  end
43
46
  end
44
47
  end
@@ -1,9 +1,13 @@
1
- module Ingenico::Connect::SDK
2
- # A representation of a multipart/form-data request
3
- class MultipartFormDataRequest
4
- # @return [Ingenico::Connect::SDK::MultipartFormDataObject]
5
- def to_multipart_form_data_object
6
- raise NotImplementedError
1
+ module Ingenico
2
+ module Connect
3
+ module SDK
4
+ # A representation of a multipart/form-data request
5
+ class MultipartFormDataRequest
6
+ # @return [Ingenico::Connect::SDK::MultipartFormDataObject]
7
+ def to_multipart_form_data_object
8
+ raise NotImplementedError
9
+ end
10
+ end
7
11
  end
8
12
  end
9
13
  end
@@ -1,16 +1,19 @@
1
- module Ingenico::Connect::SDK
1
+ module Ingenico
2
+ module Connect
3
+ module SDK
4
+ # Raised when a resource is not found on the Ingenico ePayments platform.
5
+ # This error corresponds to a 404 HTTP response.
6
+ #
7
+ # @attr [Exception] cause The error that is the cause of this error.
8
+ class NotFoundException < RuntimeError
2
9
 
3
- # Raised when a resource is not found on the Ingenico ePayments platform.
4
- # This error corresponds to a 404 HTTP response.
5
- #
6
- # @attr [Exception] cause The error that is the cause of this error.
7
- class NotFoundException < RuntimeError
10
+ def initialize(cause, message = nil)
11
+ super(message)
12
+ @cause = cause
13
+ end
8
14
 
9
- def initialize(cause, message=nil)
10
- super(message)
11
- @cause = cause
15
+ attr_accessor :cause
16
+ end
12
17
  end
13
-
14
- attr_accessor :cause
15
18
  end
16
19
  end
@@ -1,11 +1,14 @@
1
- module Ingenico::Connect::SDK
2
-
3
- # Class that represents the URL request parameters.
4
- # Contains a method to add a name and value pair to a parameter array as a {Ingenico::Connect::SDK::RequestParam}.
5
- class ParamRequest
6
- # @return [Array<Ingenico::Connect::SDK::RequestParam>]
7
- def to_request_parameters
8
- raise NotImplementedError
1
+ module Ingenico
2
+ module Connect
3
+ module SDK
4
+ # Class that represents the URL request parameters.
5
+ # Contains a method to add a name and value pair to a parameter array as a {Ingenico::Connect::SDK::RequestParam}.
6
+ class ParamRequest
7
+ # @return [Array<Ingenico::Connect::SDK::RequestParam>]
8
+ def to_request_parameters
9
+ raise NotImplementedError
10
+ end
11
+ end
9
12
  end
10
13
  end
11
14
  end
@@ -1,21 +1,26 @@
1
- module Ingenico::Connect::SDK
1
+ require 'ingenico/connect/sdk/connection'
2
2
 
3
- # {Ingenico::Connect::SDK::Connection} that supports connection pooling. This is used to more efficiently communicate using HTTP.
4
- # Connection pooling means that a number of connections are kept alive after use so they can possibly be reused.
5
- # If the Connection does not do so automatically,
6
- # the methods _close_idle_connections_ and _close_expired_connections_ can be used to drop connections
7
- # that are idle for a specified amount of time or that have expired.
8
- # @see Ingenico::Connect::SDK::DefaultImpl::DefaultConnection
9
- class PooledConnection < Connection
3
+ module Ingenico
4
+ module Connect
5
+ module SDK
6
+ # {Ingenico::Connect::SDK::Connection} that supports connection pooling. This is used to more efficiently communicate using HTTP.
7
+ # Connection pooling means that a number of connections are kept alive after use so they can possibly be reused.
8
+ # If the Connection does not do so automatically,
9
+ # the methods _close_idle_connections_ and _close_expired_connections_ can be used to drop connections
10
+ # that are idle for a specified amount of time or that have expired.
11
+ # @see Ingenico::Connect::SDK::DefaultImpl::DefaultConnection
12
+ class PooledConnection < Connection
10
13
 
11
- # Closes all connections that have not been used for _idle_time_ seconds.
12
- def close_idle_connections(idle_time)
13
- raise NotImplementedError
14
- end
14
+ # Closes all connections that have not been used for _idle_time_ seconds.
15
+ def close_idle_connections(idle_time)
16
+ raise NotImplementedError
17
+ end
15
18
 
16
- # Closes all connections that have expired.
17
- def close_expired_connections
18
- raise NotImplementedError
19
+ # Closes all connections that have expired.
20
+ def close_expired_connections
21
+ raise NotImplementedError
22
+ end
23
+ end
19
24
  end
20
25
  end
21
26
  end
@@ -1,74 +1,76 @@
1
- module Ingenico::Connect::SDK
1
+ module Ingenico
2
+ module Connect
3
+ module SDK
4
+ # Contains the URL, username and password of a proxy.
5
+ #
6
+ # @attr [String] scheme Proxy scheme (http or https)
7
+ # @attr [String] host Proxy hostname
8
+ # @attr [Integer] port Proxy port
9
+ # @attr [String] username Proxy authentication username
10
+ # @attr [String] password Proxy authentication password
11
+ class ProxyConfiguration
2
12
 
3
- # Contains the URL, username and password of a proxy.
4
- #
5
- # @attr [String] scheme Proxy scheme (http or https)
6
- # @attr [String] host Proxy hostname
7
- # @attr [Integer] port Proxy port
8
- # @attr [String] username Proxy authentication username
9
- # @attr [String] password Proxy authentication password
10
- class ProxyConfiguration
13
+ # Initialize a new ProxyConfiguration from the parameter hash.
14
+ # In order to be complete either host, port and scheme, or an address is required.
15
+ #
16
+ # @param args [Hash] the parameters to initialize the proxy configuration with
17
+ # @option args [String] :host host part of the URL to the proxy.
18
+ # @option args [Integer] :port port the proxy will be accessed through.
19
+ # @option args [String] :scheme HTTP scheme used to communicate with the proxy (http or https).
20
+ # @option args [String] :address full URI to the proxy excluding username and password.
21
+ # If given this uri takes precedence over individual host, port and scheme.
22
+ # @option args [String] :username username used in authentication to the proxy.
23
+ # @option args [String] :password password used to authenticate to the proxy.
24
+ def initialize(args)
25
+ host = args[:host]
26
+ port = args[:port]
27
+ username = args[:username]
28
+ password = args[:password]
29
+ scheme = args[:scheme] || 'http'
11
30
 
12
- # Initialize a new ProxyConfiguration from the parameter hash.
13
- # In order to be complete either host, port and scheme, or an address is required.
14
- #
15
- # @param args [Hash] the parameters to initialize the proxy configuration with
16
- # @option args [String] :host host part of the URL to the proxy.
17
- # @option args [Integer] :port port the proxy will be accessed through.
18
- # @option args [String] :scheme HTTP scheme used to communicate with the proxy (http or https).
19
- # @option args [String] :address full URI to the proxy excluding username and password.
20
- # If given this uri takes precedence over individual host, port and scheme.
21
- # @option args [String] :username username used in authentication to the proxy.
22
- # @option args [String] :password password used to authenticate to the proxy.
23
- def initialize(args)
31
+ # Don't switch the order, a given address overrides host, port and username
32
+ address = args[:address]
33
+ host = address.host if address
34
+ port = address.port if address
35
+ scheme = address.scheme if address
24
36
 
25
- host = args[:host]
26
- port = args[:port]
27
- username = args[:username]
28
- password = args[:password]
29
- scheme = args[:scheme] || 'http'
37
+ raise ArgumentError.new('scheme is required') unless scheme and not scheme.strip.empty?
38
+ raise ArgumentError.new('host is required') unless host and not host.strip.empty?
39
+ raise ArgumentError.new('port is required') unless port and port > 0 and port <= 65535
30
40
 
31
- # Don't switch the order, a given address overrides host, port and username
32
- address = args[:address]
33
- host = address.host if address
34
- port = address.port if address
35
- scheme = address.scheme if address
41
+ @host = host
42
+ @port = port
43
+ @username = username
44
+ @password = password
45
+ @scheme = scheme
46
+ end
36
47
 
37
- raise ArgumentError.new('scheme is required') unless scheme and not scheme.strip.empty?
38
- raise ArgumentError.new('host is required') unless host and not host.strip.empty?
39
- raise ArgumentError.new('port is required') unless port and port > 0 and port <= 65535
48
+ attr_accessor :scheme
49
+ attr_accessor :host
50
+ attr_accessor :port
40
51
 
41
- @host = host
42
- @port = port
43
- @username = username
44
- @password = password
45
- @scheme = scheme
46
- end
47
-
48
- attr_accessor :scheme
49
- attr_accessor :host
50
- attr_accessor :port
52
+ attr_accessor :username
53
+ attr_accessor :password
51
54
 
52
- attr_accessor :username
53
- attr_accessor :password
55
+ # @return [String] a URL string representation of the proxy, excluding authentication.
56
+ def proxy_uri
57
+ "#{scheme}://#{host}:#{port}"
58
+ end
54
59
 
55
- # @return [String] a URL string representation of the proxy, excluding authentication.
56
- def proxy_uri
57
- "#{scheme}://#{host}:#{port}"
58
- end
59
-
60
- def to_s
61
- proxy_uri
62
- end
60
+ def to_s
61
+ proxy_uri
62
+ end
63
63
 
64
- private
64
+ private
65
65
 
66
- def self.get_port(address)
67
- port = address.port
68
- return port if port != -1
69
- return 80 if address.scheme.casecmp('http') == 0
70
- return 443 if address.scheme.casecmp('https') == 0
71
- raise ArgumentError.new('unsupported scheme: ' + address.scheme)
66
+ def self.get_port(address)
67
+ port = address.port
68
+ return port if port != -1
69
+ return 80 if address.scheme.casecmp('http') == 0
70
+ return 443 if address.scheme.casecmp('https') == 0
71
+ raise ArgumentError.new('unsupported scheme: ' + address.scheme)
72
+ end
73
+ end
72
74
  end
73
75
  end
74
76
  end