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,375 @@
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
+ # The device where this transaction originated.
17
+ class FraudRegistrationDevice
18
+ # Defines the type of this object.
19
+ attr_accessor :device_type
20
+
21
+ # The unique ID of the device. Must be unique for the entire system (not just within a specific merchant or industry).
22
+ attr_accessor :device_id
23
+
24
+ # Information about the networks associated with the device.
25
+ attr_accessor :networks
26
+
27
+ # The GPS decimal latitude, ranging from (-90.0 to 90.0) where positive numbers indicate locations North of the equator.
28
+ attr_accessor :latitude
29
+
30
+ # The GPS decimal longitude, ranging from (-180.0 to 180.0) where positive numbers indicate locations East of the IERS Reference Meridian.
31
+ attr_accessor :longitude
32
+
33
+ # The device's International Mobile Equipment Identity (IMEI) as described in IETF RFC7254.
34
+ attr_accessor :imei
35
+
36
+ # The device's model name.
37
+ attr_accessor :model
38
+
39
+ # The device's manufacturer.
40
+ attr_accessor :manufacturer
41
+
42
+ # The timezone offset from UTC to the devices timezone configuration, specified in the format +hh:mm.
43
+ attr_accessor :timezone_offset
44
+
45
+ # A flag indicating that the device has been altered to allow privileged access to users. This flag should only be set to false if a test was performed and the result was negative. Leave unset otherwise.
46
+ attr_accessor :rooted
47
+
48
+ # A flag indicating that malware was detected on the mobile phone. This flag should only be set to false if a test was performed and the result was negative. Leave unset otherwise.
49
+ attr_accessor :malware_detected
50
+
51
+ # A JSON object that can carry any additional information about the device that might be helpful for fraud detection.
52
+ attr_accessor :user_defined
53
+
54
+ class EnumAttributeValidator
55
+ attr_reader :datatype
56
+ attr_reader :allowable_values
57
+
58
+ def initialize(datatype, allowable_values)
59
+ @allowable_values = allowable_values.map do |value|
60
+ case datatype.to_s
61
+ when /Integer/i
62
+ value.to_i
63
+ when /Float/i
64
+ value.to_f
65
+ else
66
+ value
67
+ end
68
+ end
69
+ end
70
+
71
+ def valid?(value)
72
+ !value || allowable_values.include?(value)
73
+ end
74
+ end
75
+
76
+ # Attribute mapping from ruby-style variable name to JSON key.
77
+ def self.attribute_map
78
+ {
79
+ :'device_type' => :'deviceType',
80
+ :'device_id' => :'deviceId',
81
+ :'networks' => :'networks',
82
+ :'latitude' => :'latitude',
83
+ :'longitude' => :'longitude',
84
+ :'imei' => :'imei',
85
+ :'model' => :'model',
86
+ :'manufacturer' => :'manufacturer',
87
+ :'timezone_offset' => :'timezoneOffset',
88
+ :'rooted' => :'rooted',
89
+ :'malware_detected' => :'malwareDetected',
90
+ :'user_defined' => :'userDefined'
91
+ }
92
+ end
93
+
94
+ # Attribute type mapping.
95
+ def self.openapi_types
96
+ {
97
+ :'device_type' => :'String',
98
+ :'device_id' => :'String',
99
+ :'networks' => :'Array<FraudRegistrationDeviceItems>',
100
+ :'latitude' => :'Float',
101
+ :'longitude' => :'Float',
102
+ :'imei' => :'String',
103
+ :'model' => :'String',
104
+ :'manufacturer' => :'String',
105
+ :'timezone_offset' => :'String',
106
+ :'rooted' => :'Boolean',
107
+ :'malware_detected' => :'Boolean',
108
+ :'user_defined' => :'Object'
109
+ }
110
+ end
111
+
112
+ # Initializes the object
113
+ # @param [Hash] attributes Model attributes in the form of hash
114
+ def initialize(attributes = {})
115
+ if (!attributes.is_a?(Hash))
116
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::FraudRegistrationDevice` initialize method"
117
+ end
118
+
119
+ # check to see if the attribute exists and convert string to symbol for hash key
120
+ attributes = attributes.each_with_object({}) { |(k, v), h|
121
+ if (!self.class.attribute_map.key?(k.to_sym))
122
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::FraudRegistrationDevice`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
123
+ end
124
+ h[k.to_sym] = v
125
+ }
126
+
127
+ if attributes.key?(:'device_type')
128
+ self.device_type = attributes[:'device_type']
129
+ end
130
+
131
+ if attributes.key?(:'device_id')
132
+ self.device_id = attributes[:'device_id']
133
+ end
134
+
135
+ if attributes.key?(:'networks')
136
+ if (value = attributes[:'networks']).is_a?(Array)
137
+ self.networks = value
138
+ end
139
+ end
140
+
141
+ if attributes.key?(:'latitude')
142
+ self.latitude = attributes[:'latitude']
143
+ end
144
+
145
+ if attributes.key?(:'longitude')
146
+ self.longitude = attributes[:'longitude']
147
+ end
148
+
149
+ if attributes.key?(:'imei')
150
+ self.imei = attributes[:'imei']
151
+ end
152
+
153
+ if attributes.key?(:'model')
154
+ self.model = attributes[:'model']
155
+ end
156
+
157
+ if attributes.key?(:'manufacturer')
158
+ self.manufacturer = attributes[:'manufacturer']
159
+ end
160
+
161
+ if attributes.key?(:'timezone_offset')
162
+ self.timezone_offset = attributes[:'timezone_offset']
163
+ end
164
+
165
+ if attributes.key?(:'rooted')
166
+ self.rooted = attributes[:'rooted']
167
+ end
168
+
169
+ if attributes.key?(:'malware_detected')
170
+ self.malware_detected = attributes[:'malware_detected']
171
+ end
172
+
173
+ if attributes.key?(:'user_defined')
174
+ self.user_defined = attributes[:'user_defined']
175
+ end
176
+ end
177
+
178
+ # Show invalid properties with the reasons. Usually used together with valid?
179
+ # @return Array for valid properties with the reasons
180
+ def list_invalid_properties
181
+ invalid_properties = Array.new
182
+ if @device_type.nil?
183
+ invalid_properties.push('invalid value for "device_type", device_type cannot be nil.')
184
+ end
185
+
186
+ if @device_id.nil?
187
+ invalid_properties.push('invalid value for "device_id", device_id cannot be nil.')
188
+ end
189
+
190
+ pattern = Regexp.new(/^(?!\s*$).+/)
191
+ if @device_id !~ pattern
192
+ invalid_properties.push("invalid value for \"device_id\", must conform to the pattern #{pattern}.")
193
+ end
194
+
195
+ invalid_properties
196
+ end
197
+
198
+ # Check to see if the all the properties in the model are valid
199
+ # @return true if the model is valid
200
+ def valid?
201
+ return false if @device_type.nil?
202
+ device_type_validator = EnumAttributeValidator.new('String', ["device/pos", "device/mobile"])
203
+ return false unless device_type_validator.valid?(@device_type)
204
+ return false if @device_id.nil?
205
+ return false if @device_id !~ Regexp.new(/^(?!\s*$).+/)
206
+ true
207
+ end
208
+
209
+ # Custom attribute writer method checking allowed values (enum).
210
+ # @param [Object] device_type Object to be assigned
211
+ def device_type=(device_type)
212
+ validator = EnumAttributeValidator.new('String', ["device/pos", "device/mobile"])
213
+ unless validator.valid?(device_type)
214
+ fail ArgumentError, "invalid value for \"device_type\", must be one of #{validator.allowable_values}."
215
+ end
216
+ @device_type = device_type
217
+ end
218
+
219
+ # Custom attribute writer method with validation
220
+ # @param [Object] device_id Value to be assigned
221
+ def device_id=(device_id)
222
+ if device_id.nil?
223
+ fail ArgumentError, 'device_id cannot be nil'
224
+ end
225
+
226
+ pattern = Regexp.new(/^(?!\s*$).+/)
227
+ if device_id !~ pattern
228
+ fail ArgumentError, "invalid value for \"device_id\", must conform to the pattern #{pattern}."
229
+ end
230
+
231
+ @device_id = device_id
232
+ end
233
+
234
+ # Checks equality by comparing each attribute.
235
+ # @param [Object] Object to be compared
236
+ def ==(o)
237
+ return true if self.equal?(o)
238
+ self.class == o.class &&
239
+ device_type == o.device_type &&
240
+ device_id == o.device_id &&
241
+ networks == o.networks &&
242
+ latitude == o.latitude &&
243
+ longitude == o.longitude &&
244
+ imei == o.imei &&
245
+ model == o.model &&
246
+ manufacturer == o.manufacturer &&
247
+ timezone_offset == o.timezone_offset &&
248
+ rooted == o.rooted &&
249
+ malware_detected == o.malware_detected &&
250
+ user_defined == o.user_defined
251
+ end
252
+
253
+ # @see the `==` method
254
+ # @param [Object] Object to be compared
255
+ def eql?(o)
256
+ self == o
257
+ end
258
+
259
+ # Calculates hash code according to all attributes.
260
+ # @return [Integer] Hash code
261
+ def hash
262
+ [device_type, device_id, networks, latitude, longitude, imei, model, manufacturer, timezone_offset, rooted, malware_detected, user_defined].hash
263
+ end
264
+
265
+ # Builds the object from hash
266
+ # @param [Hash] attributes Model attributes in the form of hash
267
+ # @return [Object] Returns the model itself
268
+ def self.build_from_hash(attributes)
269
+ new.build_from_hash(attributes)
270
+ end
271
+
272
+ # Builds the object from hash
273
+ # @param [Hash] attributes Model attributes in the form of hash
274
+ # @return [Object] Returns the model itself
275
+ def build_from_hash(attributes)
276
+ return nil unless attributes.is_a?(Hash)
277
+ self.class.openapi_types.each_pair do |key, type|
278
+ if type =~ /\AArray<(.*)>/i
279
+ # check to ensure the input is an array given that the attribute
280
+ # is documented as an array but the input is not
281
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
282
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
283
+ end
284
+ elsif !attributes[self.class.attribute_map[key]].nil?
285
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
286
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
287
+ end
288
+
289
+ self
290
+ end
291
+
292
+ # Deserializes the data based on type
293
+ # @param string type Data type
294
+ # @param string value Value to be deserialized
295
+ # @return [Object] Deserialized data
296
+ def _deserialize(type, value)
297
+ case type.to_sym
298
+ when :DateTime
299
+ DateTime.parse(value)
300
+ when :Date
301
+ Date.parse(value)
302
+ when :String
303
+ value.to_s
304
+ when :Integer
305
+ value.to_i
306
+ when :Float
307
+ value.to_f
308
+ when :Boolean
309
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
310
+ true
311
+ else
312
+ false
313
+ end
314
+ when :Object
315
+ # generic object (usually a Hash), return directly
316
+ value
317
+ when /\AArray<(?<inner_type>.+)>\z/
318
+ inner_type = Regexp.last_match[:inner_type]
319
+ value.map { |v| _deserialize(inner_type, v) }
320
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
321
+ k_type = Regexp.last_match[:k_type]
322
+ v_type = Regexp.last_match[:v_type]
323
+ {}.tap do |hash|
324
+ value.each do |k, v|
325
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
326
+ end
327
+ end
328
+ else # model
329
+ OpenapiClient.const_get(type).build_from_hash(value)
330
+ end
331
+ end
332
+
333
+ # Returns the string representation of the object
334
+ # @return [String] String presentation of the object
335
+ def to_s
336
+ to_hash.to_s
337
+ end
338
+
339
+ # to_body is an alias to to_hash (backward compatibility)
340
+ # @return [Hash] Returns the object in the form of hash
341
+ def to_body
342
+ to_hash
343
+ end
344
+
345
+ # Returns the object in the form of hash
346
+ # @return [Hash] Returns the object in the form of hash
347
+ def to_hash
348
+ hash = {}
349
+ self.class.attribute_map.each_pair do |attr, param|
350
+ value = self.send(attr)
351
+ next if value.nil?
352
+ hash[param] = _to_hash(value)
353
+ end
354
+ hash
355
+ end
356
+
357
+ # Outputs non-array value in the form of hash
358
+ # For object, use to_hash. Otherwise, just return the value
359
+ # @param [Object] value Any valid value
360
+ # @return [Hash] Returns the value in the form of hash
361
+ def _to_hash(value)
362
+ if value.is_a?(Array)
363
+ value.compact.map { |v| _to_hash(v) }
364
+ elsif value.is_a?(Hash)
365
+ {}.tap do |hash|
366
+ value.each { |k, v| hash[k] = _to_hash(v) }
367
+ end
368
+ elsif value.respond_to? :to_hash
369
+ value.to_hash
370
+ else
371
+ value
372
+ end
373
+ end
374
+ end
375
+ end
@@ -0,0 +1,287 @@
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
+ # Network information.
17
+ class FraudRegistrationDeviceItems
18
+ # Defines the type of network associated with the device.
19
+ attr_accessor :network_type
20
+
21
+ # The IPv4 or IPv6 address of the device if the network assigned one.
22
+ attr_accessor :ip
23
+
24
+ # The MAC address of the device that is connected to the Wi-Fi network.
25
+ attr_accessor :mac
26
+
27
+ # The Wi-Fi networks Service Set Identifier (SSID).
28
+ attr_accessor :ssid
29
+
30
+ # The Wi-Fi networks Basic Service Set Identifier (BSSID).
31
+ attr_accessor :bssid
32
+
33
+ # A JSON object that can carry any additional information about the network that might be helpful for fraud detection.
34
+ attr_accessor :user_defined
35
+
36
+ class EnumAttributeValidator
37
+ attr_reader :datatype
38
+ attr_reader :allowable_values
39
+
40
+ def initialize(datatype, allowable_values)
41
+ @allowable_values = allowable_values.map do |value|
42
+ case datatype.to_s
43
+ when /Integer/i
44
+ value.to_i
45
+ when /Float/i
46
+ value.to_f
47
+ else
48
+ value
49
+ end
50
+ end
51
+ end
52
+
53
+ def valid?(value)
54
+ !value || allowable_values.include?(value)
55
+ end
56
+ end
57
+
58
+ # Attribute mapping from ruby-style variable name to JSON key.
59
+ def self.attribute_map
60
+ {
61
+ :'network_type' => :'networkType',
62
+ :'ip' => :'ip',
63
+ :'mac' => :'mac',
64
+ :'ssid' => :'ssid',
65
+ :'bssid' => :'bssid',
66
+ :'user_defined' => :'userDefined'
67
+ }
68
+ end
69
+
70
+ # Attribute type mapping.
71
+ def self.openapi_types
72
+ {
73
+ :'network_type' => :'String',
74
+ :'ip' => :'String',
75
+ :'mac' => :'String',
76
+ :'ssid' => :'String',
77
+ :'bssid' => :'String',
78
+ :'user_defined' => :'Object'
79
+ }
80
+ end
81
+
82
+ # Initializes the object
83
+ # @param [Hash] attributes Model attributes in the form of hash
84
+ def initialize(attributes = {})
85
+ if (!attributes.is_a?(Hash))
86
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::FraudRegistrationDeviceItems` initialize method"
87
+ end
88
+
89
+ # check to see if the attribute exists and convert string to symbol for hash key
90
+ attributes = attributes.each_with_object({}) { |(k, v), h|
91
+ if (!self.class.attribute_map.key?(k.to_sym))
92
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::FraudRegistrationDeviceItems`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
93
+ end
94
+ h[k.to_sym] = v
95
+ }
96
+
97
+ if attributes.key?(:'network_type')
98
+ self.network_type = attributes[:'network_type']
99
+ end
100
+
101
+ if attributes.key?(:'ip')
102
+ self.ip = attributes[:'ip']
103
+ end
104
+
105
+ if attributes.key?(:'mac')
106
+ self.mac = attributes[:'mac']
107
+ end
108
+
109
+ if attributes.key?(:'ssid')
110
+ self.ssid = attributes[:'ssid']
111
+ end
112
+
113
+ if attributes.key?(:'bssid')
114
+ self.bssid = attributes[:'bssid']
115
+ end
116
+
117
+ if attributes.key?(:'user_defined')
118
+ self.user_defined = attributes[:'user_defined']
119
+ end
120
+ end
121
+
122
+ # Show invalid properties with the reasons. Usually used together with valid?
123
+ # @return Array for valid properties with the reasons
124
+ def list_invalid_properties
125
+ invalid_properties = Array.new
126
+ if @network_type.nil?
127
+ invalid_properties.push('invalid value for "network_type", network_type cannot be nil.')
128
+ end
129
+
130
+ invalid_properties
131
+ end
132
+
133
+ # Check to see if the all the properties in the model are valid
134
+ # @return true if the model is valid
135
+ def valid?
136
+ return false if @network_type.nil?
137
+ network_type_validator = EnumAttributeValidator.new('String', ["network/mobile", "network/wifi"])
138
+ return false unless network_type_validator.valid?(@network_type)
139
+ true
140
+ end
141
+
142
+ # Custom attribute writer method checking allowed values (enum).
143
+ # @param [Object] network_type Object to be assigned
144
+ def network_type=(network_type)
145
+ validator = EnumAttributeValidator.new('String', ["network/mobile", "network/wifi"])
146
+ unless validator.valid?(network_type)
147
+ fail ArgumentError, "invalid value for \"network_type\", must be one of #{validator.allowable_values}."
148
+ end
149
+ @network_type = network_type
150
+ end
151
+
152
+ # Checks equality by comparing each attribute.
153
+ # @param [Object] Object to be compared
154
+ def ==(o)
155
+ return true if self.equal?(o)
156
+ self.class == o.class &&
157
+ network_type == o.network_type &&
158
+ ip == o.ip &&
159
+ mac == o.mac &&
160
+ ssid == o.ssid &&
161
+ bssid == o.bssid &&
162
+ user_defined == o.user_defined
163
+ end
164
+
165
+ # @see the `==` method
166
+ # @param [Object] Object to be compared
167
+ def eql?(o)
168
+ self == o
169
+ end
170
+
171
+ # Calculates hash code according to all attributes.
172
+ # @return [Integer] Hash code
173
+ def hash
174
+ [network_type, ip, mac, ssid, bssid, user_defined].hash
175
+ end
176
+
177
+ # Builds the object from hash
178
+ # @param [Hash] attributes Model attributes in the form of hash
179
+ # @return [Object] Returns the model itself
180
+ def self.build_from_hash(attributes)
181
+ new.build_from_hash(attributes)
182
+ end
183
+
184
+ # Builds the object from hash
185
+ # @param [Hash] attributes Model attributes in the form of hash
186
+ # @return [Object] Returns the model itself
187
+ def build_from_hash(attributes)
188
+ return nil unless attributes.is_a?(Hash)
189
+ self.class.openapi_types.each_pair do |key, type|
190
+ if type =~ /\AArray<(.*)>/i
191
+ # check to ensure the input is an array given that the attribute
192
+ # is documented as an array but the input is not
193
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
194
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
195
+ end
196
+ elsif !attributes[self.class.attribute_map[key]].nil?
197
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
198
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
199
+ end
200
+
201
+ self
202
+ end
203
+
204
+ # Deserializes the data based on type
205
+ # @param string type Data type
206
+ # @param string value Value to be deserialized
207
+ # @return [Object] Deserialized data
208
+ def _deserialize(type, value)
209
+ case type.to_sym
210
+ when :DateTime
211
+ DateTime.parse(value)
212
+ when :Date
213
+ Date.parse(value)
214
+ when :String
215
+ value.to_s
216
+ when :Integer
217
+ value.to_i
218
+ when :Float
219
+ value.to_f
220
+ when :Boolean
221
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
222
+ true
223
+ else
224
+ false
225
+ end
226
+ when :Object
227
+ # generic object (usually a Hash), return directly
228
+ value
229
+ when /\AArray<(?<inner_type>.+)>\z/
230
+ inner_type = Regexp.last_match[:inner_type]
231
+ value.map { |v| _deserialize(inner_type, v) }
232
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
233
+ k_type = Regexp.last_match[:k_type]
234
+ v_type = Regexp.last_match[:v_type]
235
+ {}.tap do |hash|
236
+ value.each do |k, v|
237
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
238
+ end
239
+ end
240
+ else # model
241
+ OpenapiClient.const_get(type).build_from_hash(value)
242
+ end
243
+ end
244
+
245
+ # Returns the string representation of the object
246
+ # @return [String] String presentation of the object
247
+ def to_s
248
+ to_hash.to_s
249
+ end
250
+
251
+ # to_body is an alias to to_hash (backward compatibility)
252
+ # @return [Hash] Returns the object in the form of hash
253
+ def to_body
254
+ to_hash
255
+ end
256
+
257
+ # Returns the object in the form of hash
258
+ # @return [Hash] Returns the object in the form of hash
259
+ def to_hash
260
+ hash = {}
261
+ self.class.attribute_map.each_pair do |attr, param|
262
+ value = self.send(attr)
263
+ next if value.nil?
264
+ hash[param] = _to_hash(value)
265
+ end
266
+ hash
267
+ end
268
+
269
+ # Outputs non-array value in the form of hash
270
+ # For object, use to_hash. Otherwise, just return the value
271
+ # @param [Object] value Any valid value
272
+ # @return [Hash] Returns the value in the form of hash
273
+ def _to_hash(value)
274
+ if value.is_a?(Array)
275
+ value.compact.map { |v| _to_hash(v) }
276
+ elsif value.is_a?(Hash)
277
+ {}.tap do |hash|
278
+ value.each { |k, v| hash[k] = _to_hash(v) }
279
+ end
280
+ elsif value.respond_to? :to_hash
281
+ value.to_hash
282
+ else
283
+ value
284
+ end
285
+ end
286
+ end
287
+ end