velopayments 2.17.8 → 2.18.31.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 (513) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +11 -6
  3. data/README.md +123 -35
  4. data/docs/AcceptedPayment.md +27 -0
  5. data/docs/AccessTokenResponse.md +29 -0
  6. data/docs/AccessTokenValidationRequest.md +17 -0
  7. data/docs/CheckTokenResponse.md +25 -0
  8. data/docs/CountriesApi.md +51 -2
  9. data/docs/CreateFundingAccountRequest.md +23 -0
  10. data/docs/CreatePayorLinkRequest.md +21 -0
  11. data/docs/CurrencyType.md +17 -0
  12. data/docs/DefaultApi.md +62 -0
  13. data/docs/EmailUpdateRequest.md +19 -0
  14. data/docs/FundingAccountResponse.md +27 -0
  15. data/docs/FundingManagerApi.md +197 -21
  16. data/docs/FundingPayorStatusAuditResponse.md +23 -0
  17. data/docs/GenerateOTPRequest.md +17 -0
  18. data/docs/GetPaymentsForPayoutResponseV3Summary.md +2 -0
  19. data/docs/GetPaymentsForPayoutResponseV4Summary.md +15 -13
  20. data/docs/GetPayoutApi.md +5 -5
  21. data/docs/GetPayoutsResponseV3.md +1 -3
  22. data/docs/GetPayoutsResponseV4.md +1 -3
  23. data/docs/InstructPayoutApi.md +5 -5
  24. data/docs/InviteUserRequest.md +35 -0
  25. data/docs/KycState.md +16 -0
  26. data/docs/LinkForResponse.md +19 -0
  27. data/docs/ListFundingAccountsResponse.md +21 -0
  28. data/docs/ListPaymentsResponse.md +1 -3
  29. data/docs/ListPaymentsResponseV4.md +21 -0
  30. data/docs/ListSourceAccountResponseV2.md +1 -1
  31. data/docs/LoginApi.md +212 -0
  32. data/docs/MFADetails.md +19 -0
  33. data/docs/MFAStatus.md +16 -0
  34. data/docs/MFAType.md +16 -0
  35. data/docs/OTPType.md +16 -0
  36. data/docs/PageForResponse.md +25 -0
  37. data/docs/PageResourceFundingPayorStatusAuditResponseFundingPayorStatusAuditResponse.md +21 -0
  38. data/docs/PagedUserResponse.md +21 -0
  39. data/docs/PagedUserResponseLinks.md +19 -0
  40. data/docs/{ListSourceAccountResponseV2Page.md → PagedUserResponsePage.md} +2 -2
  41. data/docs/PasswordRequest.md +17 -0
  42. data/docs/PayeeInvitationStatus.md +1 -1
  43. data/docs/PaymentAuditServiceApi.md +85 -24
  44. data/docs/PaymentRails.md +16 -0
  45. data/docs/PaymentResponseV3.md +30 -24
  46. data/docs/PaymentResponseV4.md +47 -41
  47. data/docs/PaymentResponseV4Payout.md +3 -1
  48. data/docs/PayorAmlTransactionV3.md +71 -0
  49. data/docs/PayorAmlTransactionV4.md +71 -0
  50. data/docs/PayorV1.md +2 -2
  51. data/docs/PayorV2.md +8 -4
  52. data/docs/PayorsApi.md +113 -2
  53. data/docs/PayorsPrivateApi.md +60 -0
  54. data/docs/PayoutHistoryApi.md +5 -5
  55. data/docs/PayoutSummaryAuditV3.md +0 -2
  56. data/docs/PayoutSummaryAuditV4.md +5 -3
  57. data/docs/PayoutSummaryResponse.md +2 -0
  58. data/docs/Region.md +19 -0
  59. data/docs/RegisterMFARequest.md +17 -0
  60. data/docs/RegisterMFAResponse.md +19 -0
  61. data/docs/RegisterSmsRequest.md +17 -0
  62. data/docs/ResendTokenRequest.md +19 -0
  63. data/docs/ResetPasswordRequest.md +17 -0
  64. data/docs/Role.md +17 -0
  65. data/docs/SelfMFATypeUnregisterRequest.md +17 -0
  66. data/docs/SelfUpdatePasswordRequest.md +19 -0
  67. data/docs/SupportedCountriesResponse2.md +17 -0
  68. data/docs/SupportedCountry2.md +21 -0
  69. data/docs/TokenType.md +16 -0
  70. data/docs/TokensApi.md +560 -0
  71. data/docs/TransferRequest.md +21 -0
  72. data/docs/UnregisterMFARequest.md +19 -0
  73. data/docs/UserInfo.md +21 -0
  74. data/docs/UserResponse.md +43 -0
  75. data/docs/UserResponse2.md +45 -0
  76. data/docs/UserResponse2Roles.md +17 -0
  77. data/docs/UserStatus.md +16 -0
  78. data/docs/UserType.md +16 -0
  79. data/docs/UserType2.md +16 -0
  80. data/docs/UsersApi.md +806 -0
  81. data/docs/ValidateMFARequest.md +17 -0
  82. data/docs/ValidateOTPRequest.md +17 -0
  83. data/docs/ValidatePasswordResponse.md +23 -0
  84. data/docs/WithdrawPayoutApi.md +5 -5
  85. data/lib/velopayments/api/countries_api.rb +61 -5
  86. data/lib/velopayments/api/currencies_api.rb +2 -2
  87. data/lib/velopayments/api/{auth_api.rb → default_api.rb} +23 -22
  88. data/lib/velopayments/api/funding_manager_api.rb +237 -22
  89. data/lib/velopayments/api/get_payout_api.rb +8 -8
  90. data/lib/velopayments/api/instruct_payout_api.rb +8 -8
  91. data/lib/velopayments/api/login_api.rb +265 -0
  92. data/lib/velopayments/api/payee_invitation_api.rb +2 -2
  93. data/lib/velopayments/api/payees_api.rb +2 -2
  94. data/lib/velopayments/api/payment_audit_service_api.rb +100 -36
  95. data/lib/velopayments/api/payors_api.rb +152 -2
  96. data/lib/velopayments/api/payors_private_api.rb +86 -0
  97. data/lib/velopayments/api/payout_history_api.rb +7 -7
  98. data/lib/velopayments/api/quote_payout_api.rb +2 -2
  99. data/lib/velopayments/api/submit_payout_api.rb +2 -2
  100. data/lib/velopayments/api/tokens_api.rb +785 -0
  101. data/lib/velopayments/api/users_api.rb +997 -0
  102. data/lib/velopayments/api/withdraw_payout_api.rb +8 -8
  103. data/lib/velopayments/api_client.rb +2 -2
  104. data/lib/velopayments/api_error.rb +2 -2
  105. data/lib/velopayments/configuration.rb +9 -2
  106. data/lib/velopayments/models/accepted_payment.rb +304 -0
  107. data/lib/velopayments/models/access_token_response.rb +270 -0
  108. data/lib/velopayments/models/access_token_validation_request.rb +240 -0
  109. data/lib/velopayments/models/auth_response.rb +13 -3
  110. data/lib/velopayments/models/auto_top_up_config.rb +15 -3
  111. data/lib/velopayments/models/challenge.rb +13 -3
  112. data/lib/velopayments/models/check_token_response.rb +244 -0
  113. data/lib/velopayments/models/company_response.rb +14 -3
  114. data/lib/velopayments/models/company_v1.rb +15 -3
  115. data/lib/velopayments/models/create_funding_account_request.rb +337 -0
  116. data/lib/velopayments/models/create_individual.rb +13 -3
  117. data/lib/velopayments/models/create_individual2.rb +13 -3
  118. data/lib/velopayments/models/create_payee.rb +15 -3
  119. data/lib/velopayments/models/create_payee2.rb +15 -3
  120. data/lib/velopayments/models/create_payee_address.rb +18 -3
  121. data/lib/velopayments/models/create_payee_address2.rb +18 -3
  122. data/lib/velopayments/models/create_payees_csv_request.rb +13 -3
  123. data/lib/velopayments/models/create_payees_csv_request2.rb +13 -3
  124. data/lib/velopayments/models/create_payees_csv_response.rb +13 -3
  125. data/lib/velopayments/models/create_payees_csv_response2.rb +13 -3
  126. data/lib/velopayments/models/create_payees_request.rb +13 -3
  127. data/lib/velopayments/models/create_payees_request2.rb +13 -3
  128. data/lib/velopayments/models/create_payment_channel.rb +13 -3
  129. data/lib/velopayments/models/create_payment_channel2.rb +13 -3
  130. data/lib/velopayments/models/create_payor_link_request.rb +273 -0
  131. data/lib/velopayments/models/create_payout_request.rb +13 -3
  132. data/lib/velopayments/models/{get_payouts_response_v3_summary.rb → currency_type.rb} +55 -48
  133. data/lib/velopayments/models/email_update_request.rb +246 -0
  134. data/lib/velopayments/models/error.rb +13 -3
  135. data/lib/velopayments/models/error_response.rb +15 -3
  136. data/lib/velopayments/models/failed_submission.rb +13 -3
  137. data/lib/velopayments/models/funding_account_response.rb +254 -0
  138. data/lib/velopayments/models/funding_audit.rb +25 -3
  139. data/lib/velopayments/models/funding_event.rb +13 -3
  140. data/lib/velopayments/models/funding_event_type.rb +2 -2
  141. data/lib/velopayments/models/funding_payor_status_audit_response.rb +233 -0
  142. data/lib/velopayments/models/funding_request_v1.rb +13 -3
  143. data/lib/velopayments/models/funding_request_v2.rb +13 -3
  144. data/lib/velopayments/models/fx_summary_v3.rb +13 -3
  145. data/lib/velopayments/models/fx_summary_v4.rb +13 -3
  146. data/lib/velopayments/models/generate_otp_request.rb +211 -0
  147. data/lib/velopayments/models/get_fundings_response.rb +13 -3
  148. data/lib/velopayments/models/get_fundings_response_all_of.rb +13 -3
  149. data/lib/velopayments/models/get_payments_for_payout_response_v3.rb +13 -3
  150. data/lib/velopayments/models/get_payments_for_payout_response_v3_page.rb +13 -3
  151. data/lib/velopayments/models/get_payments_for_payout_response_v3_summary.rb +24 -4
  152. data/lib/velopayments/models/get_payments_for_payout_response_v4.rb +13 -3
  153. data/lib/velopayments/models/get_payments_for_payout_response_v4_summary.rb +83 -64
  154. data/lib/velopayments/models/get_payout_statistics.rb +13 -3
  155. data/lib/velopayments/models/get_payouts_response_v3.rb +14 -13
  156. data/lib/velopayments/models/get_payouts_response_v3_links.rb +13 -3
  157. data/lib/velopayments/models/get_payouts_response_v3_page.rb +13 -3
  158. data/lib/velopayments/models/get_payouts_response_v4.rb +14 -13
  159. data/lib/velopayments/models/individual_response.rb +13 -3
  160. data/lib/velopayments/models/individual_v1.rb +13 -3
  161. data/lib/velopayments/models/individual_v1_name.rb +13 -3
  162. data/lib/velopayments/models/invitation_status.rb +2 -2
  163. data/lib/velopayments/models/invitation_status_response.rb +13 -3
  164. data/lib/velopayments/models/invite_payee_request.rb +13 -3
  165. data/lib/velopayments/models/invite_user_request.rb +490 -0
  166. data/lib/velopayments/models/kyc_state.rb +37 -0
  167. data/lib/velopayments/models/language.rb +2 -2
  168. data/lib/velopayments/models/{funding_delta_response_links.rb → link_for_response.rb} +16 -6
  169. data/lib/velopayments/models/{list_payments_response_summary.rb → list_funding_accounts_response.rb} +40 -43
  170. data/lib/velopayments/models/list_payments_response.rb +14 -13
  171. data/lib/velopayments/models/list_payments_response_page.rb +13 -3
  172. data/lib/velopayments/models/list_payments_response_v4.rb +229 -0
  173. data/lib/velopayments/models/list_source_account_response.rb +13 -3
  174. data/lib/velopayments/models/list_source_account_response_links.rb +13 -3
  175. data/lib/velopayments/models/list_source_account_response_page.rb +13 -3
  176. data/lib/velopayments/models/list_source_account_response_v2.rb +14 -4
  177. data/lib/velopayments/models/marketing_opt_in.rb +13 -3
  178. data/lib/velopayments/models/mfa_details.rb +216 -0
  179. data/lib/velopayments/models/mfa_status.rb +36 -0
  180. data/lib/velopayments/models/mfa_type.rb +37 -0
  181. data/lib/velopayments/models/notifications.rb +13 -3
  182. data/lib/velopayments/models/ofac_status.rb +2 -2
  183. data/lib/velopayments/models/onboarded_status.rb +2 -2
  184. data/lib/velopayments/models/otp_type.rb +35 -0
  185. data/lib/velopayments/models/{list_source_account_response_v2_page.rb → page_for_response.rb} +16 -6
  186. data/lib/velopayments/models/page_resource_funding_payor_status_audit_response_funding_payor_status_audit_response.rb +228 -0
  187. data/lib/velopayments/models/paged_payee_invitation_status_response.rb +13 -3
  188. data/lib/velopayments/models/paged_payee_response.rb +13 -3
  189. data/lib/velopayments/models/paged_payee_response2.rb +13 -3
  190. data/lib/velopayments/models/paged_payee_response2_summary.rb +13 -3
  191. data/lib/velopayments/models/paged_payee_response_links.rb +13 -3
  192. data/lib/velopayments/models/paged_payee_response_page.rb +13 -3
  193. data/lib/velopayments/models/paged_payee_response_summary.rb +13 -3
  194. data/lib/velopayments/models/paged_response.rb +13 -3
  195. data/lib/velopayments/models/paged_response_page.rb +13 -3
  196. data/lib/velopayments/models/{funding_delta_response.rb → paged_user_response.rb} +20 -10
  197. data/lib/velopayments/models/paged_user_response_links.rb +215 -0
  198. data/lib/velopayments/models/paged_user_response_page.rb +242 -0
  199. data/lib/velopayments/models/password_request.rb +240 -0
  200. data/lib/velopayments/models/payee.rb +19 -3
  201. data/lib/velopayments/models/payee_address.rb +18 -3
  202. data/lib/velopayments/models/payee_delta.rb +14 -3
  203. data/lib/velopayments/models/payee_delta_response.rb +13 -3
  204. data/lib/velopayments/models/payee_delta_response_links.rb +13 -3
  205. data/lib/velopayments/models/payee_delta_response_page.rb +13 -3
  206. data/lib/velopayments/models/payee_invitation_status.rb +13 -3
  207. data/lib/velopayments/models/payee_invitation_status_response.rb +13 -3
  208. data/lib/velopayments/models/payee_payment_channel.rb +13 -3
  209. data/lib/velopayments/models/payee_payor_ref.rb +13 -3
  210. data/lib/velopayments/models/payee_payor_ref2.rb +13 -3
  211. data/lib/velopayments/models/payee_response.rb +19 -3
  212. data/lib/velopayments/models/payee_response2.rb +19 -3
  213. data/lib/velopayments/models/payee_type.rb +2 -2
  214. data/lib/velopayments/models/payment_audit_currency_v3.rb +2 -2
  215. data/lib/velopayments/models/payment_audit_currency_v4.rb +2 -2
  216. data/lib/velopayments/models/payment_channel_country.rb +13 -3
  217. data/lib/velopayments/models/payment_channel_rule.rb +13 -3
  218. data/lib/velopayments/models/payment_channel_rules_response.rb +13 -3
  219. data/lib/velopayments/models/payment_delta.rb +19 -3
  220. data/lib/velopayments/models/payment_delta_response.rb +13 -3
  221. data/lib/velopayments/models/payment_event_response_v3.rb +13 -3
  222. data/lib/velopayments/models/payment_event_response_v4.rb +13 -3
  223. data/lib/velopayments/models/payment_instruction.rb +13 -3
  224. data/lib/velopayments/models/payment_rails.rb +36 -0
  225. data/lib/velopayments/models/payment_response_v3.rb +69 -7
  226. data/lib/velopayments/models/payment_response_v4.rb +66 -5
  227. data/lib/velopayments/models/payment_response_v4_payout.rb +23 -4
  228. data/lib/velopayments/models/payment_status.rb +2 -2
  229. data/lib/velopayments/models/payor_address.rb +18 -3
  230. data/lib/velopayments/models/payor_address_v2.rb +18 -3
  231. data/lib/velopayments/models/payor_aml_transaction_v3.rb +454 -0
  232. data/lib/velopayments/models/payor_aml_transaction_v4.rb +454 -0
  233. data/lib/velopayments/models/payor_branding_response.rb +16 -3
  234. data/lib/velopayments/models/payor_create_api_key_request.rb +14 -3
  235. data/lib/velopayments/models/payor_create_api_key_response.rb +13 -3
  236. data/lib/velopayments/models/payor_create_application_request.rb +14 -3
  237. data/lib/velopayments/models/payor_email_opt_out_request.rb +13 -3
  238. data/lib/velopayments/models/payor_links_response.rb +13 -3
  239. data/lib/velopayments/models/payor_links_response_links.rb +13 -3
  240. data/lib/velopayments/models/payor_links_response_payors.rb +13 -3
  241. data/lib/velopayments/models/payor_logo_request.rb +13 -3
  242. data/lib/velopayments/models/payor_v1.rb +14 -17
  243. data/lib/velopayments/models/payor_v2.rb +41 -21
  244. data/lib/velopayments/models/payout_payor_v4.rb +13 -3
  245. data/lib/velopayments/models/payout_principal_v4.rb +13 -3
  246. data/lib/velopayments/models/payout_status_v3.rb +2 -2
  247. data/lib/velopayments/models/payout_status_v4.rb +2 -2
  248. data/lib/velopayments/models/payout_summary_audit_v3.rb +14 -13
  249. data/lib/velopayments/models/payout_summary_audit_v4.rb +31 -13
  250. data/lib/velopayments/models/payout_summary_response.rb +30 -4
  251. data/lib/velopayments/models/payout_type_v4.rb +2 -2
  252. data/lib/velopayments/models/query_batch_response.rb +13 -3
  253. data/lib/velopayments/models/quote_fx_summary.rb +13 -3
  254. data/lib/velopayments/models/quote_response.rb +13 -3
  255. data/lib/velopayments/models/region.rb +215 -0
  256. data/lib/velopayments/models/register_mfa_request.rb +211 -0
  257. data/lib/velopayments/models/register_mfa_response.rb +217 -0
  258. data/lib/velopayments/models/register_sms_request.rb +233 -0
  259. data/lib/velopayments/models/rejected_payment.rb +13 -3
  260. data/lib/velopayments/models/resend_token_request.rb +280 -0
  261. data/lib/velopayments/models/reset_password_request.rb +212 -0
  262. data/lib/velopayments/models/role.rb +212 -0
  263. data/lib/velopayments/models/self_mfa_type_unregister_request.rb +246 -0
  264. data/lib/velopayments/models/self_update_password_request.rb +283 -0
  265. data/lib/velopayments/models/set_notifications_request.rb +13 -3
  266. data/lib/velopayments/models/source_account.rb +13 -3
  267. data/lib/velopayments/models/source_account_response.rb +15 -3
  268. data/lib/velopayments/models/source_account_response_v2.rb +15 -3
  269. data/lib/velopayments/models/source_account_summary_v3.rb +13 -3
  270. data/lib/velopayments/models/source_account_summary_v4.rb +13 -3
  271. data/lib/velopayments/models/supported_countries_response.rb +13 -3
  272. data/lib/velopayments/models/supported_countries_response2.rb +208 -0
  273. data/lib/velopayments/models/supported_country.rb +13 -3
  274. data/lib/velopayments/models/supported_country2.rb +260 -0
  275. data/lib/velopayments/models/supported_currency.rb +13 -3
  276. data/lib/velopayments/models/supported_currency_response.rb +13 -3
  277. data/lib/velopayments/models/token_type.rb +38 -0
  278. data/lib/velopayments/models/{funding_delta.rb → transfer_request.rb} +68 -57
  279. data/lib/velopayments/models/unregister_mfa_request.rb +280 -0
  280. data/lib/velopayments/models/update_remote_id_request.rb +13 -3
  281. data/lib/velopayments/models/user_info.rb +225 -0
  282. data/lib/velopayments/models/user_response.rb +495 -0
  283. data/lib/velopayments/models/user_response2.rb +505 -0
  284. data/lib/velopayments/models/user_response2_roles.rb +206 -0
  285. data/lib/velopayments/models/user_status.rb +37 -0
  286. data/lib/velopayments/models/user_type.rb +37 -0
  287. data/lib/velopayments/models/user_type2.rb +37 -0
  288. data/lib/velopayments/models/validate_mfa_request.rb +240 -0
  289. data/lib/velopayments/models/validate_otp_request.rb +240 -0
  290. data/lib/velopayments/models/validate_password_response.rb +262 -0
  291. data/lib/velopayments/models/watchlist_status.rb +2 -2
  292. data/lib/velopayments/version.rb +3 -3
  293. data/lib/velopayments.rb +60 -10
  294. data/oa3-config.json +1 -1
  295. data/spec/api/countries_api_spec.rb +14 -3
  296. data/spec/api/currencies_api_spec.rb +2 -2
  297. data/spec/api/{auth_api_spec.rb → default_api_spec.rb} +14 -14
  298. data/spec/api/funding_manager_api_spec.rb +54 -11
  299. data/spec/api/get_payout_api_spec.rb +4 -4
  300. data/spec/api/instruct_payout_api_spec.rb +4 -4
  301. data/spec/api/login_api_spec.rb +82 -0
  302. data/spec/api/payee_invitation_api_spec.rb +2 -2
  303. data/spec/api/payees_api_spec.rb +2 -2
  304. data/spec/api/payment_audit_service_api_spec.rb +27 -12
  305. data/spec/api/payors_api_spec.rb +29 -2
  306. data/spec/api/payors_private_api_spec.rb +47 -0
  307. data/spec/api/payout_history_api_spec.rb +4 -4
  308. data/spec/api/quote_payout_api_spec.rb +2 -2
  309. data/spec/api/submit_payout_api_spec.rb +2 -2
  310. data/spec/api/tokens_api_spec.rb +177 -0
  311. data/spec/api/users_api_spec.rb +222 -0
  312. data/spec/api/withdraw_payout_api_spec.rb +4 -4
  313. data/spec/api_client_spec.rb +2 -2
  314. data/spec/configuration_spec.rb +2 -2
  315. data/spec/models/accepted_payment_spec.rb +71 -0
  316. data/spec/models/access_token_response_spec.rb +77 -0
  317. data/spec/models/access_token_validation_request_spec.rb +41 -0
  318. data/spec/models/auth_response_spec.rb +2 -2
  319. data/spec/models/auto_top_up_config_spec.rb +2 -2
  320. data/spec/models/challenge_spec.rb +2 -2
  321. data/spec/models/{list_payments_response_summary_spec.rb → check_token_response_spec.rb} +13 -13
  322. data/spec/models/company_response_spec.rb +2 -2
  323. data/spec/models/company_v1_spec.rb +2 -2
  324. data/spec/models/create_funding_account_request_spec.rb +59 -0
  325. data/spec/models/create_individual2_spec.rb +2 -2
  326. data/spec/models/create_individual_spec.rb +2 -2
  327. data/spec/models/create_payee2_spec.rb +2 -2
  328. data/spec/models/create_payee_address2_spec.rb +2 -2
  329. data/spec/models/create_payee_address_spec.rb +2 -2
  330. data/spec/models/create_payee_spec.rb +2 -2
  331. data/spec/models/create_payees_csv_request2_spec.rb +2 -2
  332. data/spec/models/create_payees_csv_request_spec.rb +2 -2
  333. data/spec/models/create_payees_csv_response2_spec.rb +2 -2
  334. data/spec/models/create_payees_csv_response_spec.rb +2 -2
  335. data/spec/models/create_payees_request2_spec.rb +2 -2
  336. data/spec/models/create_payees_request_spec.rb +2 -2
  337. data/spec/models/create_payment_channel2_spec.rb +2 -2
  338. data/spec/models/create_payment_channel_spec.rb +2 -2
  339. data/spec/models/create_payor_link_request_spec.rb +57 -0
  340. data/spec/models/create_payout_request_spec.rb +2 -2
  341. data/spec/models/currency_type_spec.rb +41 -0
  342. data/spec/models/email_update_request_spec.rb +47 -0
  343. data/spec/models/error_response_spec.rb +2 -2
  344. data/spec/models/error_spec.rb +2 -2
  345. data/spec/models/failed_submission_spec.rb +2 -2
  346. data/spec/models/funding_account_response_spec.rb +71 -0
  347. data/spec/models/funding_audit_spec.rb +6 -2
  348. data/spec/models/funding_event_spec.rb +2 -2
  349. data/spec/models/funding_event_type_spec.rb +2 -2
  350. data/spec/models/{funding_delta_spec.rb → funding_payor_status_audit_response_spec.rb} +12 -12
  351. data/spec/models/funding_request_v1_spec.rb +2 -2
  352. data/spec/models/funding_request_v2_spec.rb +2 -2
  353. data/spec/models/fx_summary_v3_spec.rb +2 -2
  354. data/spec/models/fx_summary_v4_spec.rb +2 -2
  355. data/spec/models/generate_otp_request_spec.rb +41 -0
  356. data/spec/models/get_fundings_response_all_of_spec.rb +2 -2
  357. data/spec/models/get_fundings_response_spec.rb +2 -2
  358. data/spec/models/get_payments_for_payout_response_v3_page_spec.rb +2 -2
  359. data/spec/models/get_payments_for_payout_response_v3_spec.rb +2 -2
  360. data/spec/models/get_payments_for_payout_response_v3_summary_spec.rb +8 -2
  361. data/spec/models/get_payments_for_payout_response_v4_spec.rb +2 -2
  362. data/spec/models/get_payments_for_payout_response_v4_summary_spec.rb +22 -16
  363. data/spec/models/get_payout_statistics_spec.rb +2 -2
  364. data/spec/models/get_payouts_response_v3_links_spec.rb +2 -2
  365. data/spec/models/get_payouts_response_v3_page_spec.rb +2 -2
  366. data/spec/models/get_payouts_response_v3_spec.rb +2 -8
  367. data/spec/models/get_payouts_response_v4_spec.rb +2 -8
  368. data/spec/models/individual_response_spec.rb +2 -2
  369. data/spec/models/individual_v1_name_spec.rb +2 -2
  370. data/spec/models/individual_v1_spec.rb +2 -2
  371. data/spec/models/invitation_status_response_spec.rb +2 -2
  372. data/spec/models/invitation_status_spec.rb +2 -2
  373. data/spec/models/invite_payee_request_spec.rb +2 -2
  374. data/spec/models/invite_user_request_spec.rb +99 -0
  375. data/spec/models/kyc_state_spec.rb +35 -0
  376. data/spec/models/language_spec.rb +2 -2
  377. data/spec/models/{funding_delta_response_links_spec.rb → link_for_response_spec.rb} +8 -8
  378. data/spec/models/list_funding_accounts_response_spec.rb +53 -0
  379. data/spec/models/list_payments_response_page_spec.rb +2 -2
  380. data/spec/models/list_payments_response_spec.rb +2 -8
  381. data/spec/models/list_payments_response_v4_spec.rb +53 -0
  382. data/spec/models/list_source_account_response_links_spec.rb +2 -2
  383. data/spec/models/list_source_account_response_page_spec.rb +2 -2
  384. data/spec/models/list_source_account_response_spec.rb +2 -2
  385. data/spec/models/list_source_account_response_v2_spec.rb +2 -2
  386. data/spec/models/marketing_opt_in_spec.rb +2 -2
  387. data/spec/models/mfa_details_spec.rb +47 -0
  388. data/spec/models/mfa_status_spec.rb +35 -0
  389. data/spec/models/mfa_type_spec.rb +35 -0
  390. data/spec/models/notifications_spec.rb +2 -2
  391. data/spec/models/ofac_status_spec.rb +2 -2
  392. data/spec/models/onboarded_status_spec.rb +2 -2
  393. data/spec/models/otp_type_spec.rb +35 -0
  394. data/spec/models/{list_source_account_response_v2_page_spec.rb → page_for_response_spec.rb} +8 -8
  395. data/spec/models/page_resource_funding_payor_status_audit_response_funding_payor_status_audit_response_spec.rb +53 -0
  396. data/spec/models/paged_payee_invitation_status_response_spec.rb +2 -2
  397. data/spec/models/paged_payee_response2_spec.rb +2 -2
  398. data/spec/models/paged_payee_response2_summary_spec.rb +2 -2
  399. data/spec/models/paged_payee_response_links_spec.rb +2 -2
  400. data/spec/models/paged_payee_response_page_spec.rb +2 -2
  401. data/spec/models/paged_payee_response_spec.rb +2 -2
  402. data/spec/models/paged_payee_response_summary_spec.rb +2 -2
  403. data/spec/models/paged_response_page_spec.rb +2 -2
  404. data/spec/models/paged_response_spec.rb +2 -2
  405. data/spec/models/paged_user_response_links_spec.rb +47 -0
  406. data/spec/models/{get_payouts_response_v3_summary_spec.rb → paged_user_response_page_spec.rb} +13 -13
  407. data/spec/models/{funding_delta_response_spec.rb → paged_user_response_spec.rb} +8 -8
  408. data/spec/models/password_request_spec.rb +41 -0
  409. data/spec/models/payee_address_spec.rb +2 -2
  410. data/spec/models/payee_delta_response_links_spec.rb +2 -2
  411. data/spec/models/payee_delta_response_page_spec.rb +2 -2
  412. data/spec/models/payee_delta_response_spec.rb +2 -2
  413. data/spec/models/payee_delta_spec.rb +2 -2
  414. data/spec/models/payee_invitation_status_response_spec.rb +2 -2
  415. data/spec/models/payee_invitation_status_spec.rb +2 -2
  416. data/spec/models/payee_payment_channel_spec.rb +2 -2
  417. data/spec/models/payee_payor_ref2_spec.rb +2 -2
  418. data/spec/models/payee_payor_ref_spec.rb +2 -2
  419. data/spec/models/payee_response2_spec.rb +2 -2
  420. data/spec/models/payee_response_spec.rb +2 -2
  421. data/spec/models/payee_spec.rb +2 -2
  422. data/spec/models/payee_type_spec.rb +2 -2
  423. data/spec/models/payment_audit_currency_v3_spec.rb +2 -2
  424. data/spec/models/payment_audit_currency_v4_spec.rb +2 -2
  425. data/spec/models/payment_channel_country_spec.rb +2 -2
  426. data/spec/models/payment_channel_rule_spec.rb +2 -2
  427. data/spec/models/payment_channel_rules_response_spec.rb +2 -2
  428. data/spec/models/payment_delta_response_spec.rb +2 -2
  429. data/spec/models/payment_delta_spec.rb +2 -2
  430. data/spec/models/payment_event_response_v3_spec.rb +2 -2
  431. data/spec/models/payment_event_response_v4_spec.rb +2 -2
  432. data/spec/models/payment_instruction_spec.rb +2 -2
  433. data/spec/models/payment_rails_spec.rb +35 -0
  434. data/spec/models/payment_response_v3_spec.rb +20 -2
  435. data/spec/models/payment_response_v4_payout_spec.rb +8 -2
  436. data/spec/models/payment_response_v4_spec.rb +20 -2
  437. data/spec/models/payment_status_spec.rb +2 -2
  438. data/spec/models/payor_address_spec.rb +2 -2
  439. data/spec/models/payor_address_v2_spec.rb +2 -2
  440. data/spec/models/payor_aml_transaction_v3_spec.rb +203 -0
  441. data/spec/models/payor_aml_transaction_v4_spec.rb +203 -0
  442. data/spec/models/payor_branding_response_spec.rb +2 -2
  443. data/spec/models/payor_create_api_key_request_spec.rb +2 -2
  444. data/spec/models/payor_create_api_key_response_spec.rb +2 -2
  445. data/spec/models/payor_create_application_request_spec.rb +2 -2
  446. data/spec/models/payor_email_opt_out_request_spec.rb +2 -2
  447. data/spec/models/payor_links_response_links_spec.rb +2 -2
  448. data/spec/models/payor_links_response_payors_spec.rb +2 -2
  449. data/spec/models/payor_links_response_spec.rb +2 -2
  450. data/spec/models/payor_logo_request_spec.rb +2 -2
  451. data/spec/models/payor_v1_spec.rb +2 -6
  452. data/spec/models/payor_v2_spec.rb +14 -6
  453. data/spec/models/payout_payor_v4_spec.rb +2 -2
  454. data/spec/models/payout_principal_v4_spec.rb +2 -2
  455. data/spec/models/payout_status_v3_spec.rb +2 -2
  456. data/spec/models/payout_status_v4_spec.rb +2 -2
  457. data/spec/models/payout_summary_audit_v3_spec.rb +2 -8
  458. data/spec/models/payout_summary_audit_v4_spec.rb +8 -2
  459. data/spec/models/payout_summary_response_spec.rb +8 -2
  460. data/spec/models/payout_type_v4_spec.rb +2 -2
  461. data/spec/models/query_batch_response_spec.rb +2 -2
  462. data/spec/models/quote_fx_summary_spec.rb +2 -2
  463. data/spec/models/quote_response_spec.rb +2 -2
  464. data/spec/models/region_spec.rb +47 -0
  465. data/spec/models/register_mfa_request_spec.rb +41 -0
  466. data/spec/models/register_mfa_response_spec.rb +47 -0
  467. data/spec/models/register_sms_request_spec.rb +41 -0
  468. data/spec/models/rejected_payment_spec.rb +2 -2
  469. data/spec/models/resend_token_request_spec.rb +51 -0
  470. data/spec/models/reset_password_request_spec.rb +41 -0
  471. data/spec/models/role_spec.rb +41 -0
  472. data/spec/models/self_mfa_type_unregister_request_spec.rb +45 -0
  473. data/spec/models/self_update_password_request_spec.rb +47 -0
  474. data/spec/models/set_notifications_request_spec.rb +2 -2
  475. data/spec/models/source_account_response_spec.rb +2 -2
  476. data/spec/models/source_account_response_v2_spec.rb +2 -2
  477. data/spec/models/source_account_spec.rb +2 -2
  478. data/spec/models/source_account_summary_v3_spec.rb +2 -2
  479. data/spec/models/source_account_summary_v4_spec.rb +2 -2
  480. data/spec/models/supported_countries_response2_spec.rb +41 -0
  481. data/spec/models/supported_countries_response_spec.rb +2 -2
  482. data/spec/models/supported_country2_spec.rb +61 -0
  483. data/spec/models/supported_country_spec.rb +2 -2
  484. data/spec/models/supported_currency_response_spec.rb +2 -2
  485. data/spec/models/supported_currency_spec.rb +2 -2
  486. data/spec/models/token_type_spec.rb +35 -0
  487. data/spec/models/transfer_request_spec.rb +53 -0
  488. data/spec/models/unregister_mfa_request_spec.rb +51 -0
  489. data/spec/models/update_remote_id_request_spec.rb +2 -2
  490. data/spec/models/user_info_spec.rb +53 -0
  491. data/spec/models/user_response2_roles_spec.rb +41 -0
  492. data/spec/models/user_response2_spec.rb +137 -0
  493. data/spec/models/user_response_spec.rb +131 -0
  494. data/spec/models/user_status_spec.rb +35 -0
  495. data/spec/models/user_type2_spec.rb +35 -0
  496. data/spec/models/user_type_spec.rb +35 -0
  497. data/spec/models/validate_mfa_request_spec.rb +41 -0
  498. data/spec/models/validate_otp_request_spec.rb +41 -0
  499. data/spec/models/validate_password_response_spec.rb +59 -0
  500. data/spec/models/watchlist_status_spec.rb +2 -2
  501. data/spec/spec_helper.rb +2 -2
  502. data/velopayments.gemspec +2 -2
  503. metadata +358 -159
  504. data/Jenkinsfile +0 -41
  505. data/docs/AuthApi.md +0 -64
  506. data/docs/FundingDelta.md +0 -23
  507. data/docs/FundingDeltaResponse.md +0 -21
  508. data/docs/FundingDeltaResponseLinks.md +0 -19
  509. data/docs/GetPayoutsResponseV3Summary.md +0 -25
  510. data/docs/ListPaymentsResponseSummary.md +0 -25
  511. data/docs/PayorApplicationsApi.md +0 -119
  512. data/lib/velopayments/api/payor_applications_api.rb +0 -166
  513. data/spec/api/payor_applications_api_spec.rb +0 -62
