first_data_gateway 1.3.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -2
  3. data/lib/openapi_client.rb +41 -13
  4. data/lib/openapi_client/api/authentication_api.rb +2 -2
  5. data/lib/openapi_client/api/card_info_lookup_api.rb +2 -2
  6. data/lib/openapi_client/api/card_verification_api.rb +2 -2
  7. data/lib/openapi_client/api/currency_conversion_api.rb +2 -2
  8. data/lib/openapi_client/api/fraud_detect_api.rb +214 -4
  9. data/lib/openapi_client/api/order_api.rb +4 -4
  10. data/lib/openapi_client/api/payment_api.rb +9 -9
  11. data/lib/openapi_client/api/payment_schedules_api.rb +5 -5
  12. data/lib/openapi_client/api/payment_token_api.rb +7 -6
  13. data/lib/openapi_client/api/payment_url_api.rb +233 -2
  14. data/lib/openapi_client/api_client.rb +31 -31
  15. data/lib/openapi_client/api_error.rb +1 -1
  16. data/lib/openapi_client/configuration.rb +2 -5
  17. data/lib/openapi_client/models/access_token_response.rb +1 -1
  18. data/lib/openapi_client/models/account_updater_response.rb +1 -1
  19. data/lib/openapi_client/models/additional_amount_rate.rb +1 -1
  20. data/lib/openapi_client/models/additional_details.rb +1 -1
  21. data/lib/openapi_client/models/additional_transaction_details.rb +3 -3
  22. data/lib/openapi_client/models/address.rb +1 -1
  23. data/lib/openapi_client/models/airline.rb +1 -1
  24. data/lib/openapi_client/models/airline_ancillary_service_category.rb +1 -1
  25. data/lib/openapi_client/models/airline_travel_route.rb +1 -1
  26. data/lib/openapi_client/models/ali_pay.rb +1 -1
  27. data/lib/openapi_client/models/ali_pay_payment_method.rb +1 -1
  28. data/lib/openapi_client/models/ali_pay_payment_method_all_of.rb +1 -1
  29. data/lib/openapi_client/models/ali_pay_sale_transaction.rb +1 -1
  30. data/lib/openapi_client/models/ali_pay_sale_transaction_all_of.rb +1 -1
  31. data/lib/openapi_client/models/amount.rb +1 -1
  32. data/lib/openapi_client/models/amount_components.rb +1 -1
  33. data/lib/openapi_client/models/authentication.rb +1 -1
  34. data/lib/openapi_client/models/authentication_redirect.rb +1 -1
  35. data/lib/openapi_client/models/authentication_redirect_params.rb +1 -1
  36. data/lib/openapi_client/models/authentication_verification_request.rb +1 -1
  37. data/lib/openapi_client/models/avs_response.rb +1 -1
  38. data/lib/openapi_client/models/basic_response.rb +1 -1
  39. data/lib/openapi_client/models/billing.rb +1 -1
  40. data/lib/openapi_client/models/billing_address.rb +2 -2
  41. data/lib/openapi_client/models/car_rental.rb +1 -1
  42. data/lib/openapi_client/models/car_rental_extra_charges.rb +1 -1
  43. data/lib/openapi_client/models/card.rb +1 -1
  44. data/lib/openapi_client/models/card_function.rb +1 -1
  45. data/lib/openapi_client/models/card_info.rb +1 -1
  46. data/lib/openapi_client/models/card_info_lookup_request.rb +1 -1
  47. data/lib/openapi_client/models/card_info_lookup_response.rb +1 -1
  48. data/lib/openapi_client/models/card_verification_request.rb +1 -1
  49. data/lib/openapi_client/models/china_domestic.rb +1 -1
  50. data/lib/openapi_client/models/china_domestic_payment_method.rb +1 -1
  51. data/lib/openapi_client/models/china_domestic_payment_method_all_of.rb +1 -1
  52. data/lib/openapi_client/models/china_pn_r_sale_transaction.rb +1 -1
  53. data/lib/openapi_client/models/china_pn_r_sale_transaction_all_of.rb +1 -1
  54. data/lib/openapi_client/models/client_locale.rb +1 -1
  55. data/lib/openapi_client/models/client_registration.rb +281 -0
  56. data/lib/openapi_client/models/contact.rb +1 -1
  57. data/lib/openapi_client/models/create_payment_token.rb +1 -1
  58. data/lib/openapi_client/models/currency_conversion.rb +1 -1
  59. data/lib/openapi_client/models/customer.rb +1 -1
  60. data/lib/openapi_client/models/customer_address.rb +21 -14
  61. data/lib/openapi_client/models/dcc.rb +1 -1
  62. data/lib/openapi_client/models/dcc_all_of.rb +1 -1
  63. data/lib/openapi_client/models/dcc_exchange_rate_request.rb +1 -1
  64. data/lib/openapi_client/models/dcc_exchange_rate_request_all_of.rb +1 -1
  65. data/lib/openapi_client/models/device.rb +2 -2
  66. data/lib/openapi_client/models/disbursement.rb +1 -1
  67. data/lib/openapi_client/models/disbursement_transaction_type.rb +1 -1
  68. data/lib/openapi_client/models/document.rb +1 -1
  69. data/lib/openapi_client/models/dynamic_pricing.rb +13 -4
  70. data/lib/openapi_client/models/dynamic_pricing_all_of.rb +13 -4
  71. data/lib/openapi_client/models/dynamic_pricing_exchange_rate_request.rb +1 -1
  72. data/lib/openapi_client/models/dynamic_pricing_exchange_rate_request_all_of.rb +1 -1
  73. data/lib/openapi_client/models/encrypted_apple_pay.rb +1 -1
  74. data/lib/openapi_client/models/encrypted_apple_pay_header.rb +1 -1
  75. data/lib/openapi_client/models/encrypted_apple_pay_wallet_payment_method.rb +1 -1
  76. data/lib/openapi_client/models/encrypted_apple_pay_wallet_payment_method_all_of.rb +1 -1
  77. data/lib/openapi_client/models/encrypted_google_pay.rb +1 -1
  78. data/lib/openapi_client/models/encrypted_google_pay_data.rb +1 -1
  79. data/lib/openapi_client/models/encrypted_google_pay_wallet_payment_method.rb +1 -1
  80. data/lib/openapi_client/models/encrypted_google_pay_wallet_payment_method_all_of.rb +1 -1
  81. data/lib/openapi_client/models/encrypted_samsung_pay.rb +251 -0
  82. data/lib/openapi_client/models/encrypted_samsung_pay_wallet_payment_method.rb +225 -0
  83. data/lib/openapi_client/models/encrypted_samsung_pay_wallet_payment_method_all_of.rb +201 -0
  84. data/lib/openapi_client/models/error.rb +1 -1
  85. data/lib/openapi_client/models/error_details.rb +1 -1
  86. data/lib/openapi_client/models/error_message.rb +208 -0
  87. data/lib/openapi_client/models/error_response.rb +1 -1
  88. data/lib/openapi_client/models/exchange_rate_request.rb +1 -1
  89. data/lib/openapi_client/models/exchange_rate_response.rb +1 -1
  90. data/lib/openapi_client/models/expiration.rb +1 -1
  91. data/lib/openapi_client/models/{merchant_location_merchant_address.rb → fraud_address.rb} +9 -9
  92. data/lib/openapi_client/models/fraud_order.rb +2 -2
  93. data/lib/openapi_client/models/fraud_order_items.rb +1 -1
  94. data/lib/openapi_client/models/fraud_registration.rb +259 -0
  95. data/lib/openapi_client/models/fraud_registration_card.rb +248 -0
  96. data/lib/openapi_client/models/fraud_registration_device.rb +375 -0
  97. data/lib/openapi_client/models/fraud_registration_device_items.rb +287 -0
  98. data/lib/openapi_client/models/{billing_address_phone.rb → fraud_registration_error.rb} +14 -23
  99. data/lib/openapi_client/models/fraud_registration_response.rb +279 -0
  100. data/lib/openapi_client/models/fraud_score.rb +232 -0
  101. data/lib/openapi_client/models/frequency.rb +1 -1
  102. data/lib/openapi_client/models/funding_transaction_type.rb +1 -1
  103. data/lib/openapi_client/models/industry_specific_extensions.rb +1 -1
  104. data/lib/openapi_client/models/installment_options.rb +1 -1
  105. data/lib/openapi_client/models/{payment_issuer_response.rb → issuer_response.rb} +4 -4
  106. data/lib/openapi_client/models/{device_networks.rb → items.rb} +4 -4
  107. data/lib/openapi_client/models/{merchant_location.rb → location.rb} +5 -5
  108. data/lib/openapi_client/models/lodging.rb +1 -1
  109. data/lib/openapi_client/models/lodging_extra_charges.rb +1 -1
  110. data/lib/openapi_client/models/loyalty.rb +1 -1
  111. data/lib/openapi_client/models/merchant.rb +2 -2
  112. data/lib/openapi_client/models/{payment_pay_method.rb → method.rb} +4 -4
  113. data/lib/openapi_client/models/order.rb +1 -1
  114. data/lib/openapi_client/models/order_error_response.rb +9 -28
  115. data/lib/openapi_client/models/order_response.rb +9 -28
  116. data/lib/openapi_client/models/pay_pal.rb +1 -1
  117. data/lib/openapi_client/models/pay_pal_payment_method.rb +1 -1
  118. data/lib/openapi_client/models/pay_pal_payment_method_all_of.rb +1 -1
  119. data/lib/openapi_client/models/payment.rb +10 -10
  120. data/lib/openapi_client/models/payment_card.rb +1 -1
  121. data/lib/openapi_client/models/payment_card_credit_transaction.rb +1 -1
  122. data/lib/openapi_client/models/payment_card_disbursement_transaction.rb +1 -1
  123. data/lib/openapi_client/models/payment_card_disbursement_transaction_all_of.rb +1 -1
  124. data/lib/openapi_client/models/payment_card_forced_ticket_transaction.rb +1 -1
  125. data/lib/openapi_client/models/payment_card_forced_ticket_transaction_all_of.rb +1 -1
  126. data/lib/openapi_client/models/payment_card_payer_auth_transaction.rb +1 -1
  127. data/lib/openapi_client/models/payment_card_payer_auth_transaction_all_of.rb +1 -1
  128. data/lib/openapi_client/models/payment_card_payment_method.rb +1 -1
  129. data/lib/openapi_client/models/payment_card_payment_method_all_of.rb +1 -1
  130. data/lib/openapi_client/models/payment_card_payment_tokenization_request.rb +1 -1
  131. data/lib/openapi_client/models/payment_card_payment_tokenization_request_all_of.rb +1 -1
  132. data/lib/openapi_client/models/payment_card_pre_auth_transaction.rb +1 -1
  133. data/lib/openapi_client/models/payment_card_pre_auth_transaction_all_of.rb +1 -1
  134. data/lib/openapi_client/models/payment_card_sale_transaction.rb +1 -1
  135. data/lib/openapi_client/models/payment_card_sale_transaction_all_of.rb +1 -1
  136. data/lib/openapi_client/models/payment_device.rb +336 -0
  137. data/lib/openapi_client/models/payment_device_credit_transaction.rb +307 -0
  138. data/lib/openapi_client/models/payment_device_credit_transaction_all_of.rb +201 -0
  139. data/lib/openapi_client/models/payment_device_disbursement_transaction.rb +321 -0
  140. data/lib/openapi_client/models/payment_device_disbursement_transaction_all_of.rb +215 -0
  141. data/lib/openapi_client/models/payment_device_payment_method.rb +219 -0
  142. data/lib/openapi_client/models/payment_device_payment_method_all_of.rb +210 -0
  143. data/lib/openapi_client/models/payment_device_payment_tokenization_request.rb +285 -0
  144. data/lib/openapi_client/models/payment_device_payment_tokenization_request_all_of.rb +201 -0
  145. data/lib/openapi_client/models/payment_device_pre_auth_transaction.rb +346 -0
  146. data/lib/openapi_client/models/payment_device_pre_auth_transaction_all_of.rb +240 -0
  147. data/lib/openapi_client/models/payment_device_sale_transaction.rb +325 -0
  148. data/lib/openapi_client/models/payment_device_sale_transaction_all_of.rb +219 -0
  149. data/lib/openapi_client/models/payment_facilitator.rb +1 -1
  150. data/lib/openapi_client/models/payment_method_details.rb +1 -1
  151. data/lib/openapi_client/models/payment_method_payment_schedules_request.rb +1 -1
  152. data/lib/openapi_client/models/payment_method_payment_schedules_request_all_of.rb +1 -1
  153. data/lib/openapi_client/models/payment_method_type.rb +2 -1
  154. data/lib/openapi_client/models/payment_registration.rb +331 -0
  155. data/lib/openapi_client/models/payment_schedules_error_response.rb +1 -1
  156. data/lib/openapi_client/models/payment_schedules_request.rb +1 -1
  157. data/lib/openapi_client/models/payment_schedules_response.rb +1 -1
  158. data/lib/openapi_client/models/payment_token_credit_transaction.rb +1 -1
  159. data/lib/openapi_client/models/payment_token_credit_transaction_all_of.rb +1 -1
  160. data/lib/openapi_client/models/payment_token_details.rb +1 -1
  161. data/lib/openapi_client/models/payment_token_details_all_of.rb +1 -1
  162. data/lib/openapi_client/models/payment_token_disbursement_transaction.rb +1 -1
  163. data/lib/openapi_client/models/payment_token_disbursement_transaction_all_of.rb +1 -1
  164. data/lib/openapi_client/models/payment_token_payment_method.rb +1 -1
  165. data/lib/openapi_client/models/payment_token_payment_method_all_of.rb +1 -1
  166. data/lib/openapi_client/models/payment_token_pre_auth_transaction.rb +1 -1
  167. data/lib/openapi_client/models/payment_token_pre_auth_transaction_all_of.rb +1 -1
  168. data/lib/openapi_client/models/payment_token_sale_transaction.rb +1 -1
  169. data/lib/openapi_client/models/payment_token_sale_transaction_all_of.rb +1 -1
  170. data/lib/openapi_client/models/payment_tokenization_error_response.rb +1 -1
  171. data/lib/openapi_client/models/payment_tokenization_request.rb +1 -1
  172. data/lib/openapi_client/models/payment_tokenization_response.rb +1 -1
  173. data/lib/openapi_client/models/payment_url_detail.rb +252 -0
  174. data/lib/openapi_client/models/payment_url_detail_response.rb +236 -0
  175. data/lib/openapi_client/models/payment_url_error_response.rb +1 -1
  176. data/lib/openapi_client/models/payment_url_request.rb +1 -1
  177. data/lib/openapi_client/models/payment_url_response.rb +1 -1
  178. data/lib/openapi_client/models/payment_url_status.rb +38 -0
  179. data/lib/openapi_client/models/paypal_credit_transaction.rb +1 -1
  180. data/lib/openapi_client/models/paypal_credit_transaction_all_of.rb +1 -1
  181. data/lib/openapi_client/models/{customer_address_phone.rb → phone.rb} +4 -4
  182. data/lib/openapi_client/models/post_auth_transaction.rb +1 -1
  183. data/lib/openapi_client/models/post_auth_transaction_all_of.rb +1 -1
  184. data/lib/openapi_client/models/primary_transaction.rb +1 -1
  185. data/lib/openapi_client/models/processor_data.rb +1 -1
  186. data/lib/openapi_client/models/purchase_cards.rb +1 -1
  187. data/lib/openapi_client/models/purchase_cards_level2.rb +1 -1
  188. data/lib/openapi_client/models/purchase_cards_level3.rb +2 -2
  189. data/lib/openapi_client/models/purchase_cards_level3_line_items.rb +1 -1
  190. data/lib/openapi_client/models/receiver_info.rb +1 -1
  191. data/lib/openapi_client/models/recurring_payment_details.rb +1 -1
  192. data/lib/openapi_client/models/recurring_payment_details_response.rb +9 -28
  193. data/lib/openapi_client/models/referenced_order_payment_schedules_request.rb +1 -1
  194. data/lib/openapi_client/models/referenced_order_payment_schedules_request_all_of.rb +1 -1
  195. data/lib/openapi_client/models/referenced_order_payment_tokenization_request.rb +1 -1
  196. data/lib/openapi_client/models/referenced_order_payment_tokenization_request_all_of.rb +1 -1
  197. data/lib/openapi_client/models/registration_method.rb +300 -0
  198. data/lib/openapi_client/models/response_amount_components.rb +1 -1
  199. data/lib/openapi_client/models/response_amount_components_all_of.rb +1 -1
  200. data/lib/openapi_client/models/response_type.rb +1 -1
  201. data/lib/openapi_client/models/return_transaction.rb +1 -1
  202. data/lib/openapi_client/models/return_transaction_all_of.rb +1 -1
  203. data/lib/openapi_client/models/score_only_request.rb +1 -13
  204. data/lib/openapi_client/models/score_only_response.rb +1 -1
  205. data/lib/openapi_client/models/score_only_response_fraud_score.rb +1 -1
  206. data/lib/openapi_client/models/score_only_response_fraud_score_explanations.rb +1 -1
  207. data/lib/openapi_client/models/secondary_transaction.rb +1 -1
  208. data/lib/openapi_client/models/secure3_d10_authentication_result.rb +1 -1
  209. data/lib/openapi_client/models/secure3_d10_authentication_result_all_of.rb +1 -1
  210. data/lib/openapi_client/models/secure3_d21_authentication_result.rb +1 -1
  211. data/lib/openapi_client/models/secure3_d21_authentication_result_all_of.rb +1 -1
  212. data/lib/openapi_client/models/secure3d_authentication_request.rb +1 -1
  213. data/lib/openapi_client/models/secure3d_authentication_verification_request.rb +1 -1
  214. data/lib/openapi_client/models/secure3d_authentication_verification_request_all_of.rb +1 -1
  215. data/lib/openapi_client/models/secure3d_response.rb +1 -1
  216. data/lib/openapi_client/models/sender_info.rb +1 -1
  217. data/lib/openapi_client/models/sepa.rb +1 -1
  218. data/lib/openapi_client/models/sepa_mandate.rb +1 -1
  219. data/lib/openapi_client/models/sepa_payment_method.rb +1 -1
  220. data/lib/openapi_client/models/sepa_payment_method_all_of.rb +1 -1
  221. data/lib/openapi_client/models/sepa_sale_transaction.rb +1 -1
  222. data/lib/openapi_client/models/sepa_sale_transaction_all_of.rb +1 -1
  223. data/lib/openapi_client/models/{fraud_order_ship_to_address.rb → ship_to_address.rb} +4 -4
  224. data/lib/openapi_client/models/shipping.rb +1 -1
  225. data/lib/openapi_client/models/soft_descriptor.rb +1 -1
  226. data/lib/openapi_client/models/split_shipment.rb +1 -1
  227. data/lib/openapi_client/models/stored_credential.rb +1 -1
  228. data/lib/openapi_client/models/sub_merchant_data.rb +1 -1
  229. data/lib/openapi_client/models/sub_merchant_split.rb +1 -1
  230. data/lib/openapi_client/models/transaction_error_response.rb +1 -1
  231. data/lib/openapi_client/models/transaction_origin.rb +1 -1
  232. data/lib/openapi_client/models/transaction_response.rb +1 -1
  233. data/lib/openapi_client/models/transaction_type.rb +1 -1
  234. data/lib/openapi_client/models/union_pay_authentication_request.rb +1 -1
  235. data/lib/openapi_client/models/union_pay_authentication_request_all_of.rb +1 -1
  236. data/lib/openapi_client/models/union_pay_authentication_verification_request.rb +1 -1
  237. data/lib/openapi_client/models/union_pay_authentication_verification_request_all_of.rb +1 -1
  238. data/lib/openapi_client/models/use_payment_token.rb +27 -2
  239. data/lib/openapi_client/models/{payment_verification3ds.rb → verification3ds.rb} +4 -4
  240. data/lib/openapi_client/models/{payment_verification_avs.rb → verification_avs.rb} +4 -4
  241. data/lib/openapi_client/models/{payment_verification_cvv.rb → verification_cvv.rb} +4 -4
  242. data/lib/openapi_client/models/void_transaction.rb +1 -1
  243. data/lib/openapi_client/models/wallet_payment_method.rb +2 -2
  244. data/lib/openapi_client/models/wallet_pre_auth_transaction.rb +1 -1
  245. data/lib/openapi_client/models/wallet_pre_auth_transaction_all_of.rb +1 -1
  246. data/lib/openapi_client/models/wallet_sale_transaction.rb +1 -1
  247. data/lib/openapi_client/models/wallet_sale_transaction_all_of.rb +1 -1
  248. data/lib/openapi_client/version.rb +2 -2
  249. data/lib/simple/gateway.rb +73 -0
  250. metadata +42 -17
  251. data/lib/openapi_client/.DS_Store +0 -0
  252. data/lib/openapi_client/api/.DS_Store +0 -0
  253. data/lib/openapi_client/models/.DS_Store +0 -0
  254. data/lib/openapi_client/models/transaction.rb +0 -350
