moov_ruby 26.7.2 → 26.10.0.pre.dev.0

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 (413) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +1 -276
  4. data/lib/moov/card_issuing.rb +1 -117
  5. data/lib/moov/client.rb +2 -2
  6. data/lib/moov/enriched_address.rb +1 -1
  7. data/lib/moov/enriched_profile.rb +1 -1
  8. data/lib/moov/images.rb +1 -1
  9. data/lib/moov/institutions.rb +2 -2
  10. data/lib/moov/models/components/account.rb +2 -2
  11. data/lib/moov/models/components/accountnameverification.rb +4 -4
  12. data/lib/moov/models/components/accounttype.rb +1 -3
  13. data/lib/moov/models/components/accountverificationstatus.rb +1 -3
  14. data/lib/moov/models/components/achreturncode.rb +1 -3
  15. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  16. data/lib/moov/models/components/achtransactionstatus.rb +1 -3
  17. data/lib/moov/models/components/adjustmentfees.rb +15 -11
  18. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  19. data/lib/moov/models/components/amountdecimalrange.rb +2 -0
  20. data/lib/moov/models/components/amountdecimalrangeupdate.rb +2 -0
  21. data/lib/moov/models/components/applepayresponse.rb +2 -2
  22. data/lib/moov/models/components/applicationscope.rb +2 -4
  23. data/lib/moov/models/components/authmethod.rb +1 -3
  24. data/lib/moov/models/components/bankaccount.rb +4 -4
  25. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  26. data/lib/moov/models/components/bankaccountholdertype.rb +1 -3
  27. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  28. data/lib/moov/models/components/bankaccountstatus.rb +1 -3
  29. data/lib/moov/models/components/bankaccountstatusreason.rb +1 -3
  30. data/lib/moov/models/components/bankaccounttype.rb +1 -3
  31. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  32. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  33. data/lib/moov/models/components/bankaccountverificationmethod.rb +1 -3
  34. data/lib/moov/models/components/bankaccountverificationstatus.rb +1 -3
  35. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  36. data/lib/moov/models/components/billablefee.rb +2 -2
  37. data/lib/moov/models/components/billingsummary.rb +4 -8
  38. data/lib/moov/models/components/billingsummary.rbi +0 -2
  39. data/lib/moov/models/components/businesspresence.rb +1 -3
  40. data/lib/moov/models/components/businessprofile.rb +2 -2
  41. data/lib/moov/models/components/businesstype.rb +1 -3
  42. data/lib/moov/models/components/calltoaction.rb +1 -3
  43. data/lib/moov/models/components/cancellation.rb +2 -2
  44. data/lib/moov/models/components/cancellationstatus.rb +1 -3
  45. data/lib/moov/models/components/capability.rb +2 -2
  46. data/lib/moov/models/components/capabilityid.rb +1 -4
  47. data/lib/moov/models/components/capabilitystatus.rb +1 -3
  48. data/lib/moov/models/components/card.rb +4 -4
  49. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  50. data/lib/moov/models/components/cardacquiringmodel.rb +1 -3
  51. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  52. data/lib/moov/models/components/cardbrand.rb +1 -3
  53. data/lib/moov/models/components/cardissuingnetwork.rb +1 -3
  54. data/lib/moov/models/components/cardmetadata.rb +4 -4
  55. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  56. data/lib/moov/models/components/cardtransactionfailurecode.rb +1 -3
  57. data/lib/moov/models/components/cardtransactionstatus.rb +1 -3
  58. data/lib/moov/models/components/cardtype.rb +1 -3
  59. data/lib/moov/models/components/cardupdatereason.rb +1 -3
  60. data/lib/moov/models/components/cardverification.rb +3 -3
  61. data/lib/moov/models/components/cardverificationresult.rb +1 -3
  62. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  63. data/lib/moov/models/components/collectionpaymentmethodtype.rb +1 -3
  64. data/lib/moov/models/components/{avataruploadrequest.rb → contributingrule.rb} +8 -8
  65. data/lib/moov/models/components/contributingrule.rbi +13 -0
  66. data/lib/moov/models/components/createaccount.rb +2 -2
  67. data/lib/moov/models/components/createaccounttype.rb +1 -3
  68. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  69. data/lib/moov/models/components/createdtransfer.rb +5 -12
  70. data/lib/moov/models/components/createdtransfer.rbi +0 -2
  71. data/lib/moov/models/components/createevidencetext.rb +1 -1
  72. data/lib/moov/models/components/createfeeplanagreement.rb +3 -13
  73. data/lib/moov/models/components/createfeeplanagreement.rbi +0 -2
  74. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  75. data/lib/moov/models/components/createrefund.rb +2 -2
  76. data/lib/moov/models/components/createreversal.rb +1 -4
  77. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  78. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  79. data/lib/moov/models/components/createtippresets.rb +1 -1
  80. data/lib/moov/models/components/createtransfer.rb +2 -6
  81. data/lib/moov/models/components/createtransfer.rbi +0 -2
  82. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  83. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  84. data/lib/moov/models/components/createwebhook.rb +1 -1
  85. data/lib/moov/models/components/debitholdperiod.rb +1 -3
  86. data/lib/moov/models/components/depositaccountingestedresponse.rb +1 -1
  87. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +1 -3
  88. data/lib/moov/models/components/dispute.rb +2 -2
  89. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  90. data/lib/moov/models/components/disputephase.rb +1 -3
  91. data/lib/moov/models/components/disputestatus.rb +1 -3
  92. data/lib/moov/models/components/document.rb +1 -1
  93. data/lib/moov/models/components/documenttype.rb +1 -3
  94. data/lib/moov/models/components/domesticpullfromcard.rb +1 -3
  95. data/lib/moov/models/components/domesticpushtocard.rb +1 -3
  96. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  97. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  98. data/lib/moov/models/components/evidencetype.rb +1 -3
  99. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  100. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  101. data/lib/moov/models/components/feecategory.rb +1 -3
  102. data/lib/moov/models/components/feemodel.rb +1 -3
  103. data/lib/moov/models/components/feeplan.rb +1 -1
  104. data/lib/moov/models/components/feeplanagreement.rb +4 -12
  105. data/lib/moov/models/components/feeplanagreement.rbi +0 -4
  106. data/lib/moov/models/components/feeplanagreementstatus.rb +1 -3
  107. data/lib/moov/models/components/filedetails.rb +2 -2
  108. data/lib/moov/models/components/filepurpose.rb +1 -3
  109. data/lib/moov/models/components/filestatus.rb +1 -3
  110. data/lib/moov/models/components/fulfillment.rb +2 -2
  111. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  112. data/lib/moov/models/components/fulfillmentmethod.rb +1 -3
  113. data/lib/moov/models/components/fulfillmenttimeframe.rb +1 -3
  114. data/lib/moov/models/components/fullissuedcard.rb +5 -6
  115. data/lib/moov/models/components/geographicreach.rb +1 -3
  116. data/lib/moov/models/components/googlepayresponse.rb +3 -3
  117. data/lib/moov/models/components/incurredfee.rb +2 -6
  118. data/lib/moov/models/components/incurredfee.rbi +0 -2
  119. data/lib/moov/models/components/instantbankfailurecode.rb +1 -3
  120. data/lib/moov/models/components/instantbanknetwork.rb +1 -3
  121. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  122. data/lib/moov/models/components/instantbanktransactionstatus.rb +1 -3
  123. data/lib/moov/models/components/invoice.rb +1 -1
  124. data/lib/moov/models/components/invoicepayment.rb +1 -1
  125. data/lib/moov/models/components/invoicepaymenttype.rb +1 -3
  126. data/lib/moov/models/components/invoicestatus.rb +1 -3
  127. data/lib/moov/models/components/issuedcard.rb +5 -6
  128. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  129. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  130. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +1 -3
  131. data/lib/moov/models/components/issuedcardeventtype.rb +1 -3
  132. data/lib/moov/models/components/issuedcardstate.rb +1 -5
  133. data/lib/moov/models/components/issuingauthorizationstatus.rb +1 -3
  134. data/lib/moov/models/components/issuingcontrols.rb +3 -19
  135. data/lib/moov/models/components/issuingcontrols.rbi +0 -8
  136. data/lib/moov/models/components/issuingcontrolserror.rb +2 -18
  137. data/lib/moov/models/components/issuingcontrolserror.rbi +0 -8
  138. data/lib/moov/models/components/issuingintervallimit.rb +2 -7
  139. data/lib/moov/models/components/issuingvelocitylimit.rb +7 -11
  140. data/lib/moov/models/components/issuingvelocitylimit.rbi +2 -4
  141. data/lib/moov/models/components/issuingvelocitylimiterror.rb +2 -6
  142. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +0 -2
  143. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  144. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  145. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +1 -1
  146. data/lib/moov/models/components/mode.rb +1 -3
  147. data/lib/moov/models/components/monthlyvolumerange.rb +1 -3
  148. data/lib/moov/models/components/moovfee.rb +1 -1
  149. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  150. data/lib/moov/models/components/occurrencestatus.rb +1 -3
  151. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  152. data/lib/moov/models/components/partnerpricingagreement.rb +7 -15
  153. data/lib/moov/models/components/partnerpricingagreement.rbi +0 -4
  154. data/lib/moov/models/components/partnerriskoutcomesresponse.rb +38 -0
  155. data/lib/moov/models/components/partnerriskoutcomesresponse.rbi +15 -0
  156. data/lib/moov/models/components/patchbusiness.rb +2 -2
  157. data/lib/moov/models/components/patchwallet.rb +1 -1
  158. data/lib/moov/models/components/paymentlink.rb +6 -4
  159. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +2 -0
  160. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +2 -0
  161. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  162. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  163. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +7 -11
  164. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +0 -2
  165. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +7 -11
  166. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +0 -2
  167. data/lib/moov/models/components/paymentlinkstatus.rb +1 -3
  168. data/lib/moov/models/components/paymentlinktype.rb +1 -3
  169. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  170. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  171. data/lib/moov/models/components/paymentmethodswallet.rb +1 -2
  172. data/lib/moov/models/components/paymentmethodtype.rb +1 -3
  173. data/lib/moov/models/components/payoutdetailserror.rb +2 -6
  174. data/lib/moov/models/components/payoutdetailserror.rbi +0 -2
  175. data/lib/moov/models/components/pendinglitigation.rb +1 -3
  176. data/lib/moov/models/components/primaryregulator.rb +1 -3
  177. data/lib/moov/models/components/product.rb +2 -6
  178. data/lib/moov/models/components/product.rbi +0 -2
  179. data/lib/moov/models/components/productrequest.rb +2 -6
  180. data/lib/moov/models/components/productrequest.rbi +0 -2
  181. data/lib/moov/models/components/pushdeliveryspeed.rb +1 -3
  182. data/lib/moov/models/components/pushoptions.rb +4 -5
  183. data/lib/moov/models/components/pushoptionsupdate.rb +4 -5
  184. data/lib/moov/models/components/puttippresets.rb +1 -1
  185. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  186. data/lib/moov/models/components/refundcardstatus.rb +1 -3
  187. data/lib/moov/models/components/refundpolicy.rb +1 -3
  188. data/lib/moov/models/components/refundstatus.rb +1 -3
  189. data/lib/moov/models/components/requestcard.rb +1 -1
  190. data/lib/moov/models/components/requirementerror.rb +2 -2
  191. data/lib/moov/models/components/requirementerrorcode.rb +1 -3
  192. data/lib/moov/models/components/requirementid.rb +1 -17
  193. data/lib/moov/models/components/resolutionlink.rb +1 -1
  194. data/lib/moov/models/components/resolutionlinkstatus.rb +1 -3
  195. data/lib/moov/models/components/returnpolicytype.rb +1 -3
  196. data/lib/moov/models/components/reversalamountdetails.rb +1 -3
  197. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  198. data/lib/moov/models/components/rtprejectioncode.rb +1 -3
  199. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  200. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  201. data/lib/moov/models/components/seccode.rb +1 -3
  202. data/lib/moov/models/components/sendfunds.rb +2 -6
  203. data/lib/moov/models/components/sendfunds.rbi +0 -2
  204. data/lib/moov/models/components/sendfundserror.rb +2 -6
  205. data/lib/moov/models/components/sendfundserror.rbi +0 -2
  206. data/lib/moov/models/components/sourcesystem.rb +1 -3
  207. data/lib/moov/models/components/statement.rb +2 -6
  208. data/lib/moov/models/components/statement.rbi +0 -2
  209. data/lib/moov/models/components/sweep.rb +1 -1
  210. data/lib/moov/models/components/sweepconfig.rb +3 -3
  211. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  212. data/lib/moov/models/components/sweepconfigstatus.rb +1 -3
  213. data/lib/moov/models/components/sweepstatus.rb +1 -3
  214. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  215. data/lib/moov/models/components/terminalapplication.rb +2 -2
  216. data/lib/moov/models/components/terminalapplicationplatform.rb +1 -3
  217. data/lib/moov/models/components/terminalapplicationstatus.rb +1 -3
  218. data/lib/moov/models/components/terminalcard.rb +2 -2
  219. data/lib/moov/models/components/ticket.rb +1 -1
  220. data/lib/moov/models/components/ticketstatus.rb +1 -3
  221. data/lib/moov/models/components/tipcalculationbasis.rb +1 -3
  222. data/lib/moov/models/components/tippresets.rb +1 -1
  223. data/lib/moov/models/components/transactionsource.rb +1 -3
  224. data/lib/moov/models/components/transfer.rb +5 -12
  225. data/lib/moov/models/components/transfer.rbi +0 -2
  226. data/lib/moov/models/components/transferdestination.rb +1 -1
  227. data/lib/moov/models/components/transferfailurereason.rb +1 -3
  228. data/lib/moov/models/components/transferparty.rb +1 -3
  229. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  230. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  231. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -2
  232. data/lib/moov/models/components/transferpaymentmethodtype.rb +1 -3
  233. data/lib/moov/models/components/transfersource.rb +1 -1
  234. data/lib/moov/models/components/transferstatus.rb +1 -3
  235. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  236. data/lib/moov/models/components/underwriting.rb +4 -4
  237. data/lib/moov/models/components/underwritingstatus.rb +1 -3
  238. data/lib/moov/models/components/updateevidence.rb +1 -1
  239. data/lib/moov/models/components/updateinvoice.rb +1 -1
  240. data/lib/moov/models/components/updateissuedcard.rb +2 -8
  241. data/lib/moov/models/components/updateissuedcard.rbi +0 -2
  242. data/lib/moov/models/components/updateissuedcardstate.rb +0 -4
  243. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  244. data/lib/moov/models/components/updatewebhook.rb +1 -1
  245. data/lib/moov/models/components/upsertunderwriting.rb +3 -3
  246. data/lib/moov/models/components/use.rb +1 -3
  247. data/lib/moov/models/components/verification.rb +3 -3
  248. data/lib/moov/models/components/verificationstatus.rb +1 -3
  249. data/lib/moov/models/components/verificationstatusdetail.rb +1 -3
  250. data/lib/moov/models/components/wallet.rb +2 -3
  251. data/lib/moov/models/components/walletstatus.rb +1 -3
  252. data/lib/moov/models/components/wallettransaction.rb +3 -3
  253. data/lib/moov/models/components/wallettransactionsourcetype.rb +1 -3
  254. data/lib/moov/models/components/wallettransactionstatus.rb +1 -3
  255. data/lib/moov/models/components/wallettransactiontype.rb +1 -3
  256. data/lib/moov/models/components/wallettype.rb +1 -5
  257. data/lib/moov/models/components/webhook.rb +1 -1
  258. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  259. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  260. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  261. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  262. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  263. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  264. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  265. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  266. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  267. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  268. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +1 -1
  269. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  270. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  271. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  272. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  273. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  274. data/lib/moov/models/components/webhookdatatransferstatus.rb +0 -3
  275. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  276. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  277. data/lib/moov/models/components/webhookevent.rb +1 -1
  278. data/lib/moov/models/components/webhookeventtype.rb +1 -3
  279. data/lib/moov/models/components/webhookstatus.rb +1 -3
  280. data/lib/moov/models/components.rb +3 -37
  281. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  282. data/lib/moov/models/errors/productrequestvalidationerror.rb +2 -6
  283. data/lib/moov/models/errors/productrequestvalidationerror.rbi +0 -2
  284. data/lib/moov/models/errors/transfer_error.rb +5 -12
  285. data/lib/moov/models/errors/transfer_error.rbi +0 -2
  286. data/lib/moov/models/errors/updateissuedcarderror.rb +2 -6
  287. data/lib/moov/models/errors/updateissuedcarderror.rbi +0 -2
  288. data/lib/moov/models/operations/gettransferriskoutcomes_request.rb +37 -0
  289. data/lib/moov/models/operations/gettransferriskoutcomes_request.rbi +15 -0
  290. data/lib/moov/models/operations/{listissuingmerchantcategories_response.rb → gettransferriskoutcomes_response.rb} +6 -6
  291. data/lib/moov/models/operations/{deleteavatar_response.rbi → gettransferriskoutcomes_response.rbi} +4 -2
  292. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  293. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  294. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  295. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  296. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  297. data/lib/moov/models/operations/listinvoices_request.rb +1 -1
  298. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  299. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  300. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  301. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +3 -7
  302. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +0 -2
  303. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  304. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  305. data/lib/moov/models/operations/listproducts_request.rb +3 -9
  306. data/lib/moov/models/operations/listproducts_request.rbi +0 -2
  307. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  308. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  309. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  310. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  311. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  312. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  313. data/lib/moov/models/operations/listtransfers_request.rb +3 -11
  314. data/lib/moov/models/operations/listtransfers_request.rbi +0 -4
  315. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  316. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  317. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  318. data/lib/moov/models/operations.rb +2 -8
  319. data/lib/moov/products.rb +8 -113
  320. data/lib/moov/sdk_hooks/hooks.rb +0 -6
  321. data/lib/moov/sdkconfiguration.rb +4 -4
  322. data/lib/moov/transfers.rb +130 -11
  323. data/lib/moov/utils/retries.rb +2 -41
  324. data/lib/moov/utils/utils.rb +2 -6
  325. data/lib/moov_ruby.rb +1 -1
  326. metadata +12 -94
  327. data/lib/moov/models/components/allowedscheduleerror.rb +0 -36
  328. data/lib/moov/models/components/allowedscheduleerror.rbi +0 -15
  329. data/lib/moov/models/components/avataruploadrequest.rbi +0 -13
  330. data/lib/moov/models/components/avataruploadrequest_file.rb +0 -36
  331. data/lib/moov/models/components/avataruploadrequest_file.rbi +0 -15
  332. data/lib/moov/models/components/billingadjustment.rb +0 -40
  333. data/lib/moov/models/components/billingadjustment.rbi +0 -17
  334. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +0 -40
  335. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +0 -15
  336. data/lib/moov/models/components/feepaidby.rb +0 -21
  337. data/lib/moov/models/components/feepaidby.rbi +0 -11
  338. data/lib/moov/models/components/issuedcontrols.rb +0 -52
  339. data/lib/moov/models/components/issuedcontrols.rbi +0 -23
  340. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +0 -36
  341. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +0 -15
  342. data/lib/moov/models/components/issuedvelocitylimit.rb +0 -60
  343. data/lib/moov/models/components/issuedvelocitylimit.rbi +0 -27
  344. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +0 -36
  345. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +0 -15
  346. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +0 -21
  347. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +0 -11
  348. data/lib/moov/models/components/issuingmerchantcategory.rb +0 -45
  349. data/lib/moov/models/components/issuingmerchantcategory.rbi +0 -11
  350. data/lib/moov/models/components/issuingscheduleday.rb +0 -24
  351. data/lib/moov/models/components/issuingscheduleday.rbi +0 -11
  352. data/lib/moov/models/components/merchantcategories.rb +0 -32
  353. data/lib/moov/models/components/merchantcategories.rbi +0 -13
  354. data/lib/moov/models/components/merchantcategory.rb +0 -37
  355. data/lib/moov/models/components/merchantcategory.rbi +0 -15
  356. data/lib/moov/models/components/merchantcategoryrestrictions.rb +0 -44
  357. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +0 -19
  358. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +0 -44
  359. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +0 -19
  360. data/lib/moov/models/components/merchantentry.rb +0 -40
  361. data/lib/moov/models/components/merchantentry.rbi +0 -17
  362. data/lib/moov/models/components/merchantentryerror.rb +0 -36
  363. data/lib/moov/models/components/merchantentryerror.rbi +0 -15
  364. data/lib/moov/models/components/merchantrestrictions.rb +0 -36
  365. data/lib/moov/models/components/merchantrestrictions.rbi +0 -15
  366. data/lib/moov/models/components/merchantrestrictionserror.rb +0 -36
  367. data/lib/moov/models/components/merchantrestrictionserror.rbi +0 -15
  368. data/lib/moov/models/components/productcategories.rb +0 -32
  369. data/lib/moov/models/components/productcategories.rbi +0 -13
  370. data/lib/moov/models/components/productcategory.rb +0 -48
  371. data/lib/moov/models/components/productcategory.rbi +0 -21
  372. data/lib/moov/models/components/schedulewindow.rb +0 -40
  373. data/lib/moov/models/components/schedulewindow.rbi +0 -17
  374. data/lib/moov/models/components/schedulewindowerror.rb +0 -40
  375. data/lib/moov/models/components/schedulewindowerror.rbi +0 -17
  376. data/lib/moov/models/components/schemebasicauth.rb +0 -36
  377. data/lib/moov/models/components/schemebasicauth.rbi +0 -15
  378. data/lib/moov/models/components/schemeoauth2auth.rb +0 -40
  379. data/lib/moov/models/components/schemeoauth2auth.rbi +0 -17
  380. data/lib/moov/models/components/sendfundswire.rb +0 -32
  381. data/lib/moov/models/components/sendfundswire.rbi +0 -13
  382. data/lib/moov/models/components/sendfundswireerror.rb +0 -32
  383. data/lib/moov/models/components/sendfundswireerror.rbi +0 -13
  384. data/lib/moov/models/components/transfercapture.rb +0 -36
  385. data/lib/moov/models/components/transfercapture.rbi +0 -15
  386. data/lib/moov/models/components/transferfeepaidby.rb +0 -32
  387. data/lib/moov/models/components/transferfeepaidby.rbi +0 -13
  388. data/lib/moov/models/components/updateissuingcontrols.rb +0 -48
  389. data/lib/moov/models/components/updateissuingcontrols.rbi +0 -21
  390. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +0 -36
  391. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +0 -15
  392. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +0 -44
  393. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +0 -19
  394. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +0 -36
  395. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +0 -15
  396. data/lib/moov/models/components/updateissuingcontrolserror.rb +0 -48
  397. data/lib/moov/models/components/updateissuingcontrolserror.rbi +0 -21
  398. data/lib/moov/models/operations/deleteavatar_request.rb +0 -32
  399. data/lib/moov/models/operations/deleteavatar_request.rbi +0 -13
  400. data/lib/moov/models/operations/deleteavatar_response.rb +0 -44
  401. data/lib/moov/models/operations/deleteavatar_security.rb +0 -36
  402. data/lib/moov/models/operations/deleteavatar_security.rbi +0 -15
  403. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +0 -21
  404. data/lib/moov/models/operations/listproductcategories_response.rb +0 -48
  405. data/lib/moov/models/operations/listproductcategories_response.rbi +0 -21
  406. data/lib/moov/models/operations/uploadavatar_request.rb +0 -36
  407. data/lib/moov/models/operations/uploadavatar_request.rbi +0 -15
  408. data/lib/moov/models/operations/uploadavatar_response.rb +0 -44
  409. data/lib/moov/models/operations/uploadavatar_response.rbi +0 -19
  410. data/lib/moov/models/operations/uploadavatar_security.rb +0 -36
  411. data/lib/moov/models/operations/uploadavatar_security.rbi +0 -15
  412. data/lib/moov/sdk_hooks/clientcredentials.rb +0 -386
  413. data/lib/moov/sdk_hooks/oauth2scopes.rb +0 -18
