velopayments 2.14.90.pre.1 → 2.17.8.beta1

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 (394) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/Makefile +41 -9
  4. data/README.md +61 -23
  5. data/docs/AuthApi.md +8 -9
  6. data/docs/AuthResponse.md +3 -1
  7. data/docs/CompanyResponse.md +19 -0
  8. data/docs/{Company.md → CompanyV1.md} +2 -2
  9. data/docs/CreateIndividual.md +1 -1
  10. data/docs/CreateIndividual2.md +21 -0
  11. data/docs/CreatePayee.md +3 -3
  12. data/docs/CreatePayee2.md +37 -0
  13. data/docs/CreatePayeeAddress.md +1 -1
  14. data/docs/CreatePayeeAddress2.md +31 -0
  15. data/docs/CreatePayeesCSVRequest.md +1 -1
  16. data/docs/CreatePayeesCSVRequest2.md +73 -0
  17. data/docs/CreatePayeesCSVResponse2.md +19 -0
  18. data/docs/CreatePayeesRequest2.md +19 -0
  19. data/docs/CreatePaymentChannel2.md +29 -0
  20. data/docs/CreatePayoutRequest.md +6 -2
  21. data/docs/Error.md +23 -0
  22. data/docs/ErrorResponse.md +19 -0
  23. data/docs/FundingAudit.md +3 -1
  24. data/docs/FundingDelta.md +23 -0
  25. data/docs/FundingDeltaResponse.md +21 -0
  26. data/docs/FundingDeltaResponseLinks.md +19 -0
  27. data/docs/FundingEvent.md +3 -1
  28. data/docs/FundingManagerApi.md +33 -26
  29. data/docs/GetFundingsResponse.md +1 -1
  30. data/docs/GetFundingsResponseAllOf.md +1 -1
  31. data/docs/GetPaymentsForPayoutResponseV4.md +2 -2
  32. data/docs/GetPaymentsForPayoutResponseV4Summary.md +16 -0
  33. data/docs/GetPayoutsResponseV4.md +3 -3
  34. data/docs/IndividualResponse.md +17 -0
  35. data/docs/{Individual.md → IndividualV1.md} +5 -5
  36. data/docs/{IndividualName.md → IndividualV1Name.md} +2 -2
  37. data/docs/PagedPayeeInvitationStatusResponse.md +2 -2
  38. data/docs/PagedPayeeResponse.md +23 -0
  39. data/docs/PagedPayeeResponse2.md +23 -0
  40. data/docs/PagedPayeeResponse2Summary.md +25 -0
  41. data/docs/{PayeeResponseLinks.md → PagedPayeeResponseLinks.md} +2 -2
  42. data/docs/{PayeeResponsePage.md → PagedPayeeResponsePage.md} +2 -2
  43. data/docs/{PayeeResponseSummary.md → PagedPayeeResponseSummary.md} +2 -2
  44. data/docs/Payee.md +9 -9
  45. data/docs/{Address.md → PayeeAddress.md} +2 -2
  46. data/docs/PayeeDelta.md +1 -1
  47. data/docs/PayeeInvitationApi.md +109 -3
  48. data/docs/{PaymentChannel.md → PayeePaymentChannel.md} +2 -2
  49. data/docs/{PayorRef.md → PayeePayorRef.md} +2 -2
  50. data/docs/PayeePayorRef2.md +21 -0
  51. data/docs/PayeeResponse.md +40 -8
  52. data/docs/PayeeResponse2.md +55 -0
  53. data/docs/PayeesApi.md +133 -4
  54. data/docs/PaymentAuditServiceApi.md +70 -7
  55. data/docs/PaymentDelta.md +31 -0
  56. data/docs/PaymentDeltaResponse.md +21 -0
  57. data/docs/PaymentResponseV4.md +4 -2
  58. data/docs/PaymentResponseV4Payout.md +19 -0
  59. data/docs/PaymentStatus.md +16 -0
  60. data/docs/PayorAddress.md +31 -0
  61. data/docs/PayorAddressV2.md +31 -0
  62. data/docs/PayorV1.md +9 -7
  63. data/docs/PayorV2.md +9 -7
  64. data/docs/PayorsApi.md +8 -6
  65. data/docs/PayoutPayorV4.md +25 -0
  66. data/docs/PayoutPrincipalV4.md +19 -0
  67. data/docs/PayoutSummaryAuditV4.md +5 -3
  68. data/docs/PayoutTypeV4.md +16 -0
  69. data/docs/QuoteFxSummary.md +2 -2
  70. data/docs/UpdateRemoteIdRequest.md +19 -0
  71. data/docs/WatchlistStatus.md +16 -0
  72. data/lib/velopayments.rb +41 -12
  73. data/lib/velopayments/api/auth_api.rb +9 -16
  74. data/lib/velopayments/api/countries_api.rb +2 -2
  75. data/lib/velopayments/api/currencies_api.rb +2 -2
  76. data/lib/velopayments/api/funding_manager_api.rb +63 -55
  77. data/lib/velopayments/api/get_payout_api.rb +3 -3
  78. data/lib/velopayments/api/instruct_payout_api.rb +3 -3
  79. data/lib/velopayments/api/payee_invitation_api.rb +134 -8
  80. data/lib/velopayments/api/payees_api.rb +177 -9
  81. data/lib/velopayments/api/payment_audit_service_api.rb +95 -12
  82. data/lib/velopayments/api/payor_applications_api.rb +4 -4
  83. data/lib/velopayments/api/payors_api.rb +18 -19
  84. data/lib/velopayments/api/payout_history_api.rb +4 -4
  85. data/lib/velopayments/api/quote_payout_api.rb +3 -3
  86. data/lib/velopayments/api/submit_payout_api.rb +2 -2
  87. data/lib/velopayments/api/withdraw_payout_api.rb +3 -3
  88. data/lib/velopayments/api_client.rb +30 -30
  89. data/lib/velopayments/api_error.rb +2 -2
  90. data/lib/velopayments/configuration.rb +9 -2
  91. data/lib/velopayments/models/auth_response.rb +28 -7
  92. data/lib/velopayments/models/auto_top_up_config.rb +15 -3
  93. data/lib/velopayments/models/challenge.rb +13 -3
  94. data/lib/velopayments/models/company_response.rb +273 -0
  95. data/lib/velopayments/models/{company.rb → company_v1.rb} +18 -6
  96. data/lib/velopayments/models/create_individual.rb +14 -4
  97. data/lib/velopayments/models/create_individual2.rb +259 -0
  98. data/lib/velopayments/models/create_payee.rb +17 -5
  99. data/lib/velopayments/models/{payor_funding_bank_details_update.rb → create_payee2.rb} +153 -93
  100. data/lib/velopayments/models/create_payee_address.rb +19 -3
  101. data/lib/velopayments/models/create_payee_address2.rb +510 -0
  102. data/lib/velopayments/models/create_payees_csv_request.rb +14 -3
  103. data/lib/velopayments/models/create_payees_csv_request2.rb +1142 -0
  104. data/lib/velopayments/models/create_payees_csv_response.rb +13 -3
  105. data/lib/velopayments/models/create_payees_csv_response2.rb +217 -0
  106. data/lib/velopayments/models/create_payees_request.rb +13 -3
  107. data/lib/velopayments/models/create_payees_request2.rb +227 -0
  108. data/lib/velopayments/models/create_payment_channel.rb +13 -3
  109. data/lib/velopayments/models/create_payment_channel2.rb +418 -0
  110. data/lib/velopayments/models/create_payout_request.rb +36 -9
  111. data/lib/velopayments/models/error.rb +271 -0
  112. data/lib/velopayments/models/error_response.rb +222 -0
  113. data/lib/velopayments/models/failed_submission.rb +13 -3
  114. data/lib/velopayments/models/funding_audit.rb +38 -7
  115. data/lib/velopayments/models/funding_delta.rb +298 -0
  116. data/lib/velopayments/models/funding_delta_response.rb +229 -0
  117. data/lib/velopayments/models/funding_delta_response_links.rb +215 -0
  118. data/lib/velopayments/models/funding_event.rb +26 -7
  119. data/lib/velopayments/models/funding_event_type.rb +2 -2
  120. data/lib/velopayments/models/funding_request_v1.rb +13 -3
  121. data/lib/velopayments/models/funding_request_v2.rb +13 -3
  122. data/lib/velopayments/models/fx_summary_v3.rb +13 -3
  123. data/lib/velopayments/models/fx_summary_v4.rb +13 -3
  124. data/lib/velopayments/models/get_fundings_response.rb +17 -5
  125. data/lib/velopayments/models/get_fundings_response_all_of.rb +17 -5
  126. data/lib/velopayments/models/get_payments_for_payout_response_v3.rb +13 -3
  127. data/lib/velopayments/models/get_payments_for_payout_response_v3_page.rb +13 -3
  128. data/lib/velopayments/models/get_payments_for_payout_response_v3_summary.rb +13 -3
  129. data/lib/velopayments/models/get_payments_for_payout_response_v4.rb +15 -5
  130. data/lib/velopayments/models/get_payments_for_payout_response_v4_summary.rb +87 -4
  131. data/lib/velopayments/models/get_payout_statistics.rb +13 -3
  132. data/lib/velopayments/models/get_payouts_response_v3.rb +13 -3
  133. data/lib/velopayments/models/get_payouts_response_v3_links.rb +13 -3
  134. data/lib/velopayments/models/get_payouts_response_v3_page.rb +13 -3
  135. data/lib/velopayments/models/get_payouts_response_v3_summary.rb +13 -3
  136. data/lib/velopayments/models/get_payouts_response_v4.rb +16 -6
  137. data/lib/velopayments/models/individual_response.rb +211 -0
  138. data/lib/velopayments/models/{individual.rb → individual_v1.rb} +17 -7
  139. data/lib/velopayments/models/{individual_name.rb → individual_v1_name.rb} +16 -6
  140. data/lib/velopayments/models/invitation_status.rb +2 -2
  141. data/lib/velopayments/models/invitation_status_response.rb +13 -3
  142. data/lib/velopayments/models/invite_payee_request.rb +13 -3
  143. data/lib/velopayments/models/language.rb +2 -2
  144. data/lib/velopayments/models/list_payments_response.rb +13 -3
  145. data/lib/velopayments/models/list_payments_response_page.rb +13 -3
  146. data/lib/velopayments/models/list_payments_response_summary.rb +13 -3
  147. data/lib/velopayments/models/list_source_account_response.rb +13 -3
  148. data/lib/velopayments/models/list_source_account_response_links.rb +13 -3
  149. data/lib/velopayments/models/list_source_account_response_page.rb +13 -3
  150. data/lib/velopayments/models/list_source_account_response_v2.rb +13 -3
  151. data/lib/velopayments/models/list_source_account_response_v2_page.rb +13 -3
  152. data/lib/velopayments/models/marketing_opt_in.rb +13 -3
  153. data/lib/velopayments/models/notifications.rb +13 -3
  154. data/lib/velopayments/models/ofac_status.rb +2 -2
  155. data/lib/velopayments/models/onboarded_status.rb +2 -2
  156. data/lib/velopayments/models/paged_payee_invitation_status_response.rb +15 -5
  157. data/lib/velopayments/models/paged_payee_response.rb +238 -0
  158. data/lib/velopayments/models/paged_payee_response2.rb +238 -0
  159. data/lib/velopayments/models/paged_payee_response2_summary.rb +242 -0
  160. data/lib/velopayments/models/{payee_response_links.rb → paged_payee_response_links.rb} +16 -6
  161. data/lib/velopayments/models/{payee_response_page.rb → paged_payee_response_page.rb} +16 -6
  162. data/lib/velopayments/models/{payee_response_summary.rb → paged_payee_response_summary.rb} +16 -6
  163. data/lib/velopayments/models/paged_response.rb +13 -3
  164. data/lib/velopayments/models/paged_response_page.rb +13 -3
  165. data/lib/velopayments/models/payee.rb +24 -8
  166. data/lib/velopayments/models/{address.rb → payee_address.rb} +21 -6
  167. data/lib/velopayments/models/payee_delta.rb +14 -3
  168. data/lib/velopayments/models/payee_delta_response.rb +13 -3
  169. data/lib/velopayments/models/payee_delta_response_links.rb +13 -3
  170. data/lib/velopayments/models/payee_delta_response_page.rb +13 -3
  171. data/lib/velopayments/models/payee_invitation_status.rb +13 -3
  172. data/lib/velopayments/models/payee_invitation_status_response.rb +13 -3
  173. data/lib/velopayments/models/{payment_channel.rb → payee_payment_channel.rb} +16 -6
  174. data/lib/velopayments/models/{payor_ref.rb → payee_payor_ref.rb} +16 -6
  175. data/lib/velopayments/models/payee_payor_ref2.rb +224 -0
  176. data/lib/velopayments/models/payee_response.rb +192 -32
  177. data/lib/velopayments/models/payee_response2.rb +388 -0
  178. data/lib/velopayments/models/payee_type.rb +2 -2
  179. data/lib/velopayments/models/payment_audit_currency_v3.rb +2 -2
  180. data/lib/velopayments/models/payment_audit_currency_v4.rb +2 -2
  181. data/lib/velopayments/models/payment_channel_country.rb +13 -3
  182. data/lib/velopayments/models/payment_channel_rule.rb +13 -3
  183. data/lib/velopayments/models/payment_channel_rules_response.rb +13 -3
  184. data/lib/velopayments/models/payment_delta.rb +285 -0
  185. data/lib/velopayments/models/payment_delta_response.rb +229 -0
  186. data/lib/velopayments/models/payment_event_response_v3.rb +13 -3
  187. data/lib/velopayments/models/payment_event_response_v4.rb +13 -3
  188. data/lib/velopayments/models/payment_instruction.rb +13 -3
  189. data/lib/velopayments/models/payment_response_v3.rb +13 -3
  190. data/lib/velopayments/models/payment_response_v4.rb +27 -7
  191. data/lib/velopayments/models/payment_response_v4_payout.rb +215 -0
  192. data/lib/velopayments/models/payment_status.rb +42 -0
  193. data/lib/velopayments/models/payor_address.rb +493 -0
  194. data/lib/velopayments/models/payor_address_v2.rb +493 -0
  195. data/lib/velopayments/models/payor_branding_response.rb +16 -3
  196. data/lib/velopayments/models/payor_create_api_key_request.rb +14 -3
  197. data/lib/velopayments/models/payor_create_api_key_response.rb +13 -3
  198. data/lib/velopayments/models/payor_create_application_request.rb +14 -3
  199. data/lib/velopayments/models/payor_email_opt_out_request.rb +13 -3
  200. data/lib/velopayments/models/payor_links_response.rb +13 -3
  201. data/lib/velopayments/models/payor_links_response_links.rb +13 -3
  202. data/lib/velopayments/models/payor_links_response_payors.rb +13 -3
  203. data/lib/velopayments/models/payor_logo_request.rb +13 -3
  204. data/lib/velopayments/models/payor_v1.rb +27 -8
  205. data/lib/velopayments/models/payor_v2.rb +27 -8
  206. data/lib/velopayments/models/payout_payor_v4.rb +273 -0
  207. data/lib/velopayments/models/payout_principal_v4.rb +228 -0
  208. data/lib/velopayments/models/payout_status_v3.rb +2 -2
  209. data/lib/velopayments/models/payout_status_v4.rb +2 -2
  210. data/lib/velopayments/models/payout_summary_audit_v3.rb +13 -3
  211. data/lib/velopayments/models/payout_summary_audit_v4.rb +33 -8
  212. data/lib/velopayments/models/payout_summary_response.rb +13 -3
  213. data/lib/velopayments/models/payout_type_v4.rb +37 -0
  214. data/lib/velopayments/models/query_batch_response.rb +13 -3
  215. data/lib/velopayments/models/quote_fx_summary.rb +69 -3
  216. data/lib/velopayments/models/quote_response.rb +13 -3
  217. data/lib/velopayments/models/rejected_payment.rb +13 -3
  218. data/lib/velopayments/models/set_notifications_request.rb +13 -3
  219. data/lib/velopayments/models/source_account.rb +13 -3
  220. data/lib/velopayments/models/source_account_response.rb +15 -3
  221. data/lib/velopayments/models/source_account_response_v2.rb +15 -3
  222. data/lib/velopayments/models/source_account_summary_v3.rb +13 -3
  223. data/lib/velopayments/models/source_account_summary_v4.rb +13 -3
  224. data/lib/velopayments/models/supported_countries_response.rb +13 -3
  225. data/lib/velopayments/models/supported_country.rb +13 -3
  226. data/lib/velopayments/models/supported_currency.rb +13 -3
  227. data/lib/velopayments/models/supported_currency_response.rb +13 -3
  228. data/lib/velopayments/models/update_remote_id_request.rb +253 -0
  229. data/lib/velopayments/models/watchlist_status.rb +39 -0
  230. data/lib/velopayments/version.rb +3 -3
  231. data/oa3-config.json +2 -2
  232. data/spec/api/auth_api_spec.rb +3 -4
  233. data/spec/api/countries_api_spec.rb +2 -2
  234. data/spec/api/currencies_api_spec.rb +2 -2
  235. data/spec/api/funding_manager_api_spec.rb +17 -15
  236. data/spec/api/get_payout_api_spec.rb +2 -2
  237. data/spec/api/instruct_payout_api_spec.rb +2 -2
  238. data/spec/api/payee_invitation_api_spec.rb +27 -3
  239. data/spec/api/payees_api_spec.rb +39 -4
  240. data/spec/api/payment_audit_service_api_spec.rb +21 -5
  241. data/spec/api/payor_applications_api_spec.rb +2 -2
  242. data/spec/api/payors_api_spec.rb +5 -4
  243. data/spec/api/payout_history_api_spec.rb +2 -2
  244. data/spec/api/quote_payout_api_spec.rb +2 -2
  245. data/spec/api/submit_payout_api_spec.rb +2 -2
  246. data/spec/api/withdraw_payout_api_spec.rb +2 -2
  247. data/spec/api_client_spec.rb +3 -3
  248. data/spec/configuration_spec.rb +2 -2
  249. data/spec/models/auth_response_spec.rb +8 -2
  250. data/spec/models/auto_top_up_config_spec.rb +2 -2
  251. data/spec/models/challenge_spec.rb +2 -2
  252. data/spec/models/company_response_spec.rb +47 -0
  253. data/spec/models/{company_spec.rb → company_v1_spec.rb} +8 -8
  254. data/spec/models/{payor_funding_bank_details_update_spec.rb → create_individual2_spec.rb} +11 -11
  255. data/spec/models/create_individual_spec.rb +2 -2
  256. data/spec/models/create_payee2_spec.rb +101 -0
  257. data/spec/models/create_payee_address2_spec.rb +87 -0
  258. data/spec/models/create_payee_address_spec.rb +2 -2
  259. data/spec/models/create_payee_spec.rb +2 -2
  260. data/spec/models/create_payees_csv_request2_spec.rb +225 -0
  261. data/spec/models/create_payees_csv_request_spec.rb +2 -2
  262. data/spec/models/create_payees_csv_response2_spec.rb +47 -0
  263. data/spec/models/create_payees_csv_response_spec.rb +2 -2
  264. data/spec/models/create_payees_request2_spec.rb +47 -0
  265. data/spec/models/create_payees_request_spec.rb +2 -2
  266. data/spec/models/create_payment_channel2_spec.rb +85 -0
  267. data/spec/models/create_payment_channel_spec.rb +2 -2
  268. data/spec/models/create_payout_request_spec.rb +14 -2
  269. data/spec/models/error_response_spec.rb +47 -0
  270. data/spec/models/error_spec.rb +63 -0
  271. data/spec/models/failed_submission_spec.rb +2 -2
  272. data/spec/models/funding_audit_spec.rb +12 -2
  273. data/spec/models/funding_delta_response_links_spec.rb +47 -0
  274. data/spec/models/funding_delta_response_spec.rb +53 -0
  275. data/spec/models/funding_delta_spec.rb +59 -0
  276. data/spec/models/funding_event_spec.rb +8 -2
  277. data/spec/models/funding_event_type_spec.rb +2 -2
  278. data/spec/models/funding_request_v1_spec.rb +2 -2
  279. data/spec/models/funding_request_v2_spec.rb +2 -2
  280. data/spec/models/fx_summary_v3_spec.rb +2 -2
  281. data/spec/models/fx_summary_v4_spec.rb +2 -2
  282. data/spec/models/get_fundings_response_all_of_spec.rb +2 -2
  283. data/spec/models/get_fundings_response_spec.rb +2 -2
  284. data/spec/models/get_payments_for_payout_response_v3_page_spec.rb +2 -2
  285. data/spec/models/get_payments_for_payout_response_v3_spec.rb +2 -2
  286. data/spec/models/get_payments_for_payout_response_v3_summary_spec.rb +2 -2
  287. data/spec/models/get_payments_for_payout_response_v4_spec.rb +2 -2
  288. data/spec/models/get_payments_for_payout_response_v4_summary_spec.rb +50 -2
  289. data/spec/models/get_payout_statistics_spec.rb +2 -2
  290. data/spec/models/get_payouts_response_v3_links_spec.rb +2 -2
  291. data/spec/models/get_payouts_response_v3_page_spec.rb +2 -2
  292. data/spec/models/get_payouts_response_v3_spec.rb +2 -2
  293. data/spec/models/get_payouts_response_v3_summary_spec.rb +2 -2
  294. data/spec/models/get_payouts_response_v4_spec.rb +2 -2
  295. data/spec/models/individual_response_spec.rb +41 -0
  296. data/spec/models/{individual_name_spec.rb → individual_v1_name_spec.rb} +8 -8
  297. data/spec/models/{individual_spec.rb → individual_v1_spec.rb} +8 -8
  298. data/spec/models/invitation_status_response_spec.rb +2 -2
  299. data/spec/models/invitation_status_spec.rb +2 -2
  300. data/spec/models/invite_payee_request_spec.rb +2 -2
  301. data/spec/models/language_spec.rb +2 -2
  302. data/spec/models/list_payments_response_page_spec.rb +2 -2
  303. data/spec/models/list_payments_response_spec.rb +2 -2
  304. data/spec/models/list_payments_response_summary_spec.rb +2 -2
  305. data/spec/models/list_source_account_response_links_spec.rb +2 -2
  306. data/spec/models/list_source_account_response_page_spec.rb +2 -2
  307. data/spec/models/list_source_account_response_spec.rb +2 -2
  308. data/spec/models/list_source_account_response_v2_page_spec.rb +2 -2
  309. data/spec/models/list_source_account_response_v2_spec.rb +2 -2
  310. data/spec/models/marketing_opt_in_spec.rb +2 -2
  311. data/spec/models/notifications_spec.rb +2 -2
  312. data/spec/models/ofac_status_spec.rb +2 -2
  313. data/spec/models/onboarded_status_spec.rb +2 -2
  314. data/spec/models/paged_payee_invitation_status_response_spec.rb +2 -2
  315. data/spec/models/paged_payee_response2_spec.rb +59 -0
  316. data/spec/models/paged_payee_response2_summary_spec.rb +65 -0
  317. data/spec/models/{payee_response_links_spec.rb → paged_payee_response_links_spec.rb} +8 -8
  318. data/spec/models/{payee_response_page_spec.rb → paged_payee_response_page_spec.rb} +8 -8
  319. data/spec/models/paged_payee_response_spec.rb +59 -0
  320. data/spec/models/{payee_response_summary_spec.rb → paged_payee_response_summary_spec.rb} +8 -8
  321. data/spec/models/paged_response_page_spec.rb +2 -2
  322. data/spec/models/paged_response_spec.rb +2 -2
  323. data/spec/models/{address_spec.rb → payee_address_spec.rb} +8 -8
  324. data/spec/models/payee_delta_response_links_spec.rb +2 -2
  325. data/spec/models/payee_delta_response_page_spec.rb +2 -2
  326. data/spec/models/payee_delta_response_spec.rb +2 -2
  327. data/spec/models/payee_delta_spec.rb +2 -2
  328. data/spec/models/payee_invitation_status_response_spec.rb +2 -2
  329. data/spec/models/payee_invitation_status_spec.rb +2 -2
  330. data/spec/models/{payment_channel_spec.rb → payee_payment_channel_spec.rb} +8 -8
  331. data/spec/models/payee_payor_ref2_spec.rb +53 -0
  332. data/spec/models/{payor_ref_spec.rb → payee_payor_ref_spec.rb} +8 -8
  333. data/spec/models/payee_response2_spec.rb +155 -0
  334. data/spec/models/payee_response_spec.rb +102 -6
  335. data/spec/models/payee_spec.rb +2 -2
  336. data/spec/models/payee_type_spec.rb +2 -2
  337. data/spec/models/payment_audit_currency_v3_spec.rb +2 -2
  338. data/spec/models/payment_audit_currency_v4_spec.rb +2 -2
  339. data/spec/models/payment_channel_country_spec.rb +2 -2
  340. data/spec/models/payment_channel_rule_spec.rb +2 -2
  341. data/spec/models/payment_channel_rules_response_spec.rb +2 -2
  342. data/spec/models/payment_delta_response_spec.rb +53 -0
  343. data/spec/models/payment_delta_spec.rb +83 -0
  344. data/spec/models/payment_event_response_v3_spec.rb +2 -2
  345. data/spec/models/payment_event_response_v4_spec.rb +2 -2
  346. data/spec/models/payment_instruction_spec.rb +2 -2
  347. data/spec/models/payment_response_v3_spec.rb +2 -2
  348. data/spec/models/payment_response_v4_payout_spec.rb +47 -0
  349. data/spec/models/payment_response_v4_spec.rb +8 -2
  350. data/spec/models/payment_status_spec.rb +35 -0
  351. data/spec/models/payor_address_spec.rb +83 -0
  352. data/spec/models/payor_address_v2_spec.rb +83 -0
  353. data/spec/models/payor_branding_response_spec.rb +2 -2
  354. data/spec/models/payor_create_api_key_request_spec.rb +2 -2
  355. data/spec/models/payor_create_api_key_response_spec.rb +2 -2
  356. data/spec/models/payor_create_application_request_spec.rb +2 -2
  357. data/spec/models/payor_email_opt_out_request_spec.rb +2 -2
  358. data/spec/models/payor_links_response_links_spec.rb +2 -2
  359. data/spec/models/payor_links_response_payors_spec.rb +2 -2
  360. data/spec/models/payor_links_response_spec.rb +2 -2
  361. data/spec/models/payor_logo_request_spec.rb +2 -2
  362. data/spec/models/payor_v1_spec.rb +8 -2
  363. data/spec/models/payor_v2_spec.rb +8 -2
  364. data/spec/models/payout_payor_v4_spec.rb +65 -0
  365. data/spec/models/payout_principal_v4_spec.rb +47 -0
  366. data/spec/models/payout_status_v3_spec.rb +2 -2
  367. data/spec/models/payout_status_v4_spec.rb +2 -2
  368. data/spec/models/payout_summary_audit_v3_spec.rb +2 -2
  369. data/spec/models/payout_summary_audit_v4_spec.rb +8 -2
  370. data/spec/models/payout_summary_response_spec.rb +2 -2
  371. data/spec/models/payout_type_v4_spec.rb +35 -0
  372. data/spec/models/query_batch_response_spec.rb +2 -2
  373. data/spec/models/quote_fx_summary_spec.rb +10 -2
  374. data/spec/models/quote_response_spec.rb +2 -2
  375. data/spec/models/rejected_payment_spec.rb +2 -2
  376. data/spec/models/set_notifications_request_spec.rb +2 -2
  377. data/spec/models/source_account_response_spec.rb +2 -2
  378. data/spec/models/source_account_response_v2_spec.rb +2 -2
  379. data/spec/models/source_account_spec.rb +2 -2
  380. data/spec/models/source_account_summary_v3_spec.rb +2 -2
  381. data/spec/models/source_account_summary_v4_spec.rb +2 -2
  382. data/spec/models/supported_countries_response_spec.rb +2 -2
  383. data/spec/models/supported_country_spec.rb +2 -2
  384. data/spec/models/supported_currency_response_spec.rb +2 -2
  385. data/spec/models/supported_currency_spec.rb +2 -2
  386. data/spec/models/update_remote_id_request_spec.rb +47 -0
  387. data/spec/models/watchlist_status_spec.rb +35 -0
  388. data/spec/spec_helper.rb +2 -2
  389. data/velopayments.gemspec +2 -8
  390. metadata +252 -259
  391. data/Gemfile.lock +0 -79
  392. data/docs/PayorFundingBankDetailsUpdate.md +0 -21
  393. data/velopayments-2.11.73.gem +0 -0
  394. data/velopayments-2.14.90.gem +0 -0
