direct-sdk-ruby 1.0.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 (238) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +2 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +141 -0
  5. data/Rakefile +34 -0
  6. data/direct-sdk-ruby.gemspec +28 -0
  7. data/lib/ingenico/direct/sdk.rb +26 -0
  8. data/lib/ingenico/direct/sdk/api_exception.rb +42 -0
  9. data/lib/ingenico/direct/sdk/api_resource.rb +115 -0
  10. data/lib/ingenico/direct/sdk/authenticator.rb +16 -0
  11. data/lib/ingenico/direct/sdk/authorization_exception.rb +13 -0
  12. data/lib/ingenico/direct/sdk/call_context.rb +26 -0
  13. data/lib/ingenico/direct/sdk/client.rb +85 -0
  14. data/lib/ingenico/direct/sdk/communication_exception.rb +16 -0
  15. data/lib/ingenico/direct/sdk/communicator.rb +301 -0
  16. data/lib/ingenico/direct/sdk/communicator_configuration.rb +59 -0
  17. data/lib/ingenico/direct/sdk/connection.rb +41 -0
  18. data/lib/ingenico/direct/sdk/data_object.rb +32 -0
  19. data/lib/ingenico/direct/sdk/declined_payment_exception.rb +30 -0
  20. data/lib/ingenico/direct/sdk/declined_payout_exception.rb +32 -0
  21. data/lib/ingenico/direct/sdk/declined_refund_exception.rb +32 -0
  22. data/lib/ingenico/direct/sdk/declined_transaction_exception.rb +16 -0
  23. data/lib/ingenico/direct/sdk/defaultimpl.rb +6 -0
  24. data/lib/ingenico/direct/sdk/defaultimpl/authorization_type.rb +24 -0
  25. data/lib/ingenico/direct/sdk/defaultimpl/default_authenticator.rb +108 -0
  26. data/lib/ingenico/direct/sdk/defaultimpl/default_connection.rb +293 -0
  27. data/lib/ingenico/direct/sdk/defaultimpl/default_marshaller.rb +32 -0
  28. data/lib/ingenico/direct/sdk/direct_exception.rb +15 -0
  29. data/lib/ingenico/direct/sdk/domain/account_on_file.rb +50 -0
  30. data/lib/ingenico/direct/sdk/domain/account_on_file_attribute.rb +39 -0
  31. data/lib/ingenico/direct/sdk/domain/account_on_file_display_hints.rb +38 -0
  32. data/lib/ingenico/direct/sdk/domain/additional_order_input.rb +47 -0
  33. data/lib/ingenico/direct/sdk/domain/address.rb +51 -0
  34. data/lib/ingenico/direct/sdk/domain/address_personal.rb +59 -0
  35. data/lib/ingenico/direct/sdk/domain/airline_data.rb +129 -0
  36. data/lib/ingenico/direct/sdk/domain/airline_flight_leg.rb +99 -0
  37. data/lib/ingenico/direct/sdk/domain/airline_passenger.rb +39 -0
  38. data/lib/ingenico/direct/sdk/domain/amount_breakdown.rb +31 -0
  39. data/lib/ingenico/direct/sdk/domain/amount_of_money.rb +31 -0
  40. data/lib/ingenico/direct/sdk/domain/api_error.rb +47 -0
  41. data/lib/ingenico/direct/sdk/domain/browser_data.rb +39 -0
  42. data/lib/ingenico/direct/sdk/domain/cancel_payment_response.rb +31 -0
  43. data/lib/ingenico/direct/sdk/domain/capture.rb +47 -0
  44. data/lib/ingenico/direct/sdk/domain/capture_output.rb +79 -0
  45. data/lib/ingenico/direct/sdk/domain/capture_payment_request.rb +31 -0
  46. data/lib/ingenico/direct/sdk/domain/capture_response.rb +47 -0
  47. data/lib/ingenico/direct/sdk/domain/capture_status_output.rb +27 -0
  48. data/lib/ingenico/direct/sdk/domain/captures_response.rb +34 -0
  49. data/lib/ingenico/direct/sdk/domain/card.rb +39 -0
  50. data/lib/ingenico/direct/sdk/domain/card_essentials.rb +31 -0
  51. data/lib/ingenico/direct/sdk/domain/card_fraud_results.rb +35 -0
  52. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input.rb +95 -0
  53. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_input_base.rb +79 -0
  54. data/lib/ingenico/direct/sdk/domain/card_payment_method_specific_output.rb +67 -0
  55. data/lib/ingenico/direct/sdk/domain/card_payout_method_specific_input.rb +39 -0
  56. data/lib/ingenico/direct/sdk/domain/card_recurrence_details.rb +27 -0
  57. data/lib/ingenico/direct/sdk/domain/card_without_cvv.rb +35 -0
  58. data/lib/ingenico/direct/sdk/domain/company_information.rb +27 -0
  59. data/lib/ingenico/direct/sdk/domain/complete_payment_card_payment_method_specific_input.rb +31 -0
  60. data/lib/ingenico/direct/sdk/domain/complete_payment_request.rb +39 -0
  61. data/lib/ingenico/direct/sdk/domain/complete_payment_response.rb +47 -0
  62. data/lib/ingenico/direct/sdk/domain/contact_details.rb +43 -0
  63. data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_request.rb +63 -0
  64. data/lib/ingenico/direct/sdk/domain/create_hosted_checkout_response.rb +49 -0
  65. data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_request.rb +39 -0
  66. data/lib/ingenico/direct/sdk/domain/create_hosted_tokenization_response.rb +41 -0
  67. data/lib/ingenico/direct/sdk/domain/create_payment_request.rb +67 -0
  68. data/lib/ingenico/direct/sdk/domain/create_payment_response.rb +47 -0
  69. data/lib/ingenico/direct/sdk/domain/create_payout_request.rb +47 -0
  70. data/lib/ingenico/direct/sdk/domain/create_token_request.rb +35 -0
  71. data/lib/ingenico/direct/sdk/domain/created_payment_output.rb +35 -0
  72. data/lib/ingenico/direct/sdk/domain/created_token_response.rb +51 -0
  73. data/lib/ingenico/direct/sdk/domain/customer.rb +87 -0
  74. data/lib/ingenico/direct/sdk/domain/customer_account.rb +71 -0
  75. data/lib/ingenico/direct/sdk/domain/customer_account_authentication.rb +31 -0
  76. data/lib/ingenico/direct/sdk/domain/customer_device.rb +51 -0
  77. data/lib/ingenico/direct/sdk/domain/customer_payment_activity.rb +35 -0
  78. data/lib/ingenico/direct/sdk/domain/customer_token.rb +47 -0
  79. data/lib/ingenico/direct/sdk/domain/decrypted_payment_data.rb +43 -0
  80. data/lib/ingenico/direct/sdk/domain/directory_entry.rb +35 -0
  81. data/lib/ingenico/direct/sdk/domain/empty_validator.rb +13 -0
  82. data/lib/ingenico/direct/sdk/domain/error_response.rb +38 -0
  83. data/lib/ingenico/direct/sdk/domain/external_cardholder_authentication_data.rb +59 -0
  84. data/lib/ingenico/direct/sdk/domain/external_token_linked.rb +27 -0
  85. data/lib/ingenico/direct/sdk/domain/fixed_list_validator.rb +33 -0
  86. data/lib/ingenico/direct/sdk/domain/fraud_fields.rb +31 -0
  87. data/lib/ingenico/direct/sdk/domain/fraud_results.rb +27 -0
  88. data/lib/ingenico/direct/sdk/domain/g_pay_three_d_secure.rb +47 -0
  89. data/lib/ingenico/direct/sdk/domain/get_hosted_checkout_response.rb +35 -0
  90. data/lib/ingenico/direct/sdk/domain/get_hosted_tokenization_response.rb +35 -0
  91. data/lib/ingenico/direct/sdk/domain/get_payment_product_groups_response.rb +34 -0
  92. data/lib/ingenico/direct/sdk/domain/get_payment_products_response.rb +34 -0
  93. data/lib/ingenico/direct/sdk/domain/gift_card_purchase.rb +35 -0
  94. data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_input.rb +55 -0
  95. data/lib/ingenico/direct/sdk/domain/hosted_checkout_specific_output.rb +31 -0
  96. data/lib/ingenico/direct/sdk/domain/label_template_element.rb +31 -0
  97. data/lib/ingenico/direct/sdk/domain/length_validator.rb +31 -0
  98. data/lib/ingenico/direct/sdk/domain/line_item.rb +47 -0
  99. data/lib/ingenico/direct/sdk/domain/line_item_invoice_data.rb +27 -0
  100. data/lib/ingenico/direct/sdk/domain/loan_recipient.rb +43 -0
  101. data/lib/ingenico/direct/sdk/domain/merchant_action.rb +35 -0
  102. data/lib/ingenico/direct/sdk/domain/mobile_payment_data.rb +31 -0
  103. data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_input.rb +63 -0
  104. data/lib/ingenico/direct/sdk/domain/mobile_payment_method_specific_output.rb +59 -0
  105. data/lib/ingenico/direct/sdk/domain/mobile_payment_product320_specific_input.rb +31 -0
  106. data/lib/ingenico/direct/sdk/domain/order.rb +71 -0
  107. data/lib/ingenico/direct/sdk/domain/order_line_details.rb +55 -0
  108. data/lib/ingenico/direct/sdk/domain/order_references.rb +31 -0
  109. data/lib/ingenico/direct/sdk/domain/order_status_output.rb +50 -0
  110. data/lib/ingenico/direct/sdk/domain/order_type_information.rb +31 -0
  111. data/lib/ingenico/direct/sdk/domain/payment_account_on_file.rb +31 -0
  112. data/lib/ingenico/direct/sdk/domain/payment_creation_output.rb +39 -0
  113. data/lib/ingenico/direct/sdk/domain/payment_error_response.rb +46 -0
  114. data/lib/ingenico/direct/sdk/domain/payment_output.rb +79 -0
  115. data/lib/ingenico/direct/sdk/domain/payment_product.rb +77 -0
  116. data/lib/ingenico/direct/sdk/domain/payment_product5100_specific_input.rb +27 -0
  117. data/lib/ingenico/direct/sdk/domain/payment_product5402_specific_output.rb +27 -0
  118. data/lib/ingenico/direct/sdk/domain/payment_product5500_specific_output.rb +35 -0
  119. data/lib/ingenico/direct/sdk/domain/payment_product771_specific_output.rb +13 -0
  120. data/lib/ingenico/direct/sdk/domain/payment_product840_customer_account.rb +55 -0
  121. data/lib/ingenico/direct/sdk/domain/payment_product840_specific_output.rb +54 -0
  122. data/lib/ingenico/direct/sdk/domain/payment_product_display_hints.rb +35 -0
  123. data/lib/ingenico/direct/sdk/domain/payment_product_field.rb +47 -0
  124. data/lib/ingenico/direct/sdk/domain/payment_product_field_data_restrictions.rb +35 -0
  125. data/lib/ingenico/direct/sdk/domain/payment_product_field_display_element.rb +39 -0
  126. data/lib/ingenico/direct/sdk/domain/payment_product_field_display_hints.rb +71 -0
  127. data/lib/ingenico/direct/sdk/domain/payment_product_field_form_element.rb +38 -0
  128. data/lib/ingenico/direct/sdk/domain/payment_product_field_tooltip.rb +31 -0
  129. data/lib/ingenico/direct/sdk/domain/payment_product_field_validators.rb +91 -0
  130. data/lib/ingenico/direct/sdk/domain/payment_product_filter.rb +43 -0
  131. data/lib/ingenico/direct/sdk/domain/payment_product_filters_hosted_checkout.rb +38 -0
  132. data/lib/ingenico/direct/sdk/domain/payment_product_group.rb +43 -0
  133. data/lib/ingenico/direct/sdk/domain/payment_product_networks_response.rb +33 -0
  134. data/lib/ingenico/direct/sdk/domain/payment_references.rb +27 -0
  135. data/lib/ingenico/direct/sdk/domain/payment_response.rb +55 -0
  136. data/lib/ingenico/direct/sdk/domain/payment_status_output.rb +58 -0
  137. data/lib/ingenico/direct/sdk/domain/payout_error_response.rb +46 -0
  138. data/lib/ingenico/direct/sdk/domain/payout_output.rb +31 -0
  139. data/lib/ingenico/direct/sdk/domain/payout_response.rb +47 -0
  140. data/lib/ingenico/direct/sdk/domain/payout_result.rb +47 -0
  141. data/lib/ingenico/direct/sdk/domain/payout_status_output.rb +35 -0
  142. data/lib/ingenico/direct/sdk/domain/personal_information.rb +39 -0
  143. data/lib/ingenico/direct/sdk/domain/personal_information_token.rb +31 -0
  144. data/lib/ingenico/direct/sdk/domain/personal_name.rb +35 -0
  145. data/lib/ingenico/direct/sdk/domain/personal_name_token.rb +31 -0
  146. data/lib/ingenico/direct/sdk/domain/product_directory.rb +34 -0
  147. data/lib/ingenico/direct/sdk/domain/protection_eligibility.rb +31 -0
  148. data/lib/ingenico/direct/sdk/domain/range_validator.rb +31 -0
  149. data/lib/ingenico/direct/sdk/domain/redirect_data.rb +31 -0
  150. data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_input.rb +67 -0
  151. data/lib/ingenico/direct/sdk/domain/redirect_payment_method_specific_output.rb +67 -0
  152. data/lib/ingenico/direct/sdk/domain/redirect_payment_product809_specific_input.rb +27 -0
  153. data/lib/ingenico/direct/sdk/domain/redirect_payment_product840_specific_input.rb +27 -0
  154. data/lib/ingenico/direct/sdk/domain/redirection_data.rb +27 -0
  155. data/lib/ingenico/direct/sdk/domain/refund_card_method_specific_output.rb +31 -0
  156. data/lib/ingenico/direct/sdk/domain/refund_e_wallet_method_specific_output.rb +39 -0
  157. data/lib/ingenico/direct/sdk/domain/refund_error_response.rb +46 -0
  158. data/lib/ingenico/direct/sdk/domain/refund_mobile_method_specific_output.rb +35 -0
  159. data/lib/ingenico/direct/sdk/domain/refund_output.rb +79 -0
  160. data/lib/ingenico/direct/sdk/domain/refund_payment_product840_customer_account.rb +35 -0
  161. data/lib/ingenico/direct/sdk/domain/refund_payment_product840_specific_output.rb +31 -0
  162. data/lib/ingenico/direct/sdk/domain/refund_redirect_method_specific_output.rb +31 -0
  163. data/lib/ingenico/direct/sdk/domain/refund_request.rb +31 -0
  164. data/lib/ingenico/direct/sdk/domain/refund_response.rb +47 -0
  165. data/lib/ingenico/direct/sdk/domain/refunds_response.rb +34 -0
  166. data/lib/ingenico/direct/sdk/domain/regular_expression_validator.rb +27 -0
  167. data/lib/ingenico/direct/sdk/domain/sepa_direct_debit_payment_method_specific_output.rb +43 -0
  168. data/lib/ingenico/direct/sdk/domain/session_request.rb +33 -0
  169. data/lib/ingenico/direct/sdk/domain/session_response.rb +49 -0
  170. data/lib/ingenico/direct/sdk/domain/shipping.rb +51 -0
  171. data/lib/ingenico/direct/sdk/domain/shopping_cart.rb +65 -0
  172. data/lib/ingenico/direct/sdk/domain/shopping_cart_extension.rb +52 -0
  173. data/lib/ingenico/direct/sdk/domain/test_connection.rb +27 -0
  174. data/lib/ingenico/direct/sdk/domain/three_d_secure.rb +63 -0
  175. data/lib/ingenico/direct/sdk/domain/three_d_secure_base.rb +47 -0
  176. data/lib/ingenico/direct/sdk/domain/three_d_secure_data.rb +35 -0
  177. data/lib/ingenico/direct/sdk/domain/three_d_secure_results.rb +31 -0
  178. data/lib/ingenico/direct/sdk/domain/token_card.rb +35 -0
  179. data/lib/ingenico/direct/sdk/domain/token_card_data.rb +31 -0
  180. data/lib/ingenico/direct/sdk/domain/token_card_specific_input.rb +31 -0
  181. data/lib/ingenico/direct/sdk/domain/token_data.rb +31 -0
  182. data/lib/ingenico/direct/sdk/domain/token_e_wallet.rb +35 -0
  183. data/lib/ingenico/direct/sdk/domain/token_response.rb +55 -0
  184. data/lib/ingenico/direct/sdk/domain/value_mapping_element.rb +38 -0
  185. data/lib/ingenico/direct/sdk/endpoint_configuration.rb +127 -0
  186. data/lib/ingenico/direct/sdk/exceptions.rb +8 -0
  187. data/lib/ingenico/direct/sdk/factory.rb +136 -0
  188. data/lib/ingenico/direct/sdk/idempotence_exception.rb +24 -0
  189. data/lib/ingenico/direct/sdk/logging.rb +10 -0
  190. data/lib/ingenico/direct/sdk/logging/communicator_logger.rb +22 -0
  191. data/lib/ingenico/direct/sdk/logging/log_message_builder.rb +56 -0
  192. data/lib/ingenico/direct/sdk/logging/logging_capable.rb +19 -0
  193. data/lib/ingenico/direct/sdk/logging/logging_util.rb +271 -0
  194. data/lib/ingenico/direct/sdk/logging/request_log_message_builder.rb +39 -0
  195. data/lib/ingenico/direct/sdk/logging/response_log_message_builder.rb +34 -0
  196. data/lib/ingenico/direct/sdk/logging/ruby_communicator_logger.rb +57 -0
  197. data/lib/ingenico/direct/sdk/logging/stdout_communicator_logger.rb +34 -0
  198. data/lib/ingenico/direct/sdk/marshaller.rb +24 -0
  199. data/lib/ingenico/direct/sdk/marshaller_syntax_exception.rb +6 -0
  200. data/lib/ingenico/direct/sdk/merchant/hostedcheckout/hosted_checkout_client.rb +87 -0
  201. data/lib/ingenico/direct/sdk/merchant/hostedtokenization/hosted_tokenization_client.rb +87 -0
  202. data/lib/ingenico/direct/sdk/merchant/merchant_client.rb +83 -0
  203. data/lib/ingenico/direct/sdk/merchant/payments/payments_client.rb +291 -0
  204. data/lib/ingenico/direct/sdk/merchant/payouts/payouts_client.rb +87 -0
  205. data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_group_params.rb +58 -0
  206. data/lib/ingenico/direct/sdk/merchant/productgroups/get_product_groups_params.rb +58 -0
  207. data/lib/ingenico/direct/sdk/merchant/productgroups/product_groups_client.rb +88 -0
  208. data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_networks_params.rb +39 -0
  209. data/lib/ingenico/direct/sdk/merchant/products/get_payment_product_params.rb +58 -0
  210. data/lib/ingenico/direct/sdk/merchant/products/get_payment_products_params.rb +58 -0
  211. data/lib/ingenico/direct/sdk/merchant/products/get_product_directory_params.rb +31 -0
  212. data/lib/ingenico/direct/sdk/merchant/products/products_client.rb +156 -0
  213. data/lib/ingenico/direct/sdk/merchant/services/services_client.rb +52 -0
  214. data/lib/ingenico/direct/sdk/merchant/sessions/sessions_client.rb +55 -0
  215. data/lib/ingenico/direct/sdk/merchant/tokens/tokens_client.rb +117 -0
  216. data/lib/ingenico/direct/sdk/meta_data_provider.rb +150 -0
  217. data/lib/ingenico/direct/sdk/modules.rb +71 -0
  218. data/lib/ingenico/direct/sdk/not_found_exception.rb +16 -0
  219. data/lib/ingenico/direct/sdk/param_request.rb +11 -0
  220. data/lib/ingenico/direct/sdk/pooled_connection.rb +21 -0
  221. data/lib/ingenico/direct/sdk/proxy_configuration.rb +74 -0
  222. data/lib/ingenico/direct/sdk/reference_exception.rb +14 -0
  223. data/lib/ingenico/direct/sdk/request_header.rb +50 -0
  224. data/lib/ingenico/direct/sdk/request_param.rb +23 -0
  225. data/lib/ingenico/direct/sdk/response_exception.rb +47 -0
  226. data/lib/ingenico/direct/sdk/response_header.rb +42 -0
  227. data/lib/ingenico/direct/sdk/validation_exception.rb +14 -0
  228. data/lib/ingenico/direct/sdk/webhooks.rb +11 -0
  229. data/lib/ingenico/direct/sdk/webhooks/api_version_mismatch_exception.rb +20 -0
  230. data/lib/ingenico/direct/sdk/webhooks/in_memory_secret_key_store.rb +56 -0
  231. data/lib/ingenico/direct/sdk/webhooks/secret_key_not_available_exception.rb +17 -0
  232. data/lib/ingenico/direct/sdk/webhooks/secret_key_store.rb +16 -0
  233. data/lib/ingenico/direct/sdk/webhooks/signature_validation_exception.rb +19 -0
  234. data/lib/ingenico/direct/sdk/webhooks/webhooks.rb +22 -0
  235. data/lib/ingenico/direct/sdk/webhooks/webhooks_event.rb +58 -0
  236. data/lib/ingenico/direct/sdk/webhooks/webhooks_helper.rb +99 -0
  237. data/lib/ingenico/direct/sdk/webhooks/webhooks_helper_builder.rb +25 -0
  238. metadata +385 -0