@@ -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.17.8
6
+ The version of the OpenAPI document: 2.18.31
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 4.2.3-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -34,6 +34,12 @@ module VeloPayments
34
34
  }
35
35
  end
36
36
 
37
+ # List of attributes with nullable: true
38
+ def self.openapi_nullable
39
+ Set.new([
40
+ ])
41
+ end
42
+
37
43
  # Initializes the object
38
44
  # @param [Hash] attributes Model attributes in the form of hash
39
45
  def initialize(attributes = {})
@@ -180,7 +186,11 @@ module VeloPayments
180
186
  hash = {}
181
187
  self.class.attribute_map.each_pair do |attr, param|
182
188
  value = self.send(attr)
183
- next if value.nil?
189
+ if value.nil?
190
+ is_nullable = self.class.openapi_nullable.include?(attr)
191
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
192
+ end
193
+
184
194
  hash[param] = _to_hash(value)
185
195
  end
186
196
  hash
@@ -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.17.8
6
+ The version of the OpenAPI document: 2.18.31
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 4.2.3-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -46,6 +46,12 @@ module VeloPayments
46
46
  }
47
47
  end
48
48
 
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ ])
53
+ end
54
+
49
55
  # Initializes the object
50
56
  # @param [Hash] attributes Model attributes in the form of hash