@@ -0,0 +1,201 @@
1
+ =begin
2
+ #Payment Gateway API Specification.
3
+
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
+
6
+ The version of the OpenAPI document: 6.8.0.20190731.002
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ class PaymentDevicePaymentTokenizationRequestAllOf
17
+ attr_accessor :payment_device
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'payment_device' => :'paymentDevice'
23
+ }
24
+ end
25
+
26
+ # Attribute type mapping.
27
+ def self.openapi_types
28
+ {
29
+ :'payment_device' => :'PaymentDevice'
30
+ }
31
+ end
32
+
33
+ # Initializes the object
34
+ # @param [Hash] attributes Model attributes in the form of hash
35
+ def initialize(attributes = {})
36
+ if (!attributes.is_a?(Hash))
37
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::PaymentDevicePaymentTokenizationRequestAllOf` initialize method"
38
+ end
39
+
40
+ # check to see if the attribute exists and convert string to symbol for hash key
41
+ attributes = attributes.each_with_object({}) { |(k, v), h|
42
+ if (!self.class.attribute_map.key?(k.to_sym))
43
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::PaymentDevicePaymentTokenizationRequestAllOf`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
44
+ end
45
+ h[k.to_sym] = v
46
+ }
47
+
48
+ if attributes.key?(:'payment_device')
49
+ self.payment_device = attributes[:'payment_device']
50
+ end
51
+ end
52
+
53
+ # Show invalid properties with the reasons. Usually used together with valid?
54
+ # @return Array for valid properties with the reasons
55
+ def list_invalid_properties
56
+ invalid_properties = Array.new
57
+ if @payment_device.nil?
58
+ invalid_properties.push('invalid value for "payment_device", payment_device cannot be nil.')
59
+ end
60
+
61
+ invalid_properties
62
+ end
63
+
64
+ # Check to see if the all the properties in the model are valid
65
+ # @return true if the model is valid
66
+ def valid?
67
+ return false if @payment_device.nil?
68
+ true
69
+ end
70
+
71
+ # Checks equality by comparing each attribute.
72
+ # @param [Object] Object to be compared
73
+ def ==(o)
74
+ return true if self.equal?(o)
75
+ self.class == o.class &&
76
+ payment_device == o.payment_device
77
+ end
78
+
79
+ # @see the `==` method
80
+ # @param [Object] Object to be compared
81
+ def eql?(o)
82
+ self == o
83
+ end
84
+
85
+ # Calculates hash code according to all attributes.
86
+ # @return [Integer] Hash code
87
+ def hash
88
+ [payment_device].hash
89
+ end
90
+
91
+ # Builds the object from hash
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ # @return [Object] Returns the model itself
94
+ def self.build_from_hash(attributes)
95
+ new.build_from_hash(attributes)
96
+ end
97
+
98
+ # Builds the object from hash
99
+ # @param [Hash] attributes Model attributes in the form of hash
100
+ # @return [Object] Returns the model itself
101
+ def build_from_hash(attributes)
102
+ return nil unless attributes.is_a?(Hash)
103
+ self.class.openapi_types.each_pair do |key, type|
104
+ if type =~ /\AArray<(.*)>/i
105
+ # check to ensure the input is an array given that the attribute
106
+ # is documented as an array but the input is not
107
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
108
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
109
+ end
110
+ elsif !attributes[self.class.attribute_map[key]].nil?
111
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
112
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
113
+ end
114
+
115
+ self
116
+ end
117
+
118
+ # Deserializes the data based on type
119
+ # @param string type Data type
120
+ # @param string value Value to be deserialized
121
+ # @return [Object] Deserialized data
122
+ def _deserialize(type, value)
123
+ case type.to_sym
124
+ when :DateTime
125
+ DateTime.parse(value)
126
+ when :Date
127
+ Date.parse(value)
128
+ when :String
129
+ value.to_s
130
+ when :Integer
131
+ value.to_i
132
+ when :Float
133
+ value.to_f
134
+ when :Boolean
135
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
136
+ true
137
+ else
138
+ false
139
+ end
140
+ when :Object
141
+ # generic object (usually a Hash), return directly
142
+ value
143
+ when /\AArray<(?<inner_type>.+)>\z/
144
+ inner_type = Regexp.last_match[:inner_type]
145
+ value.map { |v| _deserialize(inner_type, v) }
146
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
147
+ k_type = Regexp.last_match[:k_type]
148
+ v_type = Regexp.last_match[:v_type]
149
+ {}.tap do |hash|
150
+ value.each do |k, v|
151
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
152
+ end
153
+ end
154
+ else # model
155
+ OpenapiClient.const_get(type).build_from_hash(value)
156
+ end
157
+ end
158
+
159
+ # Returns the string representation of the object
160
+ # @return [String] String presentation of the object
161
+ def to_s
162
+ to_hash.to_s
163
+ end
164
+
165
+ # to_body is an alias to to_hash (backward compatibility)
166
+ # @return [Hash] Returns the object in the form of hash
167
+ def to_body
168
+ to_hash
169
+ end
170
+
171
+ # Returns the object in the form of hash
172
+ # @return [Hash] Returns the object in the form of hash
173
+ def to_hash
174
+ hash = {}
175
+ self.class.attribute_map.each_pair do |attr, param|
176
+ value = self.send(attr)
177
+ next if value.nil?
178
+ hash[param] = _to_hash(value)
179
+ end
180
+ hash
181
+ end
182
+
183
+ # Outputs non-array value in the form of hash
184
+ # For object, use to_hash. Otherwise, just return the value
185
+ # @param [Object] value Any valid value
186
+ # @return [Hash] Returns the value in the form of hash
187
+ def _to_hash(value)
188
+ if value.is_a?(Array)
189
+ value.compact.map { |v| _to_hash(v) }
190
+ elsif value.is_a?(Hash)
191
+ {}.tap do |hash|
192
+ value.each { |k, v| hash[k] = _to_hash(v) }
193
+ end
194
+ elsif value.respond_to? :to_hash
195
+ value.to_hash
196
+ else
197
+ value
198
+ end
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,346 @@
1
+ =begin
2
+ #Payment Gateway API Specification.
3
+
4
+ #The documentation here is designed to provide all of the technical guidance required to consume and integrate with our APIs for payment processing. To learn more about our APIs please visit https://docs.firstdata.com/org/gateway.
5
+
6
+ The version of the OpenAPI document: 6.8.0.20190731.002
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: unset
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # Request to create pre-auth transaction using decrypted card details from payment device. The transaction origin will be fixed as PHONE when data is manually entered into the device and as RETAIL when data is entered into the device via swipe.
17
+ class PaymentDevicePreAuthTransaction
18
+ # Object name of the primary transaction request.
19
+ attr_accessor :request_type
20
+
21
+ attr_accessor :transaction_amount
22
+
23
+ # An optional outlet ID for clients that support multiple stores in the same app.
24
+ attr_accessor :store_id
25
+
26
+ # The unique merchant transaction ID from the request header, if supplied.
27
+ attr_accessor :merchant_transaction_id
28
+
29
+ attr_accessor :transaction_origin
30
+
31
+ attr_accessor :order
32
+
33
+ attr_accessor :payment_method
34
+
35
+ attr_accessor :create_token
36
+
37
+ # Settle with multiple sub-merchants, sale and preAuth only.
38
+ attr_accessor :settlement_split
39
+
40
+ attr_accessor :stored_credentials
41
+
42
+ attr_accessor :split_shipment
43
+
44
+ # Attribute mapping from ruby-style variable name to JSON key.
45
+ def self.attribute_map
46
+ {
47
+ :'request_type' => :'requestType',
48
+ :'transaction_amount' => :'transactionAmount',
49
+ :'store_id' => :'storeId',
50
+ :'merchant_transaction_id' => :'merchantTransactionId',
51
+ :'transaction_origin' => :'transactionOrigin',
52
+ :'order' => :'order',
53
+ :'payment_method' => :'paymentMethod',
54
+ :'create_token' => :'createToken',
55
+ :'settlement_split' => :'settlementSplit',
56
+ :'stored_credentials' => :'storedCredentials',
57
+ :'split_shipment' => :'splitShipment'
58
+ }
59
+ end
60
+
61
+ # Attribute type mapping.
62
+ def self.openapi_types
63
+ {
64
+ :'request_type' => :'String',
65
+ :'transaction_amount' => :'Amount',
66
+ :'store_id' => :'String',
67
+ :'merchant_transaction_id' => :'String',
68
+ :'transaction_origin' => :'TransactionOrigin',
69
+ :'order' => :'Order',
70
+ :'payment_method' => :'PaymentDevicePaymentMethod',
71
+ :'create_token' => :'CreatePaymentToken',
72
+ :'settlement_split' => :'Array<SubMerchantSplit>',
73
+ :'stored_credentials' => :'StoredCredential',
74
+ :'split_shipment' => :'SplitShipment'
75
+ }
76
+ end
77
+
78
+ # List of class defined in allOf (OpenAPI v3)
79
+ def self.openapi_all_of
80
+ [
81
+ :'PaymentDevicePreAuthTransactionAllOf',
82
+ :'PrimaryTransaction'
83
+ ]
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::PaymentDevicePreAuthTransaction` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ attributes = attributes.each_with_object({}) { |(k, v), h|
95
+ if (!self.class.attribute_map.key?(k.to_sym))
96
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::PaymentDevicePreAuthTransaction`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
97
+ end
98
+ h[k.to_sym] = v
99
+ }
100
+
101
+ if attributes.key?(:'request_type')
102
+ self.request_type = attributes[:'request_type']
103
+ end
104
+
105
+ if attributes.key?(:'transaction_amount')
106
+ self.transaction_amount = attributes[:'transaction_amount']
107
+ end
108
+
109
+ if attributes.key?(:'store_id')
110
+ self.store_id = attributes[:'store_id']
111
+ end
112
+
113
+ if attributes.key?(:'merchant_transaction_id')
114
+ self.merchant_transaction_id = attributes[:'merchant_transaction_id']
115
+ end
116
+
117
+ if attributes.key?(:'transaction_origin')
118
+ self.transaction_origin = attributes[:'transaction_origin']
119
+ end
120
+
121
+ if attributes.key?(:'order')
122
+ self.order = attributes[:'order']
123
+ end
124
+
125
+ if attributes.key?(:'payment_method')
126
+ self.payment_method = attributes[:'payment_method']
127
+ end
128
+
129
+ if attributes.key?(:'create_token')
130
+ self.create_token = attributes[:'create_token']
131
+ end
132
+
133
+ if attributes.key?(:'settlement_split')
134
+ if (value = attributes[:'settlement_split']).is_a?(Array)
135
+ self.settlement_split = value
136
+ end
137
+ end
138
+
139
+ if attributes.key?(:'stored_credentials')
140
+ self.stored_credentials = attributes[:'stored_credentials']
141
+ end
142
+
143
+ if attributes.key?(:'split_shipment')
144
+ self.split_shipment = attributes[:'split_shipment']
145
+ end
146
+ end
147
+
148
+ # Show invalid properties with the reasons. Usually used together with valid?
149
+ # @return Array for valid properties with the reasons
150
+ def list_invalid_properties
151
+ invalid_properties = Array.new
152
+ if @request_type.nil?
153
+ invalid_properties.push('invalid value for "request_type", request_type cannot be nil.')
154
+ end
155
+
156
+ if @transaction_amount.nil?
157
+ invalid_properties.push('invalid value for "transaction_amount", transaction_amount cannot be nil.')
158
+ end
159
+
160
+ if !@store_id.nil? && @store_id.to_s.length > 20
161
+ invalid_properties.push('invalid value for "store_id", the character length must be smaller than or equal to 20.')
162
+ end
163
+
164
+ if !@merchant_transaction_id.nil? && @merchant_transaction_id.to_s.length > 40
165
+ invalid_properties.push('invalid value for "merchant_transaction_id", the character length must be smaller than or equal to 40.')
166
+ end
167
+
168
+ if @payment_method.nil?
169
+ invalid_properties.push('invalid value for "payment_method", payment_method cannot be nil.')
170
+ end
171
+
172
+ invalid_properties
173
+ end
174
+
175
+ # Check to see if the all the properties in the model are valid
176
+ # @return true if the model is valid
177
+ def valid?
178
+ return false if @request_type.nil?
179
+ return false if @transaction_amount.nil?
180
+ return false if !@store_id.nil? && @store_id.to_s.length > 20
181
+ return false if !@merchant_transaction_id.nil? && @merchant_transaction_id.to_s.length > 40
182
+ return false if @payment_method.nil?
183
+ true
184
+ end
185
+
186
+ # Custom attribute writer method with validation
187
+ # @param [Object] store_id Value to be assigned
188
+ def store_id=(store_id)
189
+ if !store_id.nil? && store_id.to_s.length > 20
190
+ fail ArgumentError, 'invalid value for "store_id", the character length must be smaller than or equal to 20.'
191
+ end
192
+
193
+ @store_id = store_id
194
+ end
195
+
196
+ # Custom attribute writer method with validation
197
+ # @param [Object] merchant_transaction_id Value to be assigned
198
+ def merchant_transaction_id=(merchant_transaction_id)
199
+ if !merchant_transaction_id.nil? && merchant_transaction_id.to_s.length > 40
200
+ fail ArgumentError, 'invalid value for "merchant_transaction_id", the character length must be smaller than or equal to 40.'
201
+ end
202
+
203
+ @merchant_transaction_id = merchant_transaction_id
204
+ end
205
+
206
+ # Checks equality by comparing each attribute.
207
+ # @param [Object] Object to be compared
208
+ def ==(o)
209
+ return true if self.equal?(o)
210
+ self.class == o.class &&
211
+ request_type == o.request_type &&
212
+ transaction_amount == o.transaction_amount &&
213
+ store_id == o.store_id &&
214
+ merchant_transaction_id == o.merchant_transaction_id &&
215
+ transaction_origin == o.transaction_origin &&
216
+ order == o.order &&
217
+ payment_method == o.payment_method &&
218
+ create_token == o.create_token &&
219
+ settlement_split == o.settlement_split &&
220
+ stored_credentials == o.stored_credentials &&
221
+ split_shipment == o.split_shipment
222
+ end
223
+
224
+ # @see the `==` method
225
+ # @param [Object] Object to be compared
226
+ def eql?(o)
227
+ self == o
228
+ end
229
+
230
+ # Calculates hash code according to all attributes.
231
+ # @return [Integer] Hash code
232
+ def hash
233
+ [request_type, transaction_amount, store_id, merchant_transaction_id, transaction_origin, order, payment_method, create_token, settlement_split, stored_credentials, split_shipment].hash
234
+ end
235
+
236
+ # Builds the object from hash
237
+ # @param [Hash] attributes Model attributes in the form of hash
238
+ # @return [Object] Returns the model itself
239
+ def self.build_from_hash(attributes)
240
+ new.build_from_hash(attributes)
241
+ end
242
+
243
+ # Builds the object from hash
244
+ # @param [Hash] attributes Model attributes in the form of hash
245
+ # @return [Object] Returns the model itself
246
+ def build_from_hash(attributes)
247
+ return nil unless attributes.is_a?(Hash)
248
+ self.class.openapi_types.each_pair do |key, type|
249
+ if type =~ /\AArray<(.*)>/i
250
+ # check to ensure the input is an array given that the attribute
251
+ # is documented as an array but the input is not
252
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
253
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
254
+ end
255
+ elsif !attributes[self.class.attribute_map[key]].nil?
256
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
257
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
258
+ end
259
+
260
+ self
261
+ end
262
+
263
+ # Deserializes the data based on type
264
+ # @param string type Data type
265
+ # @param string value Value to be deserialized
266
+ # @return [Object] Deserialized data
267
+ def _deserialize(type, value)
268
+ case type.to_sym
269
+ when :DateTime
270
+ DateTime.parse(value)
271
+ when :Date
272
+ Date.parse(value)
273
+ when :String
274
+ value.to_s
275
+ when :Integer
276
+ value.to_i
277
+ when :Float
278
+ value.to_f
279
+ when :Boolean
280
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
281
+ true
282
+ else
283
+ false
284
+ end
285
+ when :Object
286
+ # generic object (usually a Hash), return directly
287
+ value
288
+ when /\AArray<(?<inner_type>.+)>\z/
289
+ inner_type = Regexp.last_match[:inner_type]
290
+ value.map { |v| _deserialize(inner_type, v) }
291
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
292
+ k_type = Regexp.last_match[:k_type]
293
+ v_type = Regexp.last_match[:v_type]
294
+ {}.tap do |hash|
295
+ value.each do |k, v|
296
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
297
+ end
298
+ end
299
+ else # model
300
+ OpenapiClient.const_get(type).build_from_hash(value)
301
+ end
302
+ end
303
+
304
+ # Returns the string representation of the object
305
+ # @return [String] String presentation of the object
306
+ def to_s
307
+ to_hash.to_s
308
+ end
309
+
310
+ # to_body is an alias to to_hash (backward compatibility)
311
+ # @return [Hash] Returns the object in the form of hash
312
+ def to_body
313
+ to_hash
314
+ end
315
+
316
+ # Returns the object in the form of hash
317
+ # @return [Hash] Returns the object in the form of hash
318
+ def to_hash
319
+ hash = {}
320
+ self.class.attribute_map.each_pair do |attr, param|
321
+ value = self.send(attr)
322
+ next if value.nil?
323
+ hash[param] = _to_hash(value)
324
+ end
325
+ hash
326
+ end
327
+
328
+ # Outputs non-array value in the form of hash
329
+ # For object, use to_hash. Otherwise, just return the value
330
+ # @param [Object] value Any valid value
331
+ # @return [Hash] Returns the value in the form of hash
332
+ def _to_hash(value)
333
+ if value.is_a?(Array)
334
+ value.compact.map { |v| _to_hash(v) }
335
+ elsif value.is_a?(Hash)
336
+ {}.tap do |hash|
337
+ value.each { |k, v| hash[k] = _to_hash(v) }
338
+ end
339
+ elsif value.respond_to? :to_hash
340
+ value.to_hash
341
+ else
342
+ value
343
+ end
344
+ end
345
+ end
346
+ end