@@ -1,19 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class Moov::Models::Operations::UploadAvatarResponse
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class Moov::Models::Operations::UploadAvatarResponse
11
- def content_type(); end
12
- def content_type=(str_); end
13
- def status_code(); end
14
- def status_code=(str_); end
15
- def raw_response(); end
16
- def raw_response=(str_); end
17
- def headers(); end
18
- def headers=(str_); end
19
- end
@@ -1,36 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
-
7
- module Moov
8
- module Models
9
- module Operations
10
-
11
- class UploadAvatarSecurity
12
- extend T::Sig
13
- include Crystalline::MetadataFields
14
-
15
-
16
- field :basic_auth, Crystalline::Nilable.new(Models::Components::SchemeBasicAuth), { 'security': { 'scheme': true, 'type': 'http', 'sub_type': 'basic' } }
17
-
18
- field :o_auth2_auth, Crystalline::Nilable.new(Models::Components::SchemeOAuth2Auth), { 'security': { 'scheme': true, 'type': 'oauth2', 'sub_type': 'client_credentials' } }
19
-
20
- sig { params(basic_auth: T.nilable(Models::Components::SchemeBasicAuth), o_auth2_auth: T.nilable(Models::Components::SchemeOAuth2Auth)).void }
21
- def initialize(basic_auth: nil, o_auth2_auth: nil)
22
- @basic_auth = basic_auth
23
- @o_auth2_auth = o_auth2_auth
24
- end
25
-
26
- sig { params(other: T.untyped).returns(T::Boolean) }
27
- def ==(other)
28
- return false unless other.is_a? self.class
29
- return false unless @basic_auth == other.basic_auth
30
- return false unless @o_auth2_auth == other.o_auth2_auth
31
- true
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,15 +0,0 @@
1
- # typed: true
2
- # frozen_string_literal: true
3
-
4
-
5
- class Moov::Models::Operations::UploadAvatarSecurity
6
- extend ::Crystalline::MetadataFields::ClassMethods
7
- end
8
-
9
-
10
- class Moov::Models::Operations::UploadAvatarSecurity
11
- def basic_auth(); end
12
- def basic_auth=(str_); end
13
- def o_auth2_auth(); end
14
- def o_auth2_auth=(str_); end
15
- end
@@ -1,386 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
- require 'digest'
7
- require 'json'
8
- require 'net/http'
9
- require 'uri'
10
-
11
- require_relative './types'
12
-
13
- module Moov
14
- module SDKHooks
15
- class Credentials
16
- extend T::Sig
17
-
18
- sig { returns(String) }
19
- attr_reader :client_id
20
-
21
- sig { returns(String) }
22
- attr_reader :client_secret
23
-
24
- sig { returns(String) }
25
- attr_reader :token_url
26
-
27
- sig { returns(T.nilable(T::Array[String])) }
28
- attr_reader :scopes
29
-
30
- sig { returns(T::Hash[String, String]) }
31
- attr_reader :additional_properties
32
-
33
- sig do
34
- params(
35
- client_id: String,
36
- client_secret: String,
37
- token_url: String,
38
- scopes: T.nilable(T::Array[String]),
39
- additional_properties: T::Hash[String, String]
40
- ).void
41
- end
42
- def initialize(client_id:, client_secret:, token_url:, scopes: nil, additional_properties: {})
43
- @client_id = client_id
44
- @client_secret = client_secret
45
- @token_url = token_url
46
- @scopes = scopes
47
- @additional_properties = additional_properties
48
- end
49
- end
50
-
51
- class Session
52
- extend T::Sig
53
-
54
- sig { returns(Credentials) }
55
- attr_reader :credentials
56
-
57
- sig { returns(String) }
58
- attr_reader :token
59
-
60
- sig { returns(T::Array[String]) }
61
- attr_reader :scopes
62
-
63
- sig { returns(T.nilable(Integer)) }
64
- attr_reader :expires_at
65
-
66
- sig do
67
- params(
68
- credentials: Credentials,
69
- token: String,
70
- scopes: T::Array[String],
71
- expires_at: T.nilable(Integer)
72
- ).void
73
- end
74
- def initialize(credentials:, token:, scopes:, expires_at: nil)
75
- @credentials = credentials
76
- @token = token
77
- @scopes = scopes
78
- @expires_at = expires_at
79
- end
80
- end
81
-
82
- class ClientCredentialsHook < AbstractSDKHook
83
-
84
- extend T::Sig
85
-
86
- @global_lock = Mutex.new
87
- @client_locks = {}
88
- @sessions = {}
89
-
90
- class << self
91
- attr_reader :global_lock
92
- attr_accessor :client_locks, :sessions
93
- end
94
-
95
- sig { override.params(config: SDKConfiguration).returns(SDKConfiguration) }
96
- def sdk_init(config:)
97
- raise 'Client is required' if config.client.nil?
98
-
99
- @client = config.client
100
- config
101
- end
102
-
103
- sig do
104
- override.params(
105
- hook_ctx: BeforeRequestHookContext,
106
- request: Faraday::Request
107
- ).returns(Faraday::Request)
108
- end
109
- def before_request(hook_ctx:, request:)
110
- return request if hook_disabled?(hook_ctx)
111
-
112
- credentials = get_credentials(hook_ctx)
113
- return request if credentials.nil?
114
-
115
- session_key = get_session_key(credentials.client_id, credentials.client_secret)
116
- scopes = get_required_scopes(credentials, hook_ctx)
117
- session = get_existing_session(session_key, scopes)
118
-
119
- if session.nil?
120
- token_url = resolve_token_endpoint(hook_ctx.base_url, credentials.token_url)
121
- session = do_token_request(token_url, credentials, scopes)
122
- store_session(session_key, scopes, session)
123
- end
124
-
125
- request.headers['Authorization'] = "Bearer #{session.token}"
126
- request
127
- end
128
-
129
- sig do
130
- override.params(
131
- error: T.nilable(StandardError),
132
- hook_ctx: AfterErrorHookContext,
133
- response: T.nilable(Faraday::Response)
134
- ).returns(T.nilable(Faraday::Response))
135
- end
136
- def after_error(error:, hook_ctx:, response:)
137
- return response if hook_disabled?(hook_ctx)
138
-
139
- # We don't want to refresh the token if the error is not related to the token
140
- return response unless error.nil?
141
-
142
- credentials = get_credentials(hook_ctx)
143
- return response if credentials.nil?
144
-
145
- if !response.nil? && response.status == 401
146
- session_key = get_session_key(credentials.client_id, credentials.client_secret)
147
- scopes = get_required_scopes(credentials, hook_ctx)
148
- scope_key = get_scope_key(scopes)
149
- remove_session(session_key, scope_key)
150
- end
151
-
152
- response
153
- end
154
-
155
- private
156
-
157
- sig { params(hook_ctx: HookContext).returns(T::Boolean) }
158
- def hook_disabled?(hook_ctx)
159
- hook_ctx.oauth2_scopes.nil?
160
- end
161
-
162
-
163
- sig { params(hook_ctx: HookContext).returns(T.nilable(Credentials)) }
164
- def get_credentials(hook_ctx)
165
- source = hook_ctx.security_source
166
- return nil if source.nil?
167
-
168
- security = source.call
169
-
170
- case hook_ctx.operation_id
171
- when 'uploadAvatar'
172
- return get_credentials_upload_avatar(security)
173
- when 'deleteAvatar'
174
- return get_credentials_delete_avatar(security)
175
- end
176
-
177
- nil
178
- end
179
-
180
-
181
- sig { params(security: T.untyped).returns(T.nilable(Credentials)) }
182
- def get_credentials_upload_avatar(security)
183
- return nil if security.nil? || security.o_auth2_auth.nil?
184
-
185
- # Extract additional properties from security object
186
- additional_properties = {}
187
- security.o_auth2_auth.class.fields.each do |f|
188
- name = f.name.to_s
189
- next if %w[client_id client_secret token_url scopes].include?(name)
190
-
191
- metadata = f.metadata&.dig(:security)
192
- next if metadata.nil?
193
-
194
- field_name = metadata[:field_name] || name
195
- value = security.o_auth2_auth.send(f.name)
196
- additional_properties[field_name] = value.to_s unless value.nil?
197
- end
198
-
199
- Credentials.new(
200
- client_id: security.o_auth2_auth.client_id,
201
- client_secret: security.o_auth2_auth.client_secret,
202
- token_url: security.o_auth2_auth.token_url,
203
- scopes: nil,
204
- additional_properties: additional_properties
205
- )
206
- end
207
-
208
- sig { params(security: T.untyped).returns(T.nilable(Credentials)) }
209
- def get_credentials_delete_avatar(security)
210
- return nil if security.nil? || security.o_auth2_auth.nil?
211
-
212
- # Extract additional properties from security object
213
- additional_properties = {}
214
- security.o_auth2_auth.class.fields.each do |f|
215
- name = f.name.to_s
216
- next if %w[client_id client_secret token_url scopes].include?(name)
217
-
218
- metadata = f.metadata&.dig(:security)
219
- next if metadata.nil?
220
-
221
- field_name = metadata[:field_name] || name
222
- value = security.o_auth2_auth.send(f.name)
223
- additional_properties[field_name] = value.to_s unless value.nil?
224
- end
225
-
226
- Credentials.new(
227
- client_id: security.o_auth2_auth.client_id,
228
- client_secret: security.o_auth2_auth.client_secret,
229
- token_url: security.o_auth2_auth.token_url,
230
- scopes: nil,
231
- additional_properties: additional_properties
232
- )
233
- end
234
-
235
-
236
- sig { params(base_url: String, token_url: String).returns(String) }
237
- def resolve_token_endpoint(base_url, token_url)
238
- parsed = URI.parse(token_url)
239
- return token_url if parsed.host
240
-
241
- base = base_url.chomp('/')
242
- URI.join("#{base}/", token_url).to_s
243
- end
244
-
245
- sig { params(token_url: String, credentials: Credentials, scopes: T::Array[String]).returns(Session) }
246
- def do_token_request(token_url, credentials, scopes)
247
- payload = {
248
- 'grant_type' => 'client_credentials',
249
- 'client_id' => credentials.client_id,
250
- 'client_secret' => credentials.client_secret
251
- }
252
-
253
- payload['scope'] = scopes.join(' ') unless scopes.empty?
254
-
255
- # Add additional properties to payload
256
- credentials.additional_properties.each do |key, value|
257
- payload[key] = value
258
- end
259
- response = @client.post(token_url) do |req|
260
- req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
261
- req.body = URI.encode_www_form(payload)
262
- end
263
-
264
- raise "Unexpected status code #{response.status} from token endpoint" unless response.status >= 200 && response.status < 300
265
-
266
- response_data = JSON.parse(response.body)
267
-
268
- raise 'Unexpected token type from token endpoint' unless response_data.fetch('token_type', '').downcase == 'bearer'
269
-
270
- expires_at = nil
271
- if response_data.key?('expires_in')
272
- expires_at = Time.now.to_i + response_data['expires_in'].to_i
273
- end
274
-
275
- Session.new(
276
- credentials: credentials,
277
- token: response_data['access_token'],
278
- scopes: scopes,
279
- expires_at: expires_at
280
- )
281
- end
282
-
283
- sig { params(client_id: String, client_secret: String).returns(String) }
284
- def get_session_key(client_id, client_secret)
285
- Digest::MD5.hexdigest("#{client_id}:#{client_secret}")
286
- end
287
-
288
- sig { params(credentials: Credentials, hook_ctx: HookContext).returns(T::Array[String]) }
289
- def get_required_scopes(credentials, hook_ctx)
290
- return T.must(credentials.scopes) unless credentials.scopes.nil?
291
-
292
- hook_ctx.oauth2_scopes || []
293
- end
294
-
295
- sig { params(scopes: T::Array[String]).returns(String) }
296
- def get_scope_key(scopes)
297
- return '' if scopes.empty?
298
-
299
- scopes.sort.join('&')
300
- end
301
-
302
- sig { params(client_key: String, scopes: T::Array[String], session: Session).void }
303
- def store_session(client_key, scopes, session)
304
- scope_key = get_scope_key(scopes)
305
- lock = get_client_lock(client_key)
306
- lock.synchronize do
307
- self.class.sessions[client_key] ||= {}
308
- self.class.sessions[client_key][scope_key] = session
309
- end
310
- end
311
-
312
- sig { params(client_key: String, scope_key: String).void }
313
- def remove_session(client_key, scope_key)
314
- lock = get_client_lock(client_key)
315
- lock.synchronize do
316
- if self.class.sessions.key?(client_key) && self.class.sessions[client_key].key?(scope_key)
317
- self.class.sessions[client_key].delete(scope_key)
318
- self.class.sessions.delete(client_key) if self.class.sessions[client_key].empty?
319
- end
320
- end
321
- end
322
-
323
- sig { params(client_key: String, required_scopes: T::Array[String]).returns(T.nilable(Session)) }
324
- def get_existing_session(client_key, required_scopes)
325
- scope_key = get_scope_key(required_scopes)
326
- expired_keys = []
327
- result = T.let(nil, T.untyped)
328
-
329
- lock = get_client_lock(client_key)
330
- lock.synchronize do
331
- return nil unless self.class.sessions.key?(client_key)
332
-
333
- client_sessions = self.class.sessions[client_key]
334
-
335
- # Check for exact scope match first
336
- if client_sessions.key?(scope_key)
337
- exact_match = client_sessions[scope_key]
338
- if token_expired?(exact_match.expires_at)
339
- expired_keys << scope_key
340
- else
341
- result = exact_match
342
- end
343
- end
344
-
345
- # If no exact match, look for a superset match
346
- if result.nil?
347
- found = T.let(false, T::Boolean)
348
- client_sessions.each do |key, session|
349
- if token_expired?(session.expires_at)
350
- expired_keys << key
351
- elsif !found && required_scopes?(session.scopes, required_scopes)
352
- result = session
353
- found = true
354
- end
355
- end
356
- end
357
-
358
- # Clean up expired sessions
359
- expired_keys.each { |key| client_sessions.delete(key) }
360
-
361
- # Clean up empty client sessions
362
- self.class.sessions.delete(client_key) if self.class.sessions.key?(client_key) && self.class.sessions[client_key].empty?
363
- end
364
-
365
- result
366
- end
367
-
368
- sig { params(scopes: T::Array[String], required_scopes: T::Array[String]).returns(T::Boolean) }
369
- def required_scopes?(scopes, required_scopes)
370
- required_scopes.all? { |scope| scopes.include?(scope) }
371
- end
372
-
373
- sig { params(expires_at: T.nilable(Integer)).returns(T::Boolean) }
374
- def token_expired?(expires_at)
375
- !expires_at.nil? && Time.now.to_i + 60 >= expires_at
376
- end
377
-
378
- sig { params(client_key: String).returns(Mutex) }
379
- def get_client_lock(client_key)
380
- self.class.global_lock.synchronize do
381
- self.class.client_locks[client_key] ||= Mutex.new
382
- end
383
- end
384
- end
385
- end
386
- end
@@ -1,18 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
- module Moov
7
- module SDKHooks
8
-
9
- # OAuth2AuthOAuth2Scope - Available scopes for the OAuth2Auth OAuth 2.0 scheme (clientCredentials flow).
10
- class OAuth2AuthOAuth2Scope < T::Enum
11
-
12
- enums do
13
- # ROOT_ACCOUNTS_WRITE
14
- ROOT_ACCOUNTS_WRITE = new('/accounts.write')
15
- end
16
- end
17
- end
18
- end