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
@@ -0,0 +1,505 @@
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 UserResponse2
17
+ # The id of the user
18
+ attr_accessor :id
19
+
20
+ # The status of the user when the user has been invited but not yet enrolled they will have a PENDING status
21
+ attr_accessor :status
22
+
23
+ # the email address of the user
24
+ attr_accessor :email
25
+
26
+ # The phone number of a device that the user can receive sms messages on
27
+ attr_accessor :sms_number
28
+
29
+ # The main contact number for the user
30
+ attr_accessor :primary_contact_number
31
+
32
+ # The secondary contact number for the user
33
+ attr_accessor :secondary_contact_number
34
+
35
+ attr_accessor :first_name
36
+
37
+ attr_accessor :last_name
38
+
39
+ # The payorId or payeeId or null if the user is not a payor or payee user
40
+ attr_accessor :entity_id
41
+
42
+ # The role(s) for the user
43
+ attr_accessor :roles
44
+
45
+ # The type of the MFA device
46
+ attr_accessor :mfa_type
47
+
48
+ # Will be true if the user has logged in successfully using the MFA Device
49
+ attr_accessor :mfa_verified
50
+
51
+ # The status of the MFA device
52
+ attr_accessor :mfa_status
53
+
54
+ # If true the user is currently locked out and unable to log in
55
+ attr_accessor :locked_out
56
+
57
+ # A timestamp showing when the user was locked out If null then the user is not currently locked out
58
+ attr_accessor :locked_out_timestamp
59
+
60
+ class EnumAttributeValidator
61
+ attr_reader :datatype
62
+ attr_reader :allowable_values
63
+
64
+ def initialize(datatype, allowable_values)
65
+ @allowable_values = allowable_values.map do |value|
66
+ case datatype.to_s
67
+ when /Integer/i
68
+ value.to_i
69
+ when /Float/i
70
+ value.to_f
71
+ else
72
+ value
73
+ end
74
+ end
75
+ end
76
+
77
+ def valid?(value)
78
+ !value || allowable_values.include?(value)
79
+ end
80
+ end
81
+
82
+ # Attribute mapping from ruby-style variable name to JSON key.
83
+ def self.attribute_map
84
+ {
85
+ :'id' => :'id',
86
+ :'status' => :'status',
87
+ :'email' => :'email',
88
+ :'sms_number' => :'smsNumber',
89
+ :'primary_contact_number' => :'primaryContactNumber',
90
+ :'secondary_contact_number' => :'secondaryContactNumber',
91
+ :'first_name' => :'firstName',
92
+ :'last_name' => :'lastName',
93
+ :'entity_id' => :'entityId',
94
+ :'roles' => :'roles',
95
+ :'mfa_type' => :'mfaType',
96
+ :'mfa_verified' => :'mfaVerified',
97
+ :'mfa_status' => :'mfaStatus',
98
+ :'locked_out' => :'lockedOut',
99
+ :'locked_out_timestamp' => :'lockedOutTimestamp'
100
+ }
101
+ end
102
+
103
+ # Attribute type mapping.
104
+ def self.openapi_types
105
+ {
106
+ :'id' => :'String',
107
+ :'status' => :'String',
108
+ :'email' => :'String',
109
+ :'sms_number' => :'String',
110
+ :'primary_contact_number' => :'String',
111
+ :'secondary_contact_number' => :'String',
112
+ :'first_name' => :'String',
113
+ :'last_name' => :'String',
114
+ :'entity_id' => :'String',
115
+ :'roles' => :'Array<UserResponse2Roles>',
116
+ :'mfa_type' => :'String',
117
+ :'mfa_verified' => :'Boolean',
118
+ :'mfa_status' => :'String',
119
+ :'locked_out' => :'Boolean',
120
+ :'locked_out_timestamp' => :'DateTime'
121
+ }
122
+ end
123
+
124
+ # List of attributes with nullable: true
125
+ def self.openapi_nullable
126
+ Set.new([
127
+ :'locked_out_timestamp'
128
+ ])
129
+ end
130
+
131
+ # Initializes the object
132
+ # @param [Hash] attributes Model attributes in the form of hash
133
+ def initialize(attributes = {})
134
+ if (!attributes.is_a?(Hash))
135
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeloPayments::UserResponse2` initialize method"
136
+ end
137
+
138
+ # check to see if the attribute exists and convert string to symbol for hash key
139
+ attributes = attributes.each_with_object({}) { |(k, v), h|
140
+ if (!self.class.attribute_map.key?(k.to_sym))
141
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeloPayments::UserResponse2`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
142
+ end
143
+ h[k.to_sym] = v
144
+ }
145
+
146
+ if attributes.key?(:'id')
147
+ self.id = attributes[:'id']
148
+ end
149
+
150
+ if attributes.key?(:'status')
151
+ self.status = attributes[:'status']
152
+ end
153
+
154
+ if attributes.key?(:'email')
155
+ self.email = attributes[:'email']
156
+ end
157
+
158
+ if attributes.key?(:'sms_number')
159
+ self.sms_number = attributes[:'sms_number']
160
+ end
161
+
162
+ if attributes.key?(:'primary_contact_number')
163
+ self.primary_contact_number = attributes[:'primary_contact_number']
164
+ end
165
+
166
+ if attributes.key?(:'secondary_contact_number')
167
+ self.secondary_contact_number = attributes[:'secondary_contact_number']
168
+ end
169
+
170
+ if attributes.key?(:'first_name')
171
+ self.first_name = attributes[:'first_name']
172
+ end
173
+
174
+ if attributes.key?(:'last_name')
175
+ self.last_name = attributes[:'last_name']
176
+ end
177
+
178
+ if attributes.key?(:'entity_id')
179
+ self.entity_id = attributes[:'entity_id']
180
+ end
181
+
182
+ if attributes.key?(:'roles')
183
+ if (value = attributes[:'roles']).is_a?(Array)
184
+ self.roles = value
185
+ end
186
+ end
187
+
188
+ if attributes.key?(:'mfa_type')
189
+ self.mfa_type = attributes[:'mfa_type']
190
+ end
191
+
192
+ if attributes.key?(:'mfa_verified')
193
+ self.mfa_verified = attributes[:'mfa_verified']
194
+ end
195
+
196
+ if attributes.key?(:'mfa_status')
197
+ self.mfa_status = attributes[:'mfa_status']
198
+ end
199
+
200
+ if attributes.key?(:'locked_out')
201
+ self.locked_out = attributes[:'locked_out']
202
+ end
203
+
204
+ if attributes.key?(:'locked_out_timestamp')
205
+ self.locked_out_timestamp = attributes[:'locked_out_timestamp']
206
+ end
207
+ end
208
+
209
+ # Show invalid properties with the reasons. Usually used together with valid?
210
+ # @return Array for valid properties with the reasons
211
+ def list_invalid_properties
212
+ invalid_properties = Array.new
213
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
214
+ if !@sms_number.nil? && @sms_number !~ pattern
215
+ invalid_properties.push("invalid value for \"sms_number\", must conform to the pattern #{pattern}.")
216
+ end
217
+
218
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
219
+ if !@primary_contact_number.nil? && @primary_contact_number !~ pattern
220
+ invalid_properties.push("invalid value for \"primary_contact_number\", must conform to the pattern #{pattern}.")
221
+ end
222
+
223
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
224
+ if !@secondary_contact_number.nil? && @secondary_contact_number !~ pattern
225
+ invalid_properties.push("invalid value for \"secondary_contact_number\", must conform to the pattern #{pattern}.")
226
+ end
227
+
228
+ if !@first_name.nil? && @first_name.to_s.length > 128
229
+ invalid_properties.push('invalid value for "first_name", the character length must be smaller than or equal to 128.')
230
+ end
231
+
232
+ if !@first_name.nil? && @first_name.to_s.length < 1
233
+ invalid_properties.push('invalid value for "first_name", the character length must be great than or equal to 1.')
234
+ end
235
+
236
+ if !@last_name.nil? && @last_name.to_s.length > 128
237
+ invalid_properties.push('invalid value for "last_name", the character length must be smaller than or equal to 128.')
238
+ end
239
+
240
+ if !@last_name.nil? && @last_name.to_s.length < 1
241
+ invalid_properties.push('invalid value for "last_name", the character length must be great than or equal to 1.')
242
+ end
243
+
244
+ invalid_properties
245
+ end
246
+
247
+ # Check to see if the all the properties in the model are valid
248
+ # @return true if the model is valid
249
+ def valid?
250
+ status_validator = EnumAttributeValidator.new('String', ["ENABLED", "DISABLED", "PENDING"])
251
+ return false unless status_validator.valid?(@status)
252
+ return false if !@sms_number.nil? && @sms_number !~ Regexp.new(/^\+?[1-9]\d{1,14}$/)
253
+ return false if !@primary_contact_number.nil? && @primary_contact_number !~ Regexp.new(/^\+?[1-9]\d{1,14}$/)
254
+ return false if !@secondary_contact_number.nil? && @secondary_contact_number !~ Regexp.new(/^\+?[1-9]\d{1,14}$/)
255
+ return false if !@first_name.nil? && @first_name.to_s.length > 128
256
+ return false if !@first_name.nil? && @first_name.to_s.length < 1
257
+ return false if !@last_name.nil? && @last_name.to_s.length > 128
258
+ return false if !@last_name.nil? && @last_name.to_s.length < 1
259
+ mfa_type_validator = EnumAttributeValidator.new('String', ["SMS", "YUBIKEY", "TOTP"])
260
+ return false unless mfa_type_validator.valid?(@mfa_type)
261
+ mfa_status_validator = EnumAttributeValidator.new('String', ["REGISTERED", "UNREGISTERED"])
262
+ return false unless mfa_status_validator.valid?(@mfa_status)
263
+ true
264
+ end
265
+
266
+ # Custom attribute writer method checking allowed values (enum).
267
+ # @param [Object] status Object to be assigned
268
+ def status=(status)
269
+ validator = EnumAttributeValidator.new('String', ["ENABLED", "DISABLED", "PENDING"])
270
+ unless validator.valid?(status)
271
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
272
+ end
273
+ @status = status
274
+ end
275
+
276
+ # Custom attribute writer method with validation
277
+ # @param [Object] sms_number Value to be assigned
278
+ def sms_number=(sms_number)
279
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
280
+ if !sms_number.nil? && sms_number !~ pattern
281
+ fail ArgumentError, "invalid value for \"sms_number\", must conform to the pattern #{pattern}."
282
+ end
283
+
284
+ @sms_number = sms_number
285
+ end
286
+
287
+ # Custom attribute writer method with validation
288
+ # @param [Object] primary_contact_number Value to be assigned
289
+ def primary_contact_number=(primary_contact_number)
290
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
291
+ if !primary_contact_number.nil? && primary_contact_number !~ pattern
292
+ fail ArgumentError, "invalid value for \"primary_contact_number\", must conform to the pattern #{pattern}."
293
+ end
294
+
295
+ @primary_contact_number = primary_contact_number
296
+ end
297
+
298
+ # Custom attribute writer method with validation
299
+ # @param [Object] secondary_contact_number Value to be assigned
300
+ def secondary_contact_number=(secondary_contact_number)
301
+ pattern = Regexp.new(/^\+?[1-9]\d{1,14}$/)
302
+ if !secondary_contact_number.nil? && secondary_contact_number !~ pattern
303
+ fail ArgumentError, "invalid value for \"secondary_contact_number\", must conform to the pattern #{pattern}."
304
+ end
305
+
306
+ @secondary_contact_number = secondary_contact_number
307
+ end
308
+
309
+ # Custom attribute writer method with validation
310
+ # @param [Object] first_name Value to be assigned
311
+ def first_name=(first_name)
312
+ if !first_name.nil? && first_name.to_s.length > 128
313
+ fail ArgumentError, 'invalid value for "first_name", the character length must be smaller than or equal to 128.'
314
+ end
315
+
316
+ if !first_name.nil? && first_name.to_s.length < 1
317
+ fail ArgumentError, 'invalid value for "first_name", the character length must be great than or equal to 1.'
318
+ end
319
+
320
+ @first_name = first_name
321
+ end
322
+
323
+ # Custom attribute writer method with validation
324
+ # @param [Object] last_name Value to be assigned
325
+ def last_name=(last_name)
326
+ if !last_name.nil? && last_name.to_s.length > 128
327
+ fail ArgumentError, 'invalid value for "last_name", the character length must be smaller than or equal to 128.'
328
+ end
329
+
330
+ if !last_name.nil? && last_name.to_s.length < 1
331
+ fail ArgumentError, 'invalid value for "last_name", the character length must be great than or equal to 1.'
332
+ end
333
+
334
+ @last_name = last_name
335
+ end
336
+
337
+ # Custom attribute writer method checking allowed values (enum).
338
+ # @param [Object] mfa_type Object to be assigned
339
+ def mfa_type=(mfa_type)
340
+ validator = EnumAttributeValidator.new('String', ["SMS", "YUBIKEY", "TOTP"])
341
+ unless validator.valid?(mfa_type)
342
+ fail ArgumentError, "invalid value for \"mfa_type\", must be one of #{validator.allowable_values}."
343
+ end
344
+ @mfa_type = mfa_type
345
+ end
346
+
347
+ # Custom attribute writer method checking allowed values (enum).
348
+ # @param [Object] mfa_status Object to be assigned
349
+ def mfa_status=(mfa_status)
350
+ validator = EnumAttributeValidator.new('String', ["REGISTERED", "UNREGISTERED"])
351
+ unless validator.valid?(mfa_status)
352
+ fail ArgumentError, "invalid value for \"mfa_status\", must be one of #{validator.allowable_values}."
353
+ end
354
+ @mfa_status = mfa_status
355
+ end
356
+
357
+ # Checks equality by comparing each attribute.
358
+ # @param [Object] Object to be compared
359
+ def ==(o)
360
+ return true if self.equal?(o)
361
+ self.class == o.class &&
362
+ id == o.id &&
363
+ status == o.status &&
364
+ email == o.email &&
365
+ sms_number == o.sms_number &&
366
+ primary_contact_number == o.primary_contact_number &&
367
+ secondary_contact_number == o.secondary_contact_number &&
368
+ first_name == o.first_name &&
369
+ last_name == o.last_name &&
370
+ entity_id == o.entity_id &&
371
+ roles == o.roles &&
372
+ mfa_type == o.mfa_type &&
373
+ mfa_verified == o.mfa_verified &&
374
+ mfa_status == o.mfa_status &&
375
+ locked_out == o.locked_out &&
376
+ locked_out_timestamp == o.locked_out_timestamp
377
+ end
378
+
379
+ # @see the `==` method
380
+ # @param [Object] Object to be compared
381
+ def eql?(o)
382
+ self == o
383
+ end
384
+
385
+ # Calculates hash code according to all attributes.
386
+ # @return [Integer] Hash code
387
+ def hash
388
+ [id, status, email, sms_number, primary_contact_number, secondary_contact_number, first_name, last_name, entity_id, roles, mfa_type, mfa_verified, mfa_status, locked_out, locked_out_timestamp].hash
389
+ end
390
+
391
+ # Builds the object from hash
392
+ # @param [Hash] attributes Model attributes in the form of hash
393
+ # @return [Object] Returns the model itself
394
+ def self.build_from_hash(attributes)
395
+ new.build_from_hash(attributes)
396
+ end
397
+
398
+ # Builds the object from hash
399
+ # @param [Hash] attributes Model attributes in the form of hash
400
+ # @return [Object] Returns the model itself
401
+ def build_from_hash(attributes)
402
+ return nil unless attributes.is_a?(Hash)
403
+ self.class.openapi_types.each_pair do |key, type|
404
+ if type =~ /\AArray<(.*)>/i
405
+ # check to ensure the input is an array given that the attribute
406
+ # is documented as an array but the input is not
407
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
408
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
409
+ end
410
+ elsif !attributes[self.class.attribute_map[key]].nil?
411
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
412
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
413
+ end
414
+
415
+ self
416
+ end
417
+
418
+ # Deserializes the data based on type
419
+ # @param string type Data type
420
+ # @param string value Value to be deserialized
421
+ # @return [Object] Deserialized data
422
+ def _deserialize(type, value)
423
+ case type.to_sym
424
+ when :DateTime
425
+ DateTime.parse(value)
426
+ when :Date
427
+ Date.parse(value)
428
+ when :String
429
+ value.to_s
430
+ when :Integer
431
+ value.to_i
432
+ when :Float
433
+ value.to_f
434
+ when :Boolean
435
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
436
+ true
437
+ else
438
+ false
439
+ end
440
+ when :Object
441
+ # generic object (usually a Hash), return directly
442
+ value
443
+ when /\AArray<(?<inner_type>.+)>\z/
444
+ inner_type = Regexp.last_match[:inner_type]
445
+ value.map { |v| _deserialize(inner_type, v) }
446
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
447
+ k_type = Regexp.last_match[:k_type]
448
+ v_type = Regexp.last_match[:v_type]
449
+ {}.tap do |hash|
450
+ value.each do |k, v|
451
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
452
+ end
453
+ end
454
+ else # model
455
+ VeloPayments.const_get(type).build_from_hash(value)
456
+ end
457
+ end
458
+
459
+ # Returns the string representation of the object
460
+ # @return [String] String presentation of the object
461
+ def to_s
462
+ to_hash.to_s
463
+ end
464
+
465
+ # to_body is an alias to to_hash (backward compatibility)
466
+ # @return [Hash] Returns the object in the form of hash
467
+ def to_body
468
+ to_hash
469
+ end
470
+
471
+ # Returns the object in the form of hash
472
+ # @return [Hash] Returns the object in the form of hash
473
+ def to_hash
474
+ hash = {}
475
+ self.class.attribute_map.each_pair do |attr, param|
476
+ value = self.send(attr)
477
+ if value.nil?
478
+ is_nullable = self.class.openapi_nullable.include?(attr)
479
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
480
+ end
481
+
482
+ hash[param] = _to_hash(value)
483
+ end
484
+ hash
485
+ end
486
+
487
+ # Outputs non-array value in the form of hash
488
+ # For object, use to_hash. Otherwise, just return the value
489
+ # @param [Object] value Any valid value
490
+ # @return [Hash] Returns the value in the form of hash
491
+ def _to_hash(value)
492
+ if value.is_a?(Array)
493
+ value.compact.map { |v| _to_hash(v) }
494
+ elsif value.is_a?(Hash)
495
+ {}.tap do |hash|
496
+ value.each { |k, v| hash[k] = _to_hash(v) }
497
+ end
498
+ elsif value.respond_to? :to_hash
499
+ value.to_hash
500
+ else
501
+ value
502
+ end
503
+ end
504
+ end
505
+ end