@@ -3,10 +3,10 @@
3
3
 
4
4
  ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
5
 
6
- The version of the OpenAPI document: 2.14.92
6
+ The version of the OpenAPI document: 2.17.8
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.1.0-SNAPSHOT
9
+ OpenAPI Generator version: 4.2.3-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -34,6 +34,7 @@ module VeloPayments
34
34
 
35
35
  attr_accessor :address_zip_or_postcode
36
36
 
37
+ # Ideally a 2 letter ISO 3166-1 country code. But a limited set of additional values will be corrected. See Java Locale.getISOCountries() and Locale.getDisplayCountry()
37
38
  attr_accessor :address_country
38
39
 
39
40
  attr_accessor :individual_national_identification
@@ -170,6 +171,12 @@ module VeloPayments
170
171
  }
171
172
  end
172
173
 
174
+ # List of attributes with nullable: true
175
+ def self.openapi_nullable
176
+ Set.new([
177
+ ])
178
+ end
179
+
173
180
  # Initializes the object
174
181
  # @param [Hash] attributes Model attributes in the form of hash
175
182
  def initialize(attributes = {})
@@ -1110,7 +1117,11 @@ module VeloPayments
1110
1117
  hash = {}
1111
1118
  self.class.attribute_map.each_pair do |attr, param|