51
57
  def initialize(attributes = {})
@@ -205,7 +211,11 @@ module VeloPayments
205
211
  hash = {}
206
212
  self.class.attribute_map.each_pair do |attr, param|
207
213
  value = self.send(attr)
208
- next if value.nil?
214
+ if value.nil?
215
+ is_nullable = self.class.openapi_nullable.include?(attr)
216
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
217
+ end
218
+
209
219
  hash[param] = _to_hash(value)
210
220
  end
211
221
  hash
@@ -3,18 +3,18 @@
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.17.8
6
+ The version of the OpenAPI document: 2.18.31
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 4.2.3-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
14
 
15
15
  module VeloPayments
16
- # List Funding changes response object
17
- class FundingDeltaResponse
16
+ # List Users Response Object
17
+ class PagedUserResponse
18
18
  attr_accessor :page
19
19
 
20
20
  attr_accessor :links
@@ -33,23 +33,29 @@ module VeloPayments
33
33
  # Attribute type mapping.
34
34
  def self.openapi_types
35
35
  {
36
- :'page' => :'PayeeDeltaResponsePage',
37
- :'links' => :'Array<FundingDeltaResponseLinks>',
38
- :'content' => :'Array<FundingDelta>'
36
+ :'page' => :'PagedUserResponsePage',
37
+ :'links' => :'Array<PagedUserResponseLinks>',
38
+ :'content' => :'Array<UserResponse>'
39
39
  }