@@ -0,0 +1,32 @@
1
+ require 'json'
2
+ require 'singleton'
3
+
4
+ module Ingenico::Direct::SDK
5
+ module DefaultImpl
6
+ # marshals objects to and from JSON format.
7
+ # Currently supports marshalling and unmarshalling of classes that support class.new_from_hash and class#to_h
8
+ class DefaultMarshaller < Ingenico::Direct::SDK::Marshaller
9
+ include Singleton
10
+
11
+ # NOTE: this alias is needed to not break existing method calls depending on old interface
12
+ class << self
13
+ alias_method :INSTANCE, :instance
14
+ end
15
+
16
+ # Marshals the _request_object_ to a JSON string using request_object#to_h
17
+ def marshal(request_object)
18
+ JSON.pretty_generate(request_object.to_h)
19
+ end
20
+
21
+ # Unmarshals a JSON string into an object of type _klass_ using klass.new_from_hash
22
+ # @param [String] json_string
23
+ def unmarshal(json_string, klass)
24
+ return nil unless json_string
25
+ return '' if json_string.empty?
26
+ return klass.new_from_hash(JSON.parse(json_string)) if klass.respond_to?(:new_from_hash)
27
+
28
+ raise NotImplementedError
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,15 @@
1
+ module Ingenico::Direct::SDK
2
+
3
+ # This exception is thrown when a response from the Ingenico ePayments platform indicates that an error occurred
4
+ # on the Ingenico ePayments platform while processing the request.
5
+ # This corresponds to a HTTP status code of 500 or 502.
6
+ class DirectException < ApiException
7
+
8
+ # Create a new GlobalCollectException
9
+ # @see ApiException#initialize
10
+ def initialize(status_code, response_body, error_id, errors,
11
+ message = 'the Ingenico ePayments platform returned an error response')
12
+ super(status_code, response_body, error_id, errors, message)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,50 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/account_on_file_attribute'
7
+ require 'ingenico/direct/sdk/domain/account_on_file_display_hints'
8
+
9
+ module Ingenico::Direct::SDK
10
+ module Domain
11
+
12
+ # @attr [Array<Ingenico::Direct::SDK::Domain::AccountOnFileAttribute>] attributes
13
+ # @attr [Ingenico::Direct::SDK::Domain::AccountOnFileDisplayHints] display_hints
14
+ # @attr [Integer] id
15
+ # @attr [Integer] payment_product_id
16
+ class AccountOnFile < Ingenico::Direct::SDK::DataObject
17
+ attr_accessor :attributes
18
+ attr_accessor :display_hints
19
+ attr_accessor :id
20
+ attr_accessor :payment_product_id
21
+
22
+ # @return (Hash)
23
+ def to_h
24
+ hash = super
25
+ hash['attributes'] = @attributes.collect(&:to_h) if @attributes
26
+ hash['displayHints'] = @display_hints.to_h if @display_hints
27
+ hash['id'] = @id unless @id.nil?
28
+ hash['paymentProductId'] = @payment_product_id unless @payment_product_id.nil?
29
+ hash
30
+ end
31
+
32
+ def from_hash(hash)
33
+ super
34
+ if hash.key? 'attributes'
35
+ raise TypeError, "value '%s' is not an Array" % [hash['attributes']] unless hash['attributes'].is_a? Array
36
+ @attributes = []
37
+ hash['attributes'].each do |e|
38
+ @attributes << Ingenico::Direct::SDK::Domain::AccountOnFileAttribute.new_from_hash(e)
39
+ end
40
+ end
41
+ if hash.key? 'displayHints'
42
+ raise TypeError, "value '%s' is not a Hash" % [hash['displayHints']] unless hash['displayHints'].is_a? Hash
43
+ @display_hints = Ingenico::Direct::SDK::Domain::AccountOnFileDisplayHints.new_from_hash(hash['displayHints'])
44
+ end
45
+ @id = hash['id'] if hash.key? 'id'
46
+ @payment_product_id = hash['paymentProductId'] if hash.key? 'paymentProductId'
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,39 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+
7
+ module Ingenico::Direct::SDK
8
+ module Domain
9
+
10
+ # @attr [String] key
11
+ # @attr [String] must_write_reason
12
+ # @attr [String] status
13
+ # @attr [String] value
14
+ class AccountOnFileAttribute < Ingenico::Direct::SDK::DataObject
15
+ attr_accessor :key
16
+ attr_accessor :must_write_reason
17
+ attr_accessor :status
18
+ attr_accessor :value
19
+
20
+ # @return (Hash)
21
+ def to_h
22
+ hash = super
23
+ hash['key'] = @key unless @key.nil?
24
+ hash['mustWriteReason'] = @must_write_reason unless @must_write_reason.nil?
25
+ hash['status'] = @status unless @status.nil?
26
+ hash['value'] = @value unless @value.nil?
27
+ hash
28
+ end
29
+
30
+ def from_hash(hash)
31
+ super
32
+ @key = hash['key'] if hash.key? 'key'
33
+ @must_write_reason = hash['mustWriteReason'] if hash.key? 'mustWriteReason'
34
+ @status = hash['status'] if hash.key? 'status'
35
+ @value = hash['value'] if hash.key? 'value'
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/label_template_element'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [Array<Ingenico::Direct::SDK::Domain::LabelTemplateElement>] label_template
12
+ # @attr [String] logo
13
+ class AccountOnFileDisplayHints < Ingenico::Direct::SDK::DataObject
14
+ attr_accessor :label_template
15
+ attr_accessor :logo
16
+
17
+ # @return (Hash)
18
+ def to_h
19
+ hash = super
20
+ hash['labelTemplate'] = @label_template.collect(&:to_h) if @label_template
21
+ hash['logo'] = @logo unless @logo.nil?
22
+ hash
23
+ end
24
+
25
+ def from_hash(hash)
26
+ super
27
+ if hash.key? 'labelTemplate'
28
+ raise TypeError, "value '%s' is not an Array" % [hash['labelTemplate']] unless hash['labelTemplate'].is_a? Array
29
+ @label_template = []
30
+ hash['labelTemplate'].each do |e|
31
+ @label_template << Ingenico::Direct::SDK::Domain::LabelTemplateElement.new_from_hash(e)
32
+ end
33
+ end
34
+ @logo = hash['logo'] if hash.key? 'logo'
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,47 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/airline_data'
7
+ require 'ingenico/direct/sdk/domain/loan_recipient'
8
+ require 'ingenico/direct/sdk/domain/order_type_information'
9
+
10
+ module Ingenico::Direct::SDK
11
+ module Domain
12
+
13
+ # @attr [Ingenico::Direct::SDK::Domain::AirlineData] airline_data
14
+ # @attr [Ingenico::Direct::SDK::Domain::LoanRecipient] loan_recipient
15
+ # @attr [Ingenico::Direct::SDK::Domain::OrderTypeInformation] type_information
16
+ class AdditionalOrderInput < Ingenico::Direct::SDK::DataObject
17
+ attr_accessor :airline_data
18
+ attr_accessor :loan_recipient
19
+ attr_accessor :type_information
20
+
21
+ # @return (Hash)
22
+ def to_h
23
+ hash = super
24
+ hash['airlineData'] = @airline_data.to_h if @airline_data
25
+ hash['loanRecipient'] = @loan_recipient.to_h if @loan_recipient
26
+ hash['typeInformation'] = @type_information.to_h if @type_information
27
+ hash
28
+ end
29
+
30
+ def from_hash(hash)
31
+ super
32
+ if hash.key? 'airlineData'
33
+ raise TypeError, "value '%s' is not a Hash" % [hash['airlineData']] unless hash['airlineData'].is_a? Hash
34
+ @airline_data = Ingenico::Direct::SDK::Domain::AirlineData.new_from_hash(hash['airlineData'])
35
+ end
36
+ if hash.key? 'loanRecipient'
37
+ raise TypeError, "value '%s' is not a Hash" % [hash['loanRecipient']] unless hash['loanRecipient'].is_a? Hash
38
+ @loan_recipient = Ingenico::Direct::SDK::Domain::LoanRecipient.new_from_hash(hash['loanRecipient'])
39
+ end
40
+ if hash.key? 'typeInformation'
41
+ raise TypeError, "value '%s' is not a Hash" % [hash['typeInformation']] unless hash['typeInformation'].is_a? Hash
42
+ @type_information = Ingenico::Direct::SDK::Domain::OrderTypeInformation.new_from_hash(hash['typeInformation'])
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,51 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+
7
+ module Ingenico::Direct::SDK
8
+ module Domain
9
+
10
+ # @attr [String] additional_info
11
+ # @attr [String] city
12
+ # @attr [String] country_code
13
+ # @attr [String] house_number
14
+ # @attr [String] state
15
+ # @attr [String] street
16
+ # @attr [String] zip
17
+ class Address < Ingenico::Direct::SDK::DataObject
18
+ attr_accessor :additional_info
19
+ attr_accessor :city
20
+ attr_accessor :country_code
21
+ attr_accessor :house_number
22
+ attr_accessor :state
23
+ attr_accessor :street
24
+ attr_accessor :zip
25
+
26
+ # @return (Hash)
27
+ def to_h
28
+ hash = super
29
+ hash['additionalInfo'] = @additional_info unless @additional_info.nil?
30
+ hash['city'] = @city unless @city.nil?
31
+ hash['countryCode'] = @country_code unless @country_code.nil?
32
+ hash['houseNumber'] = @house_number unless @house_number.nil?
33
+ hash['state'] = @state unless @state.nil?
34
+ hash['street'] = @street unless @street.nil?
35
+ hash['zip'] = @zip unless @zip.nil?
36
+ hash
37
+ end
38
+
39
+ def from_hash(hash)
40
+ super
41
+ @additional_info = hash['additionalInfo'] if hash.key? 'additionalInfo'
42
+ @city = hash['city'] if hash.key? 'city'
43
+ @country_code = hash['countryCode'] if hash.key? 'countryCode'
44
+ @house_number = hash['houseNumber'] if hash.key? 'houseNumber'
45
+ @state = hash['state'] if hash.key? 'state'
46
+ @street = hash['street'] if hash.key? 'street'
47
+ @zip = hash['zip'] if hash.key? 'zip'
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,59 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/personal_name'
7
+
8
+ module Ingenico::Direct::SDK
9
+ module Domain
10
+
11
+ # @attr [String] additional_info
12
+ # @attr [String] city
13
+ # @attr [String] country_code
14
+ # @attr [String] house_number
15
+ # @attr [Ingenico::Direct::SDK::Domain::PersonalName] name
16
+ # @attr [String] state
17
+ # @attr [String] street
18
+ # @attr [String] zip
19
+ class AddressPersonal < Ingenico::Direct::SDK::DataObject
20
+ attr_accessor :additional_info
21
+ attr_accessor :city
22
+ attr_accessor :country_code
23
+ attr_accessor :house_number
24
+ attr_accessor :name
25
+ attr_accessor :state
26
+ attr_accessor :street
27
+ attr_accessor :zip
28
+
29
+ # @return (Hash)
30
+ def to_h
31
+ hash = super
32
+ hash['additionalInfo'] = @additional_info unless @additional_info.nil?
33
+ hash['city'] = @city unless @city.nil?
34
+ hash['countryCode'] = @country_code unless @country_code.nil?
35
+ hash['houseNumber'] = @house_number unless @house_number.nil?
36
+ hash['name'] = @name.to_h if @name
37
+ hash['state'] = @state unless @state.nil?
38
+ hash['street'] = @street unless @street.nil?
39
+ hash['zip'] = @zip unless @zip.nil?
40
+ hash
41
+ end
42
+
43
+ def from_hash(hash)
44
+ super
45
+ @additional_info = hash['additionalInfo'] if hash.key? 'additionalInfo'
46
+ @city = hash['city'] if hash.key? 'city'
47
+ @country_code = hash['countryCode'] if hash.key? 'countryCode'
48
+ @house_number = hash['houseNumber'] if hash.key? 'houseNumber'
49
+ if hash.key? 'name'
50
+ raise TypeError, "value '%s' is not a Hash" % [hash['name']] unless hash['name'].is_a? Hash
51
+ @name = Ingenico::Direct::SDK::Domain::PersonalName.new_from_hash(hash['name'])
52
+ end
53
+ @state = hash['state'] if hash.key? 'state'
54
+ @street = hash['street'] if hash.key? 'street'
55
+ @zip = hash['zip'] if hash.key? 'zip'
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,129 @@
1
+ #
2
+ # This class was auto-generated from the API references found at
3
+ # https://support.direct.ingenico.com/documentation/api/reference/
4
+ #
5
+ require 'ingenico/direct/sdk/data_object'
6
+ require 'ingenico/direct/sdk/domain/airline_flight_leg'
7
+ require 'ingenico/direct/sdk/domain/airline_passenger'
8
+
9
+ module Ingenico::Direct::SDK
10
+ module Domain
11
+
12
+ # @attr [String] agent_numeric_code
13
+ # @attr [String] code
14
+ # @attr [String] flight_date
15
+ # @attr [Array<Ingenico::Direct::SDK::Domain::AirlineFlightLeg>] flight_legs
16
+ # @attr [String] invoice_number
17
+ # @attr [true/false] is_e_ticket
18
+ # @attr [true/false] is_restricted_ticket
19
+ # @attr [true/false] is_third_party
20
+ # @attr [String] issue_date
21
+ # @attr [String] merchant_customer_id
22
+ # @attr [String] name
23
+ # @attr [String] passenger_name
24
+ # @attr [Array<Ingenico::Direct::SDK::Domain::AirlinePassenger>] passengers
25
+ # @attr [String] place_of_issue
26
+ # @attr [String] pnr
27
+ # @attr [String] point_of_sale
28
+ # @attr [String] pos_city_code
29
+ # @attr [String] ticket_delivery_method
30
+ # @attr [String] ticket_number
31
+ # @attr [Integer] total_fare
32
+ # @attr [Integer] total_fee
33
+ # @attr [Integer] total_taxes
34
+ # @attr [String] travel_agency_name
35
+ class AirlineData < Ingenico::Direct::SDK::DataObject
36
+ attr_accessor :agent_numeric_code
37
+ attr_accessor :code
38
+ attr_accessor :flight_date
39
+ attr_accessor :flight_legs
40
+ attr_accessor :invoice_number
41
+ attr_accessor :is_e_ticket
42
+ attr_accessor :is_restricted_ticket
43
+ attr_accessor :is_third_party
44
+ attr_accessor :issue_date
45
+ attr_accessor :merchant_customer_id
46
+ attr_accessor :name
47
+ attr_accessor :passenger_name
48
+ attr_accessor :passengers
49
+ attr_accessor :place_of_issue
50
+ attr_accessor :pnr
51
+ attr_accessor :point_of_sale
52
+ attr_accessor :pos_city_code
53
+ attr_accessor :ticket_delivery_method
54
+ attr_accessor :ticket_number
55
+ attr_accessor :total_fare
56
+ attr_accessor :total_fee
57
+ attr_accessor :total_taxes
58
+ attr_accessor :travel_agency_name
59
+
60
+ # @return (Hash)
61
+ def to_h
62
+ hash = super
63
+ hash['agentNumericCode'] = @agent_numeric_code unless @agent_numeric_code.nil?
64
+ hash['code'] = @code unless @code.nil?
65
+ hash['flightDate'] = @flight_date unless @flight_date.nil?
66
+ hash['flightLegs'] = @flight_legs.collect(&:to_h) if @flight_legs
67
+ hash['invoiceNumber'] = @invoice_number unless @invoice_number.nil?
68
+ hash['isETicket'] = @is_e_ticket unless @is_e_ticket.nil?
69
+ hash['isRestrictedTicket'] = @is_restricted_ticket unless @is_restricted_ticket.nil?
70
+ hash['isThirdParty'] = @is_third_party unless @is_third_party.nil?
71
+ hash['issueDate'] = @issue_date unless @issue_date.nil?
72
+ hash['merchantCustomerId'] = @merchant_customer_id unless @merchant_customer_id.nil?
73
+ hash['name'] = @name unless @name.nil?
74
+ hash['passengerName'] = @passenger_name unless @passenger_name.nil?
75
+ hash['passengers'] = @passengers.collect(&:to_h) if @passengers
76
+ hash['placeOfIssue'] = @place_of_issue unless @place_of_issue.nil?
77
+ hash['pnr'] = @pnr unless @pnr.nil?
78
+ hash['pointOfSale'] = @point_of_sale unless @point_of_sale.nil?
79
+ hash['posCityCode'] = @pos_city_code unless @pos_city_code.nil?
80
+ hash['ticketDeliveryMethod'] = @ticket_delivery_method unless @ticket_delivery_method.nil?
81
+ hash['ticketNumber'] = @ticket_number unless @ticket_number.nil?
82
+ hash['totalFare'] = @total_fare unless @total_fare.nil?
83
+ hash['totalFee'] = @total_fee unless @total_fee.nil?
84
+ hash['totalTaxes'] = @total_taxes unless @total_taxes.nil?
85
+ hash['travelAgencyName'] = @travel_agency_name unless @travel_agency_name.nil?
86
+ hash
87
+ end
88
+
89
+ def from_hash(hash)
90
+ super
91
+ @agent_numeric_code = hash['agentNumericCode'] if hash.key? 'agentNumericCode'
92
+ @code = hash['code'] if hash.key? 'code'
93
+ @flight_date = hash['flightDate'] if hash.key? 'flightDate'
94
+ if hash.key? 'flightLegs'
95
+ raise TypeError, "value '%s' is not an Array" % [hash['flightLegs']] unless hash['flightLegs'].is_a? Array
96
+ @flight_legs = []
97
+ hash['flightLegs'].each do |e|
98
+ @flight_legs << Ingenico::Direct::SDK::Domain::AirlineFlightLeg.new_from_hash(e)
99
+ end
100
+ end
101
+ @invoice_number = hash['invoiceNumber'] if hash.key? 'invoiceNumber'
102
+ @is_e_ticket = hash['isETicket'] if hash.key? 'isETicket'
103
+ @is_restricted_ticket = hash['isRestrictedTicket'] if hash.key? 'isRestrictedTicket'
104
+ @is_third_party = hash['isThirdParty'] if hash.key? 'isThirdParty'
105
+ @issue_date = hash['issueDate'] if hash.key? 'issueDate'
106
+ @merchant_customer_id = hash['merchantCustomerId'] if hash.key? 'merchantCustomerId'
107
+ @name = hash['name'] if hash.key? 'name'
108
+ @passenger_name = hash['passengerName'] if hash.key? 'passengerName'
109
+ if hash.key? 'passengers'
110
+ raise TypeError, "value '%s' is not an Array" % [hash['passengers']] unless hash['passengers'].is_a? Array
111
+ @passengers = []
112
+ hash['passengers'].each do |e|
113
+ @passengers << Ingenico::Direct::SDK::Domain::AirlinePassenger.new_from_hash(e)
114
+ end
115
+ end
116
+ @place_of_issue = hash['placeOfIssue'] if hash.key? 'placeOfIssue'
117
+ @pnr = hash['pnr'] if hash.key? 'pnr'
118
+ @point_of_sale = hash['pointOfSale'] if hash.key? 'pointOfSale'
119
+ @pos_city_code = hash['posCityCode'] if hash.key? 'posCityCode'
120
+ @ticket_delivery_method = hash['ticketDeliveryMethod'] if hash.key? 'ticketDeliveryMethod'
121
+ @ticket_number = hash['ticketNumber'] if hash.key? 'ticketNumber'
122
+ @total_fare = hash['totalFare'] if hash.key? 'totalFare'
123
+ @total_fee = hash['totalFee'] if hash.key? 'totalFee'
124
+ @total_taxes = hash['totalTaxes'] if hash.key? 'totalTaxes'
125
+ @travel_agency_name = hash['travelAgencyName'] if hash.key? 'travelAgencyName'
126
+ end
127
+ end
128
+ end
129
+ end