1112
1119
  value = self.send(attr)
1113
- next if value.nil?
1120
+ if value.nil?
1121
+ is_nullable = self.class.openapi_nullable.include?(attr)
1122
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1123
+ end
1124
+
1114
1125
  hash[param] = _to_hash(value)
1115
1126
  end
1116
1127
  hash
@@ -0,0 +1,1142 @@
1
+ =begin
2
+ #Velo Payments APIs
3
+
4
+ ### Terms and Definitions Throughout this document and the Velo platform the following terms are used: * **Payor.** An entity (typically a corporation) which wishes to pay funds to one or more payees via a payout. * **Payee.** The recipient of funds paid out by a payor. * **Payment.** A single transfer of funds from a payor to a payee. * **Payout.** A batch of Payments, typically used by a payor to logically group payments (e.g. by business day). Technically there need be no relationship between the payments in a payout - a single payout can contain payments to multiple payees and/or multiple payments to a single payee. * **Sandbox.** An integration environment provided by Velo Payments which offers a similar API experience to the production environment, but all funding and payment events are simulated, along with many other services such as OFAC sanctions list checking. ## Overview The Velo Payments API allows a payor to perform a number of operations. The following is a list of the main capabilities in a natural order of execution: * Authenticate with the Velo platform * Maintain a collection of payees * Query the payor’s current balance of funds within the platform and perform additional funding * Issue payments to payees * Query the platform for a history of those payments This document describes the main concepts and APIs required to get up and running with the Velo Payments platform. It is not an exhaustive API reference. For that, please see the separate Velo Payments API Reference. ## API Considerations The Velo Payments API is REST based and uses the JSON format for requests and responses. Most calls are secured using OAuth 2 security and require a valid authentication access token for successful operation. See the Authentication section for details. Where a dynamic value is required in the examples below, the {token} format is used, suggesting that the caller needs to supply the appropriate value of the token in question (without including the { or } characters). Where curl examples are given, the –d @filename.json approach is used, indicating that the request body should be placed into a file named filename.json in the current directory. Each of the curl examples in this document should be considered a single line on the command-line, regardless of how they appear in print. ## Authenticating with the Velo Platform Once Velo backoffice staff have added your organization as a payor within the Velo platform sandbox, they will create you a payor Id, an API key and an API secret and share these with you in a secure manner. You will need to use these values to authenticate with the Velo platform in order to gain access to the APIs. The steps to take are explained in the following: create a string comprising the API key (e.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8) and API secret (e.g. c396b26b-137a-44fd-87f5-34631f8fd529) with a colon between them. E.g. 44a9537d-d55d-4b47-8082-14061c2bcdd8:c396b26b-137a-44fd-87f5-34631f8fd529 base64 encode this string. E.g.: NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== create an HTTP **Authorization** header with the value set to e.g. Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ== perform the Velo authentication REST call using the HTTP header created above e.g. via curl: ``` curl -X POST \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Basic NDRhOTUzN2QtZDU1ZC00YjQ3LTgwODItMTQwNjFjMmJjZGQ4OmMzOTZiMjZiLTEzN2EtNDRmZC04N2Y1LTM0NjMxZjhmZDUyOQ==\" \\ 'https://api.sandbox.velopayments.com/v1/authenticate?grant_type=client_credentials' ``` If successful, this call will result in a **200** HTTP status code and a response body such as: ``` { \"access_token\":\"19f6bafd-93fd-4747-b229-00507bbc991f\", \"token_type\":\"bearer\", \"expires_in\":1799, \"scope\":\"...\" } ``` ## API access following authentication Following successful authentication, the value of the access_token field in the response (indicated in green above) should then be presented with all subsequent API calls to allow the Velo platform to validate that the caller is authenticated. This is achieved by setting the HTTP Authorization header with the value set to e.g. Bearer 19f6bafd-93fd-4747-b229-00507bbc991f such as the curl example below: ``` -H \"Authorization: Bearer 19f6bafd-93fd-4747-b229-00507bbc991f \" ``` If you make other Velo API calls which require authorization but the Authorization header is missing or invalid then you will get a **401** HTTP status response.
5
+
6
+ The version of the OpenAPI document: 2.17.8
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.2.3-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module VeloPayments
16
+ class CreatePayeesCSVRequest2
17
+ attr_accessor :type
18
+
19
+ attr_accessor :remote_id
20
+
21
+ attr_accessor :email
22
+
23
+ attr_accessor :address_line1
24
+
25
+ attr_accessor :address_line2
26
+
27
+ attr_accessor :address_line3
28
+
29
+ attr_accessor :address_line4
30
+
31
+ attr_accessor :address_city
32
+
33
+ attr_accessor :address_county_or_province
34
+
35
+ attr_accessor :address_zip_or_postcode
36
+
37
+ # Must be a 2 character country code - per ISO 3166-1
38
+ attr_accessor :address_country
39
+
40
+ attr_accessor :individual_national_identification
41
+
42
+ # Must not be date in future. Example - 1970-05-20
43
+ attr_accessor :individual_date_of_birth
44
+
45
+ attr_accessor :individual_title
46
+
47
+ attr_accessor :individual_first_name
48
+
49
+ attr_accessor :individual_other_names
50
+
51
+ attr_accessor :individual_last_name
52
+
53
+ attr_accessor :company_name
54
+
55
+ # Company Tax Id (EIN) must be 9 numeric characters. Must match the regular expression ```[\\d]{9}```.
56
+ attr_accessor :company_ein
57
+
58
+ attr_accessor :company_operating_name
59
+
60
+ # Either routing number and account number or only iban must be set
61
+ attr_accessor :payment_channel_account_number
62
+
63
+ # Either routing number and account number or only iban must be set
64
+ attr_accessor :payment_channel_routing_number
65
+
66
+ attr_accessor :payment_channel_account_name
67
+
68
+ # Must match the regular expression ```^[A-Za-z0-9]+$```.
69
+ attr_accessor :payment_channel_iban
70
+
71
+ # Must be a 2 character country code - per ISO 3166-1
72
+ attr_accessor :payment_channel_country_code
73
+
74
+ attr_accessor :payment_channel_currency
75
+
76
+ attr_accessor :challenge_description
77
+
78
+ attr_accessor :challenge_value
79
+
80
+ attr_accessor :payee_language
81
+
82
+ class EnumAttributeValidator
83
+ attr_reader :datatype
84
+ attr_reader :allowable_values
85
+
86
+ def initialize(datatype, allowable_values)
87
+ @allowable_values = allowable_values.map do |value|
88
+ case datatype.to_s
89
+ when /Integer/i
90
+ value.to_i
91
+ when /Float/i
92
+ value.to_f
93
+ else
94
+ value
95
+ end
96
+ end
97
+ end
98
+
99
+ def valid?(value)
100
+ !value || allowable_values.include?(value)
101
+ end
102
+ end
103
+
104
+ # Attribute mapping from ruby-style variable name to JSON key.
105
+ def self.attribute_map
106
+ {
107
+ :'type' => :'type',
108
+ :'remote_id' => :'remoteId',
109
+ :'email' => :'email',
110
+ :'address_line1' => :'addressLine1',
111
+ :'address_line2' => :'addressLine2',
112
+ :'address_line3' => :'addressLine3',
113
+ :'address_line4' => :'addressLine4',
114
+ :'address_city' => :'addressCity',
115
+ :'address_county_or_province' => :'addressCountyOrProvince',
116
+ :'address_zip_or_postcode' => :'addressZipOrPostcode',
117
+ :'address_country' => :'addressCountry',
118
+ :'individual_national_identification' => :'individualNationalIdentification',
119
+ :'individual_date_of_birth' => :'individualDateOfBirth',
120
+ :'individual_title' => :'individualTitle',
121
+ :'individual_first_name' => :'individualFirstName',
122
+ :'individual_other_names' => :'individualOtherNames',
123
+ :'individual_last_name' => :'individualLastName',
124
+ :'company_name' => :'companyName',
125
+ :'company_ein' => :'companyEIN',
126
+ :'company_operating_name' => :'companyOperatingName',
127
+ :'payment_channel_account_number' => :'paymentChannelAccountNumber',
128
+ :'payment_channel_routing_number' => :'paymentChannelRoutingNumber',
129
+ :'payment_channel_account_name' => :'paymentChannelAccountName',
130
+ :'payment_channel_iban' => :'paymentChannelIban',
131
+ :'payment_channel_country_code' => :'paymentChannelCountryCode',
132
+ :'payment_channel_currency' => :'paymentChannelCurrency',
133
+ :'challenge_description' => :'challengeDescription',
134
+ :'challenge_value' => :'challengeValue',
135
+ :'payee_language' => :'payeeLanguage'
136
+ }
137
+ end
138
+
139
+ # Attribute type mapping.
140
+ def self.openapi_types
141
+ {
142
+ :'type' => :'PayeeType',
143
+ :'remote_id' => :'String',
144
+ :'email' => :'String',
145
+ :'address_line1' => :'String',
146
+ :'address_line2' => :'String',
147
+ :'address_line3' => :'String',
148
+ :'address_line4' => :'String',
149
+ :'address_city' => :'String',
150
+ :'address_county_or_province' => :'String',
151
+ :'address_zip_or_postcode' => :'String',
152
+ :'address_country' => :'String',
153
+ :'individual_national_identification' => :'String',
154
+ :'individual_date_of_birth' => :'Date',
155
+ :'individual_title' => :'String',
156
+ :'individual_first_name' => :'String',
157
+ :'individual_other_names' => :'String',
158
+ :'individual_last_name' => :'String',
159
+ :'company_name' => :'String',
160
+ :'company_ein' => :'String',
161
+ :'company_operating_name' => :'String',
162
+ :'payment_channel_account_number' => :'String',
163
+ :'payment_channel_routing_number' => :'String',
164
+ :'payment_channel_account_name' => :'String',
165
+ :'payment_channel_iban' => :'String',
166
+ :'payment_channel_country_code' => :'String',
167
+ :'payment_channel_currency' => :'String',
168
+ :'challenge_description' => :'String',
169
+ :'challenge_value' => :'String',
170
+ :'payee_language' => :'String'
171
+ }
172
+ end
173
+
174
+ # List of attributes with nullable: true
175
+ def self.openapi_nullable
176
+ Set.new([
177
+ ])
178
+ end
179
+
180
+ # Initializes the object
181
+ # @param [Hash] attributes Model attributes in the form of hash
182
+ def initialize(attributes = {})
183
+ if (!attributes.is_a?(Hash))
184
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::CreatePayeesCSVRequest2` initialize method"
185
+ end
186
+
187
+ # check to see if the attribute exists and convert string to symbol for hash key
188
+ attributes = attributes.each_with_object({}) { |(k, v), h|
189
+ if (!self.class.attribute_map.key?(k.to_sym))
190
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::CreatePayeesCSVRequest2`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
191
+ end
192
+ h[k.to_sym] = v
193
+ }
194
+
195
+ if attributes.key?(:'type')
196
+ self.type = attributes[:'type']
197
+ end
198
+
199
+ if attributes.key?(:'remote_id')
200
+ self.remote_id = attributes[:'remote_id']
201
+ end
202
+
203
+ if attributes.key?(:'email')
204
+ self.email = attributes[:'email']
205
+ end
206
+
207
+ if attributes.key?(:'address_line1')
208
+ self.address_line1 = attributes[:'address_line1']
209
+ end
210
+
211
+ if attributes.key?(:'address_line2')
212
+ self.address_line2 = attributes[:'address_line2']
213
+ end
214
+
215
+ if attributes.key?(:'address_line3')
216
+ self.address_line3 = attributes[:'address_line3']
217
+ end
218
+
219
+ if attributes.key?(:'address_line4')
220
+ self.address_line4 = attributes[:'address_line4']
221
+ end
222
+
223
+ if attributes.key?(:'address_city')
224
+ self.address_city = attributes[:'address_city']
225
+ end
226
+
227
+ if attributes.key?(:'address_county_or_province')
228
+ self.address_county_or_province = attributes[:'address_county_or_province']
229
+ end
230
+
231
+ if attributes.key?(:'address_zip_or_postcode')
232
+ self.address_zip_or_postcode = attributes[:'address_zip_or_postcode']
233
+ end
234
+
235
+ if attributes.key?(:'address_country')
236
+ self.address_country = attributes[:'address_country']
237
+ end
238
+
239
+ if attributes.key?(:'individual_national_identification')
240
+ self.individual_national_identification = attributes[:'individual_national_identification']
241
+ end
242
+
243
+ if attributes.key?(:'individual_date_of_birth')
244
+ self.individual_date_of_birth = attributes[:'individual_date_of_birth']
245
+ end
246
+
247
+ if attributes.key?(:'individual_title')
248
+ self.individual_title = attributes[:'individual_title']
249
+ end
250
+
251
+ if attributes.key?(:'individual_first_name')
252
+ self.individual_first_name = attributes[:'individual_first_name']
253
+ end
254
+
255
+ if attributes.key?(:'individual_other_names')
256
+ self.individual_other_names = attributes[:'individual_other_names']
257
+ end
258
+
259
+ if attributes.key?(:'individual_last_name')
260
+ self.individual_last_name = attributes[:'individual_last_name']
261
+ end
262
+
263
+ if attributes.key?(:'company_name')
264
+ self.company_name = attributes[:'company_name']
265
+ end
266
+
267
+ if attributes.key?(:'company_ein')
268
+ self.company_ein = attributes[:'company_ein']
269
+ end
270
+
271
+ if attributes.key?(:'company_operating_name')
272
+ self.company_operating_name = attributes[:'company_operating_name']
273
+ end
274
+
275
+ if attributes.key?(:'payment_channel_account_number')
276
+ self.payment_channel_account_number = attributes[:'payment_channel_account_number']
277
+ end
278
+
279
+ if attributes.key?(:'payment_channel_routing_number')
280
+ self.payment_channel_routing_number = attributes[:'payment_channel_routing_number']
281
+ end
282
+
283
+ if attributes.key?(:'payment_channel_account_name')
284
+ self.payment_channel_account_name = attributes[:'payment_channel_account_name']
285
+ end
286
+
287
+ if attributes.key?(:'payment_channel_iban')
288
+ self.payment_channel_iban = attributes[:'payment_channel_iban']
289
+ end
290
+
291
+ if attributes.key?(:'payment_channel_country_code')
292
+ self.payment_channel_country_code = attributes[:'payment_channel_country_code']
293
+ end
294
+
295
+ if attributes.key?(:'payment_channel_currency')
296
+ self.payment_channel_currency = attributes[:'payment_channel_currency']
297
+ end
298
+
299
+ if attributes.key?(:'challenge_description')
300
+ self.challenge_description = attributes[:'challenge_description']
301
+ end
302
+
303
+ if attributes.key?(:'challenge_value')
304
+ self.challenge_value = attributes[:'challenge_value']
305
+ end
306
+
307
+ if attributes.key?(:'payee_language')
308
+ self.payee_language = attributes[:'payee_language']
309
+ end
310
+ end
311
+
312
+ # Show invalid properties with the reasons. Usually used together with valid?
313
+ # @return Array for valid properties with the reasons
314
+ def list_invalid_properties
315
+ invalid_properties = Array.new
316
+ if @type.nil?
317
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
318
+ end
319
+
320
+ if @remote_id.nil?
321
+ invalid_properties.push('invalid value for "remote_id", remote_id cannot be nil.')
322
+ end
323
+
324
+ if @remote_id.to_s.length > 100
325
+ invalid_properties.push('invalid value for "remote_id", the character length must be smaller than or equal to 100.')
326
+ end
327
+
328
+ if @remote_id.to_s.length < 1
329
+ invalid_properties.push('invalid value for "remote_id", the character length must be great than or equal to 1.')
330
+ end
331
+
332
+ if @email.nil?
333
+ invalid_properties.push('invalid value for "email", email cannot be nil.')
334
+ end
335
+
336
+ if @email.to_s.length > 255
337
+ invalid_properties.push('invalid value for "email", the character length must be smaller than or equal to 255.')
338
+ end
339
+
340
+ if @email.to_s.length < 3
341
+ invalid_properties.push('invalid value for "email", the character length must be great than or equal to 3.')
342
+ end
343
+
344
+ if @address_line1.nil?
345
+ invalid_properties.push('invalid value for "address_line1", address_line1 cannot be nil.')
346
+ end
347
+
348
+ if @address_line1.to_s.length > 100
349
+ invalid_properties.push('invalid value for "address_line1", the character length must be smaller than or equal to 100.')
350
+ end
351
+
352
+ if @address_line1.to_s.length < 2
353
+ invalid_properties.push('invalid value for "address_line1", the character length must be great than or equal to 2.')
354
+ end
355
+
356
+ if !@address_line2.nil? && @address_line2.to_s.length > 100
357
+ invalid_properties.push('invalid value for "address_line2", the character length must be smaller than or equal to 100.')
358
+ end
359
+
360
+ if !@address_line2.nil? && @address_line2.to_s.length < 0
361
+ invalid_properties.push('invalid value for "address_line2", the character length must be great than or equal to 0.')
362
+ end
363
+
364
+ if !@address_line3.nil? && @address_line3.to_s.length > 100
365
+ invalid_properties.push('invalid value for "address_line3", the character length must be smaller than or equal to 100.')
366
+ end
367
+
368
+ if !@address_line3.nil? && @address_line3.to_s.length < 0
369
+ invalid_properties.push('invalid value for "address_line3", the character length must be great than or equal to 0.')
370
+ end
371
+
372
+ if !@address_line4.nil? && @address_line4.to_s.length > 100
373
+ invalid_properties.push('invalid value for "address_line4", the character length must be smaller than or equal to 100.')
374
+ end
375
+
376
+ if !@address_line4.nil? && @address_line4.to_s.length < 0
377
+ invalid_properties.push('invalid value for "address_line4", the character length must be great than or equal to 0.')
378
+ end
379
+
380
+ if @address_city.nil?
381
+ invalid_properties.push('invalid value for "address_city", address_city cannot be nil.')
382
+ end
383
+
384
+ if @address_city.to_s.length > 50
385
+ invalid_properties.push('invalid value for "address_city", the character length must be smaller than or equal to 50.')
386
+ end
387
+
388
+ if @address_city.to_s.length < 2
389
+ invalid_properties.push('invalid value for "address_city", the character length must be great than or equal to 2.')
390
+ end
391
+
392
+ if !@address_county_or_province.nil? && @address_county_or_province.to_s.length > 50
393
+ invalid_properties.push('invalid value for "address_county_or_province", the character length must be smaller than or equal to 50.')
394
+ end
395
+
396
+ if !@address_county_or_province.nil? && @address_county_or_province.to_s.length < 1
397
+ invalid_properties.push('invalid value for "address_county_or_province", the character length must be great than or equal to 1.')
398
+ end
399
+
400
+ if @address_zip_or_postcode.nil?
401
+ invalid_properties.push('invalid value for "address_zip_or_postcode", address_zip_or_postcode cannot be nil.')
402
+ end
403
+
404
+ if @address_zip_or_postcode.to_s.length > 60
405
+ invalid_properties.push('invalid value for "address_zip_or_postcode", the character length must be smaller than or equal to 60.')
406
+ end
407
+
408
+ if @address_zip_or_postcode.to_s.length < 1
409
+ invalid_properties.push('invalid value for "address_zip_or_postcode", the character length must be great than or equal to 1.')
410
+ end
411
+
412
+ if @address_country.nil?
413
+ invalid_properties.push('invalid value for "address_country", address_country cannot be nil.')
414
+ end
415
+
416
+ if @address_country.to_s.length > 2
417
+ invalid_properties.push('invalid value for "address_country", the character length must be smaller than or equal to 2.')
418
+ end
419
+
420
+ if @address_country.to_s.length < 2
421
+ invalid_properties.push('invalid value for "address_country", the character length must be great than or equal to 2.')
422
+ end
423
+
424
+ if !@individual_national_identification.nil? && @individual_national_identification.to_s.length > 30
425
+ invalid_properties.push('invalid value for "individual_national_identification", the character length must be smaller than or equal to 30.')
426
+ end
427
+
428
+ if !@individual_national_identification.nil? && @individual_national_identification.to_s.length < 6
429
+ invalid_properties.push('invalid value for "individual_national_identification", the character length must be great than or equal to 6.')
430
+ end
431
+
432
+ if !@individual_title.nil? && @individual_title.to_s.length > 40
433
+ invalid_properties.push('invalid value for "individual_title", the character length must be smaller than or equal to 40.')
434
+ end
435
+
436
+ if !@individual_title.nil? && @individual_title.to_s.length < 1
437
+ invalid_properties.push('invalid value for "individual_title", the character length must be great than or equal to 1.')
438
+ end
439
+
440
+ if !@individual_first_name.nil? && @individual_first_name.to_s.length > 40
441
+ invalid_properties.push('invalid value for "individual_first_name", the character length must be smaller than or equal to 40.')
442
+ end
443
+
444
+ if !@individual_first_name.nil? && @individual_first_name.to_s.length < 1
445
+ invalid_properties.push('invalid value for "individual_first_name", the character length must be great than or equal to 1.')
446
+ end
447
+
448
+ if !@individual_other_names.nil? && @individual_other_names.to_s.length > 40
449
+ invalid_properties.push('invalid value for "individual_other_names", the character length must be smaller than or equal to 40.')
450
+ end
451
+
452
+ if !@individual_other_names.nil? && @individual_other_names.to_s.length < 1
453
+ invalid_properties.push('invalid value for "individual_other_names", the character length must be great than or equal to 1.')
454
+ end
455
+
456
+ if !@individual_last_name.nil? && @individual_last_name.to_s.length > 40
457
+ invalid_properties.push('invalid value for "individual_last_name", the character length must be smaller than or equal to 40.')
458
+ end
459
+
460
+ if !@individual_last_name.nil? && @individual_last_name.to_s.length < 1
461
+ invalid_properties.push('invalid value for "individual_last_name", the character length must be great than or equal to 1.')
462
+ end
463
+
464
+ if !@company_name.nil? && @company_name.to_s.length > 40
465
+ invalid_properties.push('invalid value for "company_name", the character length must be smaller than or equal to 40.')
466
+ end
467
+
468
+ if !@company_name.nil? && @company_name.to_s.length < 1
469
+ invalid_properties.push('invalid value for "company_name", the character length must be great than or equal to 1.')
470
+ end
471
+
472
+ pattern = Regexp.new(/[\\d]{9}/)
473
+ if !@company_ein.nil? && @company_ein !~ pattern
474
+ invalid_properties.push("invalid value for \"company_ein\", must conform to the pattern #{pattern}.")
475
+ end
476
+
477
+ if !@company_operating_name.nil? && @company_operating_name.to_s.length > 100
478
+ invalid_properties.push('invalid value for "company_operating_name", the character length must be smaller than or equal to 100.')
479
+ end
480
+
481
+ if !@company_operating_name.nil? && @company_operating_name.to_s.length < 1
482
+ invalid_properties.push('invalid value for "company_operating_name", the character length must be great than or equal to 1.')
483
+ end
484
+
485
+ if !@payment_channel_account_number.nil? && @payment_channel_account_number.to_s.length > 17
486
+ invalid_properties.push('invalid value for "payment_channel_account_number", the character length must be smaller than or equal to 17.')
487
+ end
488
+
489
+ if !@payment_channel_account_number.nil? && @payment_channel_account_number.to_s.length < 6
490
+ invalid_properties.push('invalid value for "payment_channel_account_number", the character length must be great than or equal to 6.')
491
+ end
492
+
493
+ if !@payment_channel_routing_number.nil? && @payment_channel_routing_number.to_s.length > 9
494
+ invalid_properties.push('invalid value for "payment_channel_routing_number", the character length must be smaller than or equal to 9.')
495
+ end
496
+
497
+ if !@payment_channel_routing_number.nil? && @payment_channel_routing_number.to_s.length < 9
498
+ invalid_properties.push('invalid value for "payment_channel_routing_number", the character length must be great than or equal to 9.')
499
+ end
500
+
501
+ if !@payment_channel_iban.nil? && @payment_channel_iban.to_s.length > 34
502
+ invalid_properties.push('invalid value for "payment_channel_iban", the character length must be smaller than or equal to 34.')
503
+ end
504
+
505
+ if !@payment_channel_iban.nil? && @payment_channel_iban.to_s.length < 15
506
+ invalid_properties.push('invalid value for "payment_channel_iban", the character length must be great than or equal to 15.')
507
+ end
508
+
509
+ pattern = Regexp.new(/^[A-Za-z0-9]+$/)
510
+ if !@payment_channel_iban.nil? && @payment_channel_iban !~ pattern
511
+ invalid_properties.push("invalid value for \"payment_channel_iban\", must conform to the pattern #{pattern}.")
512
+ end
513
+
514
+ if !@payment_channel_country_code.nil? && @payment_channel_country_code.to_s.length > 2
515
+ invalid_properties.push('invalid value for "payment_channel_country_code", the character length must be smaller than or equal to 2.')
516
+ end
517
+
518
+ if !@payment_channel_country_code.nil? && @payment_channel_country_code.to_s.length < 2
519
+ invalid_properties.push('invalid value for "payment_channel_country_code", the character length must be great than or equal to 2.')
520
+ end
521
+
522
+ if !@challenge_description.nil? && @challenge_description.to_s.length > 255
523
+ invalid_properties.push('invalid value for "challenge_description", the character length must be smaller than or equal to 255.')
524
+ end
525
+
526
+ if !@challenge_description.nil? && @challenge_description.to_s.length < 1
527
+ invalid_properties.push('invalid value for "challenge_description", the character length must be great than or equal to 1.')
528
+ end
529
+
530
+ if !@challenge_value.nil? && @challenge_value.to_s.length > 20
531
+ invalid_properties.push('invalid value for "challenge_value", the character length must be smaller than or equal to 20.')
532
+ end
533
+
534
+ if !@challenge_value.nil? && @challenge_value.to_s.length < 3
535
+ invalid_properties.push('invalid value for "challenge_value", the character length must be great than or equal to 3.')
536
+ end
537
+
538
+ invalid_properties
539
+ end
540
+
541
+ # Check to see if the all the properties in the model are valid
542
+ # @return true if the model is valid
543
+ def valid?
544
+ return false if @type.nil?
545
+ return false if @remote_id.nil?
546
+ return false if @remote_id.to_s.length > 100
547
+ return false if @remote_id.to_s.length < 1
548
+ return false if @email.nil?
549
+ return false if @email.to_s.length > 255
550
+ return false if @email.to_s.length < 3
551
+ return false if @address_line1.nil?
552
+ return false if @address_line1.to_s.length > 100
553
+ return false if @address_line1.to_s.length < 2
554
+ return false if !@address_line2.nil? && @address_line2.to_s.length > 100
555
+ return false if !@address_line2.nil? && @address_line2.to_s.length < 0
556
+ return false if !@address_line3.nil? && @address_line3.to_s.length > 100
557
+ return false if !@address_line3.nil? && @address_line3.to_s.length < 0
558
+ return false if !@address_line4.nil? && @address_line4.to_s.length > 100
559
+ return false if !@address_line4.nil? && @address_line4.to_s.length < 0
560
+ return false if @address_city.nil?
561
+ return false if @address_city.to_s.length > 50
562
+ return false if @address_city.to_s.length < 2
563
+ return false if !@address_county_or_province.nil? && @address_county_or_province.to_s.length > 50
564
+ return false if !@address_county_or_province.nil? && @address_county_or_province.to_s.length < 1
565
+ return false if @address_zip_or_postcode.nil?
566
+ return false if @address_zip_or_postcode.to_s.length > 60
567
+ return false if @address_zip_or_postcode.to_s.length < 1
568
+ return false if @address_country.nil?
569
+ address_country_validator = EnumAttributeValidator.new('String', ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "false", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"])
570
+ return false unless address_country_validator.valid?(@address_country)
571
+ return false if @address_country.to_s.length > 2
572
+ return false if @address_country.to_s.length < 2
573
+ return false if !@individual_national_identification.nil? && @individual_national_identification.to_s.length > 30
574
+ return false if !@individual_national_identification.nil? && @individual_national_identification.to_s.length < 6
575
+ return false if !@individual_title.nil? && @individual_title.to_s.length > 40
576
+ return false if !@individual_title.nil? && @individual_title.to_s.length < 1
577
+ return false if !@individual_first_name.nil? && @individual_first_name.to_s.length > 40
578
+ return false if !@individual_first_name.nil? && @individual_first_name.to_s.length < 1
579
+ return false if !@individual_other_names.nil? && @individual_other_names.to_s.length > 40
580
+ return false if !@individual_other_names.nil? && @individual_other_names.to_s.length < 1
581
+ return false if !@individual_last_name.nil? && @individual_last_name.to_s.length > 40
582
+ return false if !@individual_last_name.nil? && @individual_last_name.to_s.length < 1
583
+ return false if !@company_name.nil? && @company_name.to_s.length > 40
584
+ return false if !@company_name.nil? && @company_name.to_s.length < 1
585
+ return false if !@company_ein.nil? && @company_ein !~ Regexp.new(/[\\d]{9}/)
586
+ return false if !@company_operating_name.nil? && @company_operating_name.to_s.length > 100
587
+ return false if !@company_operating_name.nil? && @company_operating_name.to_s.length < 1
588
+ return false if !@payment_channel_account_number.nil? && @payment_channel_account_number.to_s.length > 17
589
+ return false if !@payment_channel_account_number.nil? && @payment_channel_account_number.to_s.length < 6
590
+ return false if !@payment_channel_routing_number.nil? && @payment_channel_routing_number.to_s.length > 9
591
+ return false if !@payment_channel_routing_number.nil? && @payment_channel_routing_number.to_s.length < 9
592
+ return false if !@payment_channel_iban.nil? && @payment_channel_iban.to_s.length > 34
593
+ return false if !@payment_channel_iban.nil? && @payment_channel_iban.to_s.length < 15
594
+ return false if !@payment_channel_iban.nil? && @payment_channel_iban !~ Regexp.new(/^[A-Za-z0-9]+$/)
595
+ payment_channel_country_code_validator = EnumAttributeValidator.new('String', ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "false", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"])
596
+ return false unless payment_channel_country_code_validator.valid?(@payment_channel_country_code)
597
+ return false if !@payment_channel_country_code.nil? && @payment_channel_country_code.to_s.length > 2
598
+ return false if !@payment_channel_country_code.nil? && @payment_channel_country_code.to_s.length < 2
599
+ payment_channel_currency_validator = EnumAttributeValidator.new('String', ["USD", "GBP", "EUR"])
600
+ return false unless payment_channel_currency_validator.valid?(@payment_channel_currency)
601
+ return false if !@challenge_description.nil? && @challenge_description.to_s.length > 255
602
+ return false if !@challenge_description.nil? && @challenge_description.to_s.length < 1
603
+ return false if !@challenge_value.nil? && @challenge_value.to_s.length > 20
604
+ return false if !@challenge_value.nil? && @challenge_value.to_s.length < 3
605
+ payee_language_validator = EnumAttributeValidator.new('String', ["AR", "EN", "ES", "FR", "HE", "HI", "JA", "PT", "RU", "UR", "ZH"])
606
+ return false unless payee_language_validator.valid?(@payee_language)
607
+ true
608
+ end
609
+
610
+ # Custom attribute writer method with validation
611
+ # @param [Object] remote_id Value to be assigned
612
+ def remote_id=(remote_id)
613
+ if remote_id.nil?
614
+ fail ArgumentError, 'remote_id cannot be nil'
615
+ end
616
+
617
+ if remote_id.to_s.length > 100
618
+ fail ArgumentError, 'invalid value for "remote_id", the character length must be smaller than or equal to 100.'
619
+ end
620
+
621
+ if remote_id.to_s.length < 1
622
+ fail ArgumentError, 'invalid value for "remote_id", the character length must be great than or equal to 1.'
623
+ end
624
+
625
+ @remote_id = remote_id
626
+ end
627
+
628
+ # Custom attribute writer method with validation
629
+ # @param [Object] email Value to be assigned
630
+ def email=(email)
631
+ if email.nil?
632
+ fail ArgumentError, 'email cannot be nil'
633
+ end
634
+
635
+ if email.to_s.length > 255
636
+ fail ArgumentError, 'invalid value for "email", the character length must be smaller than or equal to 255.'
637
+ end
638
+
639
+ if email.to_s.length < 3
640
+ fail ArgumentError, 'invalid value for "email", the character length must be great than or equal to 3.'
641
+ end
642
+
643
+ @email = email
644
+ end
645
+
646
+ # Custom attribute writer method with validation
647
+ # @param [Object] address_line1 Value to be assigned
648
+ def address_line1=(address_line1)
649
+ if address_line1.nil?
650
+ fail ArgumentError, 'address_line1 cannot be nil'
651
+ end
652
+
653
+ if address_line1.to_s.length > 100
654
+ fail ArgumentError, 'invalid value for "address_line1", the character length must be smaller than or equal to 100.'
655
+ end
656
+
657
+ if address_line1.to_s.length < 2
658
+ fail ArgumentError, 'invalid value for "address_line1", the character length must be great than or equal to 2.'
659
+ end
660
+
661
+ @address_line1 = address_line1
662
+ end
663
+
664
+ # Custom attribute writer method with validation
665
+ # @param [Object] address_line2 Value to be assigned
666
+ def address_line2=(address_line2)
667
+ if !address_line2.nil? && address_line2.to_s.length > 100
668
+ fail ArgumentError, 'invalid value for "address_line2", the character length must be smaller than or equal to 100.'
669
+ end
670
+
671
+ if !address_line2.nil? && address_line2.to_s.length < 0
672
+ fail ArgumentError, 'invalid value for "address_line2", the character length must be great than or equal to 0.'
673
+ end
674
+
675
+ @address_line2 = address_line2
676
+ end
677
+
678
+ # Custom attribute writer method with validation
679
+ # @param [Object] address_line3 Value to be assigned
680
+ def address_line3=(address_line3)
681
+ if !address_line3.nil? && address_line3.to_s.length > 100
682
+ fail ArgumentError, 'invalid value for "address_line3", the character length must be smaller than or equal to 100.'
683
+ end
684
+
685
+ if !address_line3.nil? && address_line3.to_s.length < 0
686
+ fail ArgumentError, 'invalid value for "address_line3", the character length must be great than or equal to 0.'
687
+ end
688
+
689
+ @address_line3 = address_line3
690
+ end
691
+
692
+ # Custom attribute writer method with validation
693
+ # @param [Object] address_line4 Value to be assigned
694
+ def address_line4=(address_line4)
695
+ if !address_line4.nil? && address_line4.to_s.length > 100
696
+ fail ArgumentError, 'invalid value for "address_line4", the character length must be smaller than or equal to 100.'
697
+ end
698
+
699
+ if !address_line4.nil? && address_line4.to_s.length < 0
700
+ fail ArgumentError, 'invalid value for "address_line4", the character length must be great than or equal to 0.'
701
+ end
702
+
703
+ @address_line4 = address_line4
704
+ end
705
+
706
+ # Custom attribute writer method with validation
707
+ # @param [Object] address_city Value to be assigned
708
+ def address_city=(address_city)
709
+ if address_city.nil?
710
+ fail ArgumentError, 'address_city cannot be nil'
711
+ end
712
+
713
+ if address_city.to_s.length > 50
714
+ fail ArgumentError, 'invalid value for "address_city", the character length must be smaller than or equal to 50.'
715
+ end
716
+
717
+ if address_city.to_s.length < 2
718
+ fail ArgumentError, 'invalid value for "address_city", the character length must be great than or equal to 2.'
719
+ end
720
+
721
+ @address_city = address_city
722
+ end
723
+
724
+ # Custom attribute writer method with validation
725
+ # @param [Object] address_county_or_province Value to be assigned
726
+ def address_county_or_province=(address_county_or_province)
727
+ if !address_county_or_province.nil? && address_county_or_province.to_s.length > 50
728
+ fail ArgumentError, 'invalid value for "address_county_or_province", the character length must be smaller than or equal to 50.'
729
+ end
730
+
731
+ if !address_county_or_province.nil? && address_county_or_province.to_s.length < 1
732
+ fail ArgumentError, 'invalid value for "address_county_or_province", the character length must be great than or equal to 1.'
733
+ end
734
+
735
+ @address_county_or_province = address_county_or_province
736
+ end
737
+
738
+ # Custom attribute writer method with validation
739
+ # @param [Object] address_zip_or_postcode Value to be assigned
740
+ def address_zip_or_postcode=(address_zip_or_postcode)
741
+ if address_zip_or_postcode.nil?
742
+ fail ArgumentError, 'address_zip_or_postcode cannot be nil'
743
+ end
744
+
745
+ if address_zip_or_postcode.to_s.length > 60
746
+ fail ArgumentError, 'invalid value for "address_zip_or_postcode", the character length must be smaller than or equal to 60.'
747
+ end
748
+
749
+ if address_zip_or_postcode.to_s.length < 1
750
+ fail ArgumentError, 'invalid value for "address_zip_or_postcode", the character length must be great than or equal to 1.'
751
+ end
752
+
753
+ @address_zip_or_postcode = address_zip_or_postcode
754
+ end
755
+
756
+ # Custom attribute writer method checking allowed values (enum).
757
+ # @param [Object] address_country Object to be assigned
758
+ def address_country=(address_country)
759
+ validator = EnumAttributeValidator.new('String', ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "false", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"])
760
+ unless validator.valid?(address_country)
761
+ fail ArgumentError, "invalid value for \"address_country\", must be one of #{validator.allowable_values}."
762
+ end
763
+ @address_country = address_country
764
+ end
765
+
766
+ # Custom attribute writer method with validation
767
+ # @param [Object] individual_national_identification Value to be assigned
768
+ def individual_national_identification=(individual_national_identification)
769
+ if !individual_national_identification.nil? && individual_national_identification.to_s.length > 30
770
+ fail ArgumentError, 'invalid value for "individual_national_identification", the character length must be smaller than or equal to 30.'
771
+ end
772
+
773
+ if !individual_national_identification.nil? && individual_national_identification.to_s.length < 6
774
+ fail ArgumentError, 'invalid value for "individual_national_identification", the character length must be great than or equal to 6.'
775
+ end
776
+
777
+ @individual_national_identification = individual_national_identification
778
+ end
779
+
780
+ # Custom attribute writer method with validation
781
+ # @param [Object] individual_title Value to be assigned
782
+ def individual_title=(individual_title)
783
+ if !individual_title.nil? && individual_title.to_s.length > 40
784
+ fail ArgumentError, 'invalid value for "individual_title", the character length must be smaller than or equal to 40.'
785
+ end
786
+
787
+ if !individual_title.nil? && individual_title.to_s.length < 1
788
+ fail ArgumentError, 'invalid value for "individual_title", the character length must be great than or equal to 1.'
789
+ end
790
+
791
+ @individual_title = individual_title
792
+ end
793
+
794
+ # Custom attribute writer method with validation
795
+ # @param [Object] individual_first_name Value to be assigned
796
+ def individual_first_name=(individual_first_name)
797
+ if !individual_first_name.nil? && individual_first_name.to_s.length > 40
798
+ fail ArgumentError, 'invalid value for "individual_first_name", the character length must be smaller than or equal to 40.'
799
+ end
800
+
801
+ if !individual_first_name.nil? && individual_first_name.to_s.length < 1
802
+ fail ArgumentError, 'invalid value for "individual_first_name", the character length must be great than or equal to 1.'
803
+ end
804
+
805
+ @individual_first_name = individual_first_name
806
+ end
807
+
808
+ # Custom attribute writer method with validation
809
+ # @param [Object] individual_other_names Value to be assigned
810
+ def individual_other_names=(individual_other_names)
811
+ if !individual_other_names.nil? && individual_other_names.to_s.length > 40
812
+ fail ArgumentError, 'invalid value for "individual_other_names", the character length must be smaller than or equal to 40.'
813
+ end
814
+
815
+ if !individual_other_names.nil? && individual_other_names.to_s.length < 1
816
+ fail ArgumentError, 'invalid value for "individual_other_names", the character length must be great than or equal to 1.'
817
+ end
818
+
819
+ @individual_other_names = individual_other_names
820
+ end
821
+
822
+ # Custom attribute writer method with validation
823
+ # @param [Object] individual_last_name Value to be assigned
824
+ def individual_last_name=(individual_last_name)
825
+ if !individual_last_name.nil? && individual_last_name.to_s.length > 40
826
+ fail ArgumentError, 'invalid value for "individual_last_name", the character length must be smaller than or equal to 40.'
827
+ end
828
+
829
+ if !individual_last_name.nil? && individual_last_name.to_s.length < 1
830
+ fail ArgumentError, 'invalid value for "individual_last_name", the character length must be great than or equal to 1.'
831
+ end
832
+
833
+ @individual_last_name = individual_last_name
834
+ end
835
+
836
+ # Custom attribute writer method with validation
837
+ # @param [Object] company_name Value to be assigned
838
+ def company_name=(company_name)
839
+ if !company_name.nil? && company_name.to_s.length > 40
840
+ fail ArgumentError, 'invalid value for "company_name", the character length must be smaller than or equal to 40.'
841
+ end
842
+
843
+ if !company_name.nil? && company_name.to_s.length < 1
844
+ fail ArgumentError, 'invalid value for "company_name", the character length must be great than or equal to 1.'
845
+ end
846
+
847
+ @company_name = company_name
848
+ end
849
+
850
+ # Custom attribute writer method with validation
851
+ # @param [Object] company_ein Value to be assigned
852
+ def company_ein=(company_ein)
853
+ pattern = Regexp.new(/[\\d]{9}/)
854
+ if !company_ein.nil? && company_ein !~ pattern
855
+ fail ArgumentError, "invalid value for \"company_ein\", must conform to the pattern #{pattern}."
856
+ end
857
+
858
+ @company_ein = company_ein
859
+ end
860
+
861
+ # Custom attribute writer method with validation
862
+ # @param [Object] company_operating_name Value to be assigned
863
+ def company_operating_name=(company_operating_name)
864
+ if !company_operating_name.nil? && company_operating_name.to_s.length > 100
865
+ fail ArgumentError, 'invalid value for "company_operating_name", the character length must be smaller than or equal to 100.'
866
+ end
867
+
868
+ if !company_operating_name.nil? && company_operating_name.to_s.length < 1
869
+ fail ArgumentError, 'invalid value for "company_operating_name", the character length must be great than or equal to 1.'
870
+ end
871
+
872
+ @company_operating_name = company_operating_name
873
+ end
874
+
875
+ # Custom attribute writer method with validation
876
+ # @param [Object] payment_channel_account_number Value to be assigned
877
+ def payment_channel_account_number=(payment_channel_account_number)
878
+ if !payment_channel_account_number.nil? && payment_channel_account_number.to_s.length > 17
879
+ fail ArgumentError, 'invalid value for "payment_channel_account_number", the character length must be smaller than or equal to 17.'
880
+ end
881
+
882
+ if !payment_channel_account_number.nil? && payment_channel_account_number.to_s.length < 6
883
+ fail ArgumentError, 'invalid value for "payment_channel_account_number", the character length must be great than or equal to 6.'
884
+ end
885
+
886
+ @payment_channel_account_number = payment_channel_account_number
887
+ end
888
+
889
+ # Custom attribute writer method with validation
890
+ # @param [Object] payment_channel_routing_number Value to be assigned
891
+ def payment_channel_routing_number=(payment_channel_routing_number)
892
+ if !payment_channel_routing_number.nil? && payment_channel_routing_number.to_s.length > 9
893
+ fail ArgumentError, 'invalid value for "payment_channel_routing_number", the character length must be smaller than or equal to 9.'
894
+ end
895
+
896
+ if !payment_channel_routing_number.nil? && payment_channel_routing_number.to_s.length < 9
897
+ fail ArgumentError, 'invalid value for "payment_channel_routing_number", the character length must be great than or equal to 9.'
898
+ end
899
+
900
+ @payment_channel_routing_number = payment_channel_routing_number
901
+ end
902
+
903
+ # Custom attribute writer method with validation
904
+ # @param [Object] payment_channel_iban Value to be assigned
905
+ def payment_channel_iban=(payment_channel_iban)
906
+ if !payment_channel_iban.nil? && payment_channel_iban.to_s.length > 34
907
+ fail ArgumentError, 'invalid value for "payment_channel_iban", the character length must be smaller than or equal to 34.'
908
+ end
909
+
910
+ if !payment_channel_iban.nil? && payment_channel_iban.to_s.length < 15
911
+ fail ArgumentError, 'invalid value for "payment_channel_iban", the character length must be great than or equal to 15.'
912
+ end
913
+
914
+ pattern = Regexp.new(/^[A-Za-z0-9]+$/)
915
+ if !payment_channel_iban.nil? && payment_channel_iban !~ pattern
916
+ fail ArgumentError, "invalid value for \"payment_channel_iban\", must conform to the pattern #{pattern}."
917
+ end
918
+
919
+ @payment_channel_iban = payment_channel_iban
920
+ end
921
+
922
+ # Custom attribute writer method checking allowed values (enum).
923
+ # @param [Object] payment_channel_country_code Object to be assigned
924
+ def payment_channel_country_code=(payment_channel_country_code)
925
+ validator = EnumAttributeValidator.new('String', ["AF", "AX", "AL", "DZ", "AS", "AD", "AO", "AI", "AQ", "AG", "AR", "AM", "AW", "AU", "AT", "AZ", "BS", "BH", "BD", "BB", "BY", "BE", "BZ", "BJ", "BM", "BT", "BO", "BQ", "BA", "BW", "BV", "BR", "IO", "BN", "BG", "BF", "BI", "KH", "CM", "CA", "CV", "KY", "CF", "TD", "CL", "CN", "CX", "CC", "CO", "KM", "CG", "CD", "CK", "CR", "CI", "HR", "CU", "CW", "CY", "CZ", "DK", "DJ", "DM", "DO", "EC", "EG", "SV", "GQ", "ER", "EE", "ET", "FK", "FO", "FJ", "FI", "FR", "GF", "PF", "TF", "GA", "GM", "GE", "DE", "GH", "GI", "GR", "GL", "GD", "GP", "GU", "GT", "GG", "GN", "GW", "GY", "HT", "HM", "VA", "HN", "HK", "HU", "IS", "IN", "ID", "IR", "IQ", "IE", "IM", "IL", "IT", "JM", "JP", "JE", "JO", "KZ", "KE", "KI", "KP", "KR", "KW", "KG", "LA", "LV", "LB", "LS", "LR", "LY", "LI", "LT", "LU", "MO", "MK", "MG", "MW", "MY", "MV", "ML", "MT", "MH", "MQ", "MR", "MU", "YT", "MX", "FM", "MD", "MC", "MN", "ME", "MS", "MA", "MZ", "MM", "NA", "NR", "NP", "NL", "NC", "NZ", "NI", "NE", "NG", "NU", "NF", "MP", "false", "OM", "PK", "PW", "PS", "PA", "PG", "PY", "PE", "PH", "PN", "PL", "PT", "PR", "QA", "RE", "RO", "RU", "RW", "BL", "SH", "KN", "LC", "MF", "PM", "VC", "WS", "SM", "ST", "SA", "SN", "RS", "SC", "SL", "SG", "SX", "SK", "SI", "SB", "SO", "ZA", "GS", "SS", "ES", "LK", "SD", "SR", "SJ", "SZ", "SE", "CH", "SY", "TW", "TJ", "TZ", "TH", "TL", "TG", "TK", "TO", "TT", "TN", "TR", "TM", "TC", "TV", "UG", "UA", "AE", "GB", "US", "UM", "UY", "UZ", "VU", "VE", "VN", "VG", "VI", "WF", "EH", "YE", "ZM", "ZW"])
926
+ unless validator.valid?(payment_channel_country_code)
927
+ fail ArgumentError, "invalid value for \"payment_channel_country_code\", must be one of #{validator.allowable_values}."
928
+ end
929
+ @payment_channel_country_code = payment_channel_country_code
930
+ end
931
+
932
+ # Custom attribute writer method checking allowed values (enum).
933
+ # @param [Object] payment_channel_currency Object to be assigned
934
+ def payment_channel_currency=(payment_channel_currency)
935
+ validator = EnumAttributeValidator.new('String', ["USD", "GBP", "EUR"])
936
+ unless validator.valid?(payment_channel_currency)
937
+ fail ArgumentError, "invalid value for \"payment_channel_currency\", must be one of #{validator.allowable_values}."
938
+ end
939
+ @payment_channel_currency = payment_channel_currency
940
+ end
941
+
942
+ # Custom attribute writer method with validation
943
+ # @param [Object] challenge_description Value to be assigned
944
+ def challenge_description=(challenge_description)
945
+ if !challenge_description.nil? && challenge_description.to_s.length > 255
946
+ fail ArgumentError, 'invalid value for "challenge_description", the character length must be smaller than or equal to 255.'
947
+ end
948
+
949
+ if !challenge_description.nil? && challenge_description.to_s.length < 1
950
+ fail ArgumentError, 'invalid value for "challenge_description", the character length must be great than or equal to 1.'
951
+ end
952
+
953
+ @challenge_description = challenge_description
954
+ end
955
+
956
+ # Custom attribute writer method with validation
957
+ # @param [Object] challenge_value Value to be assigned
958
+ def challenge_value=(challenge_value)
959
+ if !challenge_value.nil? && challenge_value.to_s.length > 20
960
+ fail ArgumentError, 'invalid value for "challenge_value", the character length must be smaller than or equal to 20.'
961
+ end
962
+
963
+ if !challenge_value.nil? && challenge_value.to_s.length < 3
964
+ fail ArgumentError, 'invalid value for "challenge_value", the character length must be great than or equal to 3.'
965
+ end
966
+
967
+ @challenge_value = challenge_value
968
+ end
969
+
970
+ # Custom attribute writer method checking allowed values (enum).
971
+ # @param [Object] payee_language Object to be assigned
972
+ def payee_language=(payee_language)
973
+ validator = EnumAttributeValidator.new('String', ["AR", "EN", "ES", "FR", "HE", "HI", "JA", "PT", "RU", "UR", "ZH"])
974
+ unless validator.valid?(payee_language)
975
+ fail ArgumentError, "invalid value for \"payee_language\", must be one of #{validator.allowable_values}."
976
+ end
977
+ @payee_language = payee_language
978
+ end
979
+
980
+ # Checks equality by comparing each attribute.
981
+ # @param [Object] Object to be compared
982
+ def ==(o)
983
+ return true if self.equal?(o)
984
+ self.class == o.class &&
985
+ type == o.type &&
986
+ remote_id == o.remote_id &&
987
+ email == o.email &&
988
+ address_line1 == o.address_line1 &&
989
+ address_line2 == o.address_line2 &&
990
+ address_line3 == o.address_line3 &&
991
+ address_line4 == o.address_line4 &&
992
+ address_city == o.address_city &&
993
+ address_county_or_province == o.address_county_or_province &&
994
+ address_zip_or_postcode == o.address_zip_or_postcode &&
995
+ address_country == o.address_country &&
996
+ individual_national_identification == o.individual_national_identification &&
997
+ individual_date_of_birth == o.individual_date_of_birth &&
998
+ individual_title == o.individual_title &&
999
+ individual_first_name == o.individual_first_name &&
1000
+ individual_other_names == o.individual_other_names &&
1001
+ individual_last_name == o.individual_last_name &&
1002
+ company_name == o.company_name &&
1003
+ company_ein == o.company_ein &&
1004
+ company_operating_name == o.company_operating_name &&
1005
+ payment_channel_account_number == o.payment_channel_account_number &&
1006
+ payment_channel_routing_number == o.payment_channel_routing_number &&
1007
+ payment_channel_account_name == o.payment_channel_account_name &&
1008
+ payment_channel_iban == o.payment_channel_iban &&
1009
+ payment_channel_country_code == o.payment_channel_country_code &&
1010
+ payment_channel_currency == o.payment_channel_currency &&
1011
+ challenge_description == o.challenge_description &&
1012
+ challenge_value == o.challenge_value &&
1013
+ payee_language == o.payee_language
1014
+ end
1015
+
1016
+ # @see the `==` method
1017
+ # @param [Object] Object to be compared
1018
+ def eql?(o)
1019
+ self == o
1020
+ end
1021
+
1022
+ # Calculates hash code according to all attributes.
1023
+ # @return [Integer] Hash code
1024
+ def hash
1025
+ [type, remote_id, email, address_line1, address_line2, address_line3, address_line4, address_city, address_county_or_province, address_zip_or_postcode, address_country, individual_national_identification, individual_date_of_birth, individual_title, individual_first_name, individual_other_names, individual_last_name, company_name, company_ein, company_operating_name, payment_channel_account_number, payment_channel_routing_number, payment_channel_account_name, payment_channel_iban, payment_channel_country_code, payment_channel_currency, challenge_description, challenge_value, payee_language].hash
1026
+ end
1027
+
1028
+ # Builds the object from hash
1029
+ # @param [Hash] attributes Model attributes in the form of hash
1030
+ # @return [Object] Returns the model itself
1031
+ def self.build_from_hash(attributes)
1032
+ new.build_from_hash(attributes)
1033
+ end
1034
+
1035
+ # Builds the object from hash
1036
+ # @param [Hash] attributes Model attributes in the form of hash
1037
+ # @return [Object] Returns the model itself
1038
+ def build_from_hash(attributes)
1039
+ return nil unless attributes.is_a?(Hash)
1040
+ self.class.openapi_types.each_pair do |key, type|
1041
+ if type =~ /\AArray<(.*)>/i
1042
+ # check to ensure the input is an array given that the attribute
1043
+ # is documented as an array but the input is not
1044
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
1045
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
1046
+ end
1047
+ elsif !attributes[self.class.attribute_map[key]].nil?
1048
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
1049
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
1050
+ end
1051
+
1052
+ self
1053
+ end
1054
+
1055
+ # Deserializes the data based on type
1056
+ # @param string type Data type
1057
+ # @param string value Value to be deserialized
1058
+ # @return [Object] Deserialized data
1059
+ def _deserialize(type, value)
1060
+ case type.to_sym
1061
+ when :DateTime
1062
+ DateTime.parse(value)
1063
+ when :Date
1064
+ Date.parse(value)
1065
+ when :String
1066
+ value.to_s
1067
+ when :Integer
1068
+ value.to_i
1069
+ when :Float
1070
+ value.to_f
1071
+ when :Boolean
1072
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1073
+ true
1074
+ else
1075
+ false
1076
+ end
1077
+ when :Object
1078
+ # generic object (usually a Hash), return directly
1079
+ value
1080
+ when /\AArray<(?<inner_type>.+)>\z/
1081
+ inner_type = Regexp.last_match[:inner_type]
1082
+ value.map { |v| _deserialize(inner_type, v) }
1083
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
1084
+ k_type = Regexp.last_match[:k_type]
1085
+ v_type = Regexp.last_match[:v_type]
1086
+ {}.tap do |hash|
1087
+ value.each do |k, v|
1088
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1089
+ end
1090
+ end
1091
+ else # model
1092
+ VeloPayments.const_get(type).build_from_hash(value)
1093
+ end
1094
+ end
1095
+
1096
+ # Returns the string representation of the object
1097
+ # @return [String] String presentation of the object
1098
+ def to_s
1099
+ to_hash.to_s
1100
+ end
1101
+
1102
+ # to_body is an alias to to_hash (backward compatibility)
1103
+ # @return [Hash] Returns the object in the form of hash
1104
+ def to_body
1105
+ to_hash
1106
+ end
1107
+
1108
+ # Returns the object in the form of hash
1109
+ # @return [Hash] Returns the object in the form of hash
1110
+ def to_hash
1111
+ hash = {}
1112
+ self.class.attribute_map.each_pair do |attr, param|
1113
+ value = self.send(attr)
1114
+ if value.nil?
1115
+ is_nullable = self.class.openapi_nullable.include?(attr)
1116
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1117
+ end
1118
+
1119
+ hash[param] = _to_hash(value)
1120
+ end
1121
+ hash
1122
+ end
1123
+
1124
+ # Outputs non-array value in the form of hash
1125
+ # For object, use to_hash. Otherwise, just return the value
1126
+ # @param [Object] value Any valid value
1127
+ # @return [Hash] Returns the value in the form of hash
1128
+ def _to_hash(value)
1129
+ if value.is_a?(Array)
1130
+ value.compact.map { |v| _to_hash(v) }
1131
+ elsif value.is_a?(Hash)
1132
+ {}.tap do |hash|
1133
+ value.each { |k, v| hash[k] = _to_hash(v) }
1134
+ end
1135
+ elsif value.respond_to? :to_hash
1136
+ value.to_hash
1137
+ else
1138
+ value
1139
+ end
1140
+ end
1141
+ end
1142
+ end