40
40
  end
41
41
 
42
+ # List of attributes with nullable: true
43
+ def self.openapi_nullable
44
+ Set.new([
45
+ ])
46
+ end
47
+
42
48
  # Initializes the object
43
49
  # @param [Hash] attributes Model attributes in the form of hash
44
50
  def initialize(attributes = {})
45
51
  if (!attributes.is_a?(Hash))
46
- fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::FundingDeltaResponse` initialize method"
52
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PagedUserResponse` initialize method"
47
53
  end
48
54
 
49
55
  # check to see if the attribute exists and convert string to symbol for hash key
50
56
  attributes = attributes.each_with_object({}) { |(k, v), h|
51
57
  if (!self.class.attribute_map.key?(k.to_sym))
52
- fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::FundingDeltaResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
58
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PagedUserResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
53
59
  end
54
60
  h[k.to_sym] = v
55
61
  }
@@ -192,7 +198,11 @@ module VeloPayments
192
198
  hash = {}
193
199
  self.class.attribute_map.each_pair do |attr, param|
194
200
  value = self.send(attr)
195
- next if value.nil?
201
+ if value.nil?
202
+ is_nullable = self.class.openapi_nullable.include?(attr)
203
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
204
+ end
205
+
196
206
  hash[param] = _to_hash(value)
197
207
  end
198
208
  hash
@@ -0,0 +1,215 @@
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.18.31
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 PagedUserResponseLinks
17
+ attr_accessor :rel
18
+
19
+ attr_accessor :href
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'rel' => :'rel',
25
+ :'href' => :'href'
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.openapi_types
31
+ {
32
+ :'rel' => :'String',
33
+ :'href' => :'String'
34
+ }
35
+ end
36
+
37
+ # List of attributes with nullable: true
38
+ def self.openapi_nullable
39
+ Set.new([
40
+ ])
41
+ end
42
+
43
+ # Initializes the object
44
+ # @param [Hash] attributes Model attributes in the form of hash
45
+ def initialize(attributes = {})
46
+ if (!attributes.is_a?(Hash))
47
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PagedUserResponseLinks` initialize method"
48
+ end
49
+
50
+ # check to see if the attribute exists and convert string to symbol for hash key
51
+ attributes = attributes.each_with_object({}) { |(k, v), h|
52
+ if (!self.class.attribute_map.key?(k.to_sym))
53
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PagedUserResponseLinks`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
54
+ end
55
+ h[k.to_sym] = v
56
+ }
57
+
58
+ if attributes.key?(:'rel')
59
+ self.rel = attributes[:'rel']
60
+ end
61
+
62
+ if attributes.key?(:'href')
63
+ self.href = attributes[:'href']
64
+ end
65
+ end
66
+
67
+ # Show invalid properties with the reasons. Usually used together with valid?
68
+ # @return Array for valid properties with the reasons
69
+ def list_invalid_properties
70
+ invalid_properties = Array.new
71
+ invalid_properties
72
+ end
73
+
74
+ # Check to see if the all the properties in the model are valid
75
+ # @return true if the model is valid
76
+ def valid?
77
+ true
78
+ end
79
+
80
+ # Checks equality by comparing each attribute.
81
+ # @param [Object] Object to be compared
82
+ def ==(o)
83
+ return true if self.equal?(o)
84
+ self.class == o.class &&
85
+ rel == o.rel &&
86
+ href == o.href
87
+ end
88
+
89
+ # @see the `==` method
90
+ # @param [Object] Object to be compared
91
+ def eql?(o)
92
+ self == o
93
+ end
94
+
95
+ # Calculates hash code according to all attributes.
96
+ # @return [Integer] Hash code
97
+ def hash
98
+ [rel, href].hash
99
+ end
100
+
101
+ # Builds the object from hash
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ # @return [Object] Returns the model itself
104
+ def self.build_from_hash(attributes)
105
+ new.build_from_hash(attributes)
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def build_from_hash(attributes)
112
+ return nil unless attributes.is_a?(Hash)
113
+ self.class.openapi_types.each_pair do |key, type|
114
+ if type =~ /\AArray<(.*)>/i
115
+ # check to ensure the input is an array given that the attribute
116
+ # is documented as an array but the input is not
117
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
118
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
119
+ end
120
+ elsif !attributes[self.class.attribute_map[key]].nil?
121
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
122
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
123
+ end
124
+
125
+ self
126
+ end
127
+
128
+ # Deserializes the data based on type
129
+ # @param string type Data type
130
+ # @param string value Value to be deserialized
131
+ # @return [Object] Deserialized data
132
+ def _deserialize(type, value)
133
+ case type.to_sym
134
+ when :DateTime
135
+ DateTime.parse(value)
136
+ when :Date
137
+ Date.parse(value)
138
+ when :String
139
+ value.to_s
140
+ when :Integer
141
+ value.to_i
142
+ when :Float
143
+ value.to_f
144
+ when :Boolean
145
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
146
+ true
147
+ else
148
+ false
149
+ end
150
+ when :Object
151
+ # generic object (usually a Hash), return directly
152
+ value
153
+ when /\AArray<(?<inner_type>.+)>\z/
154
+ inner_type = Regexp.last_match[:inner_type]
155
+ value.map { |v| _deserialize(inner_type, v) }
156
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
157
+ k_type = Regexp.last_match[:k_type]
158
+ v_type = Regexp.last_match[:v_type]
159
+ {}.tap do |hash|
160
+ value.each do |k, v|
161
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
162
+ end
163
+ end
164
+ else # model
165
+ VeloPayments.const_get(type).build_from_hash(value)
166
+ end
167
+ end
168
+
169
+ # Returns the string representation of the object
170
+ # @return [String] String presentation of the object
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # to_body is an alias to to_hash (backward compatibility)
176
+ # @return [Hash] Returns the object in the form of hash
177
+ def to_body
178
+ to_hash
179
+ end
180
+
181
+ # Returns the object in the form of hash
182
+ # @return [Hash] Returns the object in the form of hash
183
+ def to_hash
184
+ hash = {}
185
+ self.class.attribute_map.each_pair do |attr, param|
186
+ value = self.send(attr)
187
+ if value.nil?
188
+ is_nullable = self.class.openapi_nullable.include?(attr)
189
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
190
+ end
191
+
192
+ hash[param] = _to_hash(value)
193
+ end
194
+ hash
195
+ end
196
+
197
+ # Outputs non-array value in the form of hash
198
+ # For object, use to_hash. Otherwise, just return the value
199
+ # @param [Object] value Any valid value
200
+ # @return [Hash] Returns the value in the form of hash
201
+ def _to_hash(value)
202
+ if value.is_a?(Array)
203
+ value.compact.map { |v| _to_hash(v) }
204
+ elsif value.is_a?(Hash)
205
+ {}.tap do |hash|
206
+ value.each { |k, v| hash[k] = _to_hash(v) }
207
+ end
208
+ elsif value.respond_to? :to_hash
209
+ value.to_hash
210
+ else
211
+ value
212
+ end
213
+ end
214
+ end
215
+ end
@@ -0,0 +1,242 @@
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.18.31
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 PagedUserResponsePage
17
+ attr_accessor :number_of_elements
18
+
19
+ attr_accessor :total_elements
20
+
21
+ attr_accessor :total_pages
22
+
23
+ attr_accessor :page
24
+
25
+ attr_accessor :page_size
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ def self.attribute_map
29
+ {
30
+ :'number_of_elements' => :'numberOfElements',
31
+ :'total_elements' => :'totalElements',
32
+ :'total_pages' => :'totalPages',
33
+ :'page' => :'page',
34
+ :'page_size' => :'pageSize'
35
+ }
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'number_of_elements' => :'Integer',
42
+ :'total_elements' => :'Integer',
43
+ :'total_pages' => :'Integer',
44
+ :'page' => :'Integer',
45
+ :'page_size' => :'Integer'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ ])
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ if (!attributes.is_a?(Hash))
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::PagedUserResponsePage` initialize method"
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!self.class.attribute_map.key?(k.to_sym))
65
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::PagedUserResponsePage`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
66
+ end
67
+ h[k.to_sym] = v
68
+ }
69
+
70
+ if attributes.key?(:'number_of_elements')
71
+ self.number_of_elements = attributes[:'number_of_elements']
72
+ end
73
+
74
+ if attributes.key?(:'total_elements')
75
+ self.total_elements = attributes[:'total_elements']
76
+ end
77
+
78
+ if attributes.key?(:'total_pages')
79
+ self.total_pages = attributes[:'total_pages']
80
+ end
81
+
82
+ if attributes.key?(:'page')
83
+ self.page = attributes[:'page']
84
+ end
85
+
86
+ if attributes.key?(:'page_size')
87
+ self.page_size = attributes[:'page_size']
88
+ end
89
+ end
90
+
91
+ # Show invalid properties with the reasons. Usually used together with valid?
92
+ # @return Array for valid properties with the reasons
93
+ def list_invalid_properties
94
+ invalid_properties = Array.new
95
+ invalid_properties
96
+ end
97
+
98
+ # Check to see if the all the properties in the model are valid
99
+ # @return true if the model is valid
100
+ def valid?
101
+ true
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(o)
107
+ return true if self.equal?(o)
108
+ self.class == o.class &&
109
+ number_of_elements == o.number_of_elements &&
110
+ total_elements == o.total_elements &&
111
+ total_pages == o.total_pages &&
112
+ page == o.page &&
113
+ page_size == o.page_size
114
+ end
115
+
116
+ # @see the `==` method
117
+ # @param [Object] Object to be compared
118
+ def eql?(o)
119
+ self == o
120
+ end
121
+
122
+ # Calculates hash code according to all attributes.
123
+ # @return [Integer] Hash code
124
+ def hash
125
+ [number_of_elements, total_elements, total_pages, page, page_size].hash
126
+ end
127
+
128
+ # Builds the object from hash
129
+ # @param [Hash] attributes Model attributes in the form of hash
130
+ # @return [Object] Returns the model itself
131
+ def self.build_from_hash(attributes)
132
+ new.build_from_hash(attributes)
133
+ end
134
+
135
+ # Builds the object from hash
136
+ # @param [Hash] attributes Model attributes in the form of hash
137
+ # @return [Object] Returns the model itself
138
+ def build_from_hash(attributes)
139
+ return nil unless attributes.is_a?(Hash)
140
+ self.class.openapi_types.each_pair do |key, type|
141
+ if type =~ /\AArray<(.*)>/i
142
+ # check to ensure the input is an array given that the attribute
143
+ # is documented as an array but the input is not
144
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
145
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
146
+ end
147
+ elsif !attributes[self.class.attribute_map[key]].nil?
148
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
149
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
150
+ end
151
+
152
+ self
153
+ end
154
+
155
+ # Deserializes the data based on type
156
+ # @param string type Data type
157
+ # @param string value Value to be deserialized
158
+ # @return [Object] Deserialized data
159
+ def _deserialize(type, value)
160
+ case type.to_sym
161
+ when :DateTime
162
+ DateTime.parse(value)
163
+ when :Date
164
+ Date.parse(value)
165
+ when :String
166
+ value.to_s
167
+ when :Integer
168
+ value.to_i
169
+ when :Float
170
+ value.to_f
171
+ when :Boolean
172
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
173
+ true
174
+ else
175
+ false
176
+ end
177
+ when :Object
178
+ # generic object (usually a Hash), return directly
179
+ value
180
+ when /\AArray<(?<inner_type>.+)>\z/
181
+ inner_type = Regexp.last_match[:inner_type]
182
+ value.map { |v| _deserialize(inner_type, v) }
183
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
184
+ k_type = Regexp.last_match[:k_type]
185
+ v_type = Regexp.last_match[:v_type]
186
+ {}.tap do |hash|
187
+ value.each do |k, v|
188
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
189
+ end
190
+ end
191
+ else # model
192
+ VeloPayments.const_get(type).build_from_hash(value)
193
+ end
194
+ end
195
+
196
+ # Returns the string representation of the object
197
+ # @return [String] String presentation of the object
198
+ def to_s
199
+ to_hash.to_s
200
+ end
201
+
202
+ # to_body is an alias to to_hash (backward compatibility)
203
+ # @return [Hash] Returns the object in the form of hash
204
+ def to_body
205
+ to_hash
206
+ end
207
+
208
+ # Returns the object in the form of hash
209
+ # @return [Hash] Returns the object in the form of hash
210
+ def to_hash
211
+ hash = {}
212
+ self.class.attribute_map.each_pair do |attr, param|
213
+ value = self.send(attr)
214
+ if value.nil?
215
+ is_nullable = self.class.openapi_nullable.include?(attr)
216
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
217
+ end
218
+
219
+ hash[param] = _to_hash(value)
220
+ end
221
+ hash
222
+ end
223
+
224
+ # Outputs non-array value in the form of hash
225
+ # For object, use to_hash. Otherwise, just return the value
226
+ # @param [Object] value Any valid value
227
+ # @return [Hash] Returns the value in the form of hash
228
+ def _to_hash(value)
229
+ if value.is_a?(Array)
230
+ value.compact.map { |v| _to_hash(v) }
231
+ elsif value.is_a?(Hash)
232
+ {}.tap do |hash|
233
+ value.each { |k, v| hash[k] = _to_hash(v) }
234
+ end
235
+ elsif value.respond_to? :to_hash
236
+ value.to_hash
237
+ else
238
+ value
239
+ end
240
+ end
241
+ end
242
+ end