moov_ruby 26.10.0.pre.dev.1 → 26.10.0.pre.dev.3

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 (503) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +4 -4
  4. data/lib/moov/bank_accounts.rb +439 -0
  5. data/lib/moov/card_issuing.rb +117 -1
  6. data/lib/moov/client.rb +2 -2
  7. data/lib/moov/enriched_address.rb +1 -1
  8. data/lib/moov/enriched_profile.rb +1 -1
  9. data/lib/moov/images.rb +17 -2
  10. data/lib/moov/institutions.rb +2 -2
  11. data/lib/moov/models/components/account.rb +2 -2
  12. data/lib/moov/models/components/accountnameverification.rb +4 -4
  13. data/lib/moov/models/components/accounttype.rb +3 -1
  14. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  15. data/lib/moov/models/components/achcreditoptions.rb +40 -0
  16. data/lib/moov/models/components/achcreditoptions.rbi +17 -0
  17. data/lib/moov/models/components/achcredittransferprocessingdetails.rb +44 -0
  18. data/lib/moov/models/components/achcredittransferprocessingdetails.rbi +19 -0
  19. data/lib/moov/models/components/achdebitoptions.rb +48 -0
  20. data/lib/moov/models/components/achdebitoptions.rbi +21 -0
  21. data/lib/moov/models/components/achdebittransferprocessingdetails.rb +44 -0
  22. data/lib/moov/models/components/achdebittransferprocessingdetails.rbi +19 -0
  23. data/lib/moov/models/components/achreturncode.rb +3 -1
  24. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  25. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  26. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  27. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  28. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  29. data/lib/moov/models/components/amountdecimalrange.rb +0 -2
  30. data/lib/moov/models/components/amountdecimalrangeupdate.rb +0 -2
  31. data/lib/moov/models/components/applepayresponse.rb +2 -2
  32. data/lib/moov/models/components/applicationscope.rb +4 -2
  33. data/lib/moov/models/components/asynccreatedrefund.rb +7 -3
  34. data/lib/moov/models/components/asynccreatedrefund.rbi +2 -0
  35. data/lib/moov/models/components/authmethod.rb +3 -1
  36. data/lib/moov/models/components/bankaccount.rb +4 -4
  37. data/lib/moov/models/components/bankaccountattestation.rb +52 -0
  38. data/lib/moov/models/components/bankaccountattestation.rbi +23 -0
  39. data/lib/moov/models/components/bankaccountattestationeligibility.rb +36 -0
  40. data/lib/moov/models/components/bankaccountattestationeligibility.rbi +15 -0
  41. data/lib/moov/models/components/bankaccountattestationsummary.rb +44 -0
  42. data/lib/moov/models/components/bankaccountattestationsummary.rbi +19 -0
  43. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  44. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  45. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  46. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  47. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  48. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  49. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  50. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  51. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  52. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  53. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  54. data/lib/moov/models/components/billablefee.rb +2 -2
  55. data/lib/moov/models/components/billingadjustment.rb +40 -0
  56. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  57. data/lib/moov/models/components/billingsummary.rb +8 -4
  58. data/lib/moov/models/components/billingsummary.rbi +2 -0
  59. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  60. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  61. data/lib/moov/models/components/businesspresence.rb +3 -1
  62. data/lib/moov/models/components/businessprofile.rb +2 -2
  63. data/lib/moov/models/components/businesstype.rb +3 -1
  64. data/lib/moov/models/components/calltoaction.rb +3 -1
  65. data/lib/moov/models/components/cancellation.rb +2 -2
  66. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  67. data/lib/moov/models/components/capability.rb +2 -2
  68. data/lib/moov/models/components/capabilityid.rb +3 -1
  69. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  70. data/lib/moov/models/components/capture.rb +82 -0
  71. data/lib/moov/models/components/capture.rbi +37 -0
  72. data/lib/moov/models/components/{refundcardstatus.rb → capturestatus.rb} +6 -5
  73. data/lib/moov/models/components/{refundcardstatus.rbi → capturestatus.rbi} +2 -2
  74. data/lib/moov/models/components/card.rb +4 -4
  75. data/lib/moov/models/components/cardaccountupdater.rb +1 -1
  76. data/lib/moov/models/components/cardacquiringmodel.rb +3 -1
  77. data/lib/moov/models/components/cardacquiringrefund.rb +12 -8
  78. data/lib/moov/models/components/cardacquiringrefund.rbi +4 -2
  79. data/lib/moov/models/components/cardbrand.rb +3 -1
  80. data/lib/moov/models/components/cardissuing.rb +34 -0
  81. data/lib/moov/models/components/cardissuing.rbi +13 -0
  82. data/lib/moov/models/components/cardissuingerror.rb +32 -0
  83. data/lib/moov/models/components/cardissuingerror.rbi +13 -0
  84. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  85. data/lib/moov/models/components/cardmetadata.rb +4 -4
  86. data/lib/moov/models/components/cardpaymentoptions.rb +39 -0
  87. data/lib/moov/models/components/cardpaymentoptions.rbi +15 -0
  88. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +32 -0
  89. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +13 -0
  90. data/lib/moov/models/components/{cardtransactionstatus.rb → cardpaymenttransactionstatus.rb} +4 -3
  91. data/lib/moov/models/components/cardpaymenttransactionstatus.rbi +11 -0
  92. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +48 -0
  93. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +21 -0
  94. data/lib/moov/models/components/cardtransactionfailurecode.rb +19 -1
  95. data/lib/moov/models/components/cardtype.rb +3 -1
  96. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  97. data/lib/moov/models/components/cardverification.rb +3 -3
  98. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  99. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  100. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  101. data/lib/moov/models/components/createaccount.rb +2 -2
  102. data/lib/moov/models/components/createaccounttype.rb +3 -1
  103. data/lib/moov/models/components/createbankaccountattestation.rb +36 -0
  104. data/lib/moov/models/components/createbankaccountattestation.rbi +15 -0
  105. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  106. data/lib/moov/models/components/createcancellation.rb +34 -0
  107. data/lib/moov/models/components/createcancellation.rbi +13 -0
  108. data/lib/moov/models/components/createcapture.rb +68 -0
  109. data/lib/moov/models/components/createcapture.rbi +29 -0
  110. data/lib/moov/models/components/createdtransfer.rb +29 -25
  111. data/lib/moov/models/components/createdtransfer.rbi +8 -8
  112. data/lib/moov/models/components/createevidencetext.rb +1 -1
  113. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  114. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  115. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  116. data/lib/moov/models/components/createrefund.rb +9 -5
  117. data/lib/moov/models/components/createrefund.rbi +2 -0
  118. data/lib/moov/models/components/createreversal.rb +6 -3
  119. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  120. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  121. data/lib/moov/models/components/createtippresets.rb +1 -1
  122. data/lib/moov/models/components/createtransfer.rb +5 -5
  123. data/lib/moov/models/components/createtransferdestination.rb +6 -2
  124. data/lib/moov/models/components/createtransferdestination.rbi +2 -0
  125. data/lib/moov/models/components/createtransferdestinationwire.rb +32 -0
  126. data/lib/moov/models/components/createtransferdestinationwire.rbi +13 -0
  127. data/lib/moov/models/components/createtransferfacilitatorfee.rb +36 -0
  128. data/lib/moov/models/components/createtransferfacilitatorfee.rbi +15 -0
  129. data/lib/moov/models/components/createtransferoptions.rb +2 -2
  130. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  131. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  132. data/lib/moov/models/components/createwebhook.rb +1 -1
  133. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  134. data/lib/moov/models/components/depositaccountingestedresponse.rb +1 -1
  135. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  136. data/lib/moov/models/components/dispute.rb +2 -2
  137. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  138. data/lib/moov/models/components/disputephase.rb +3 -1
  139. data/lib/moov/models/components/disputestatus.rb +3 -1
  140. data/lib/moov/models/components/document.rb +1 -1
  141. data/lib/moov/models/components/documenttype.rb +3 -1
  142. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  143. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  144. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  145. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  146. data/lib/moov/models/components/evidencetype.rb +3 -1
  147. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  148. data/lib/moov/models/components/facilitatorfee.rb +6 -17
  149. data/lib/moov/models/components/facilitatorfee.rbi +0 -4
  150. data/lib/moov/models/components/feecategory.rb +3 -1
  151. data/lib/moov/models/components/feemodel.rb +3 -1
  152. data/lib/moov/models/components/feepaidby.rb +4 -2
  153. data/lib/moov/models/components/feeplan.rb +1 -1
  154. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  155. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  156. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  157. data/lib/moov/models/components/filedetails.rb +2 -2
  158. data/lib/moov/models/components/filepurpose.rb +3 -1
  159. data/lib/moov/models/components/filestatus.rb +3 -1
  160. data/lib/moov/models/components/fulfillment.rb +2 -2
  161. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  162. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  163. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  164. data/lib/moov/models/components/fullissuedcard.rb +6 -5
  165. data/lib/moov/models/components/geographicreach.rb +3 -1
  166. data/lib/moov/models/components/googlepayresponse.rb +3 -3
  167. data/lib/moov/models/components/incurredfee.rb +1 -1
  168. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +48 -0
  169. data/lib/moov/models/components/{instantbanktransactiondetails.rbi → instantbankcredittransferprocessingdetails.rbi} +4 -12
  170. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  171. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  172. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  173. data/lib/moov/models/components/invoice.rb +1 -1
  174. data/lib/moov/models/components/invoicepayment.rb +1 -1
  175. data/lib/moov/models/components/invoicepaymenttype.rb +3 -1
  176. data/lib/moov/models/components/invoicestatus.rb +3 -1
  177. data/lib/moov/models/components/issuedcard.rb +6 -5
  178. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  179. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  180. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  181. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  182. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  183. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  184. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  185. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  186. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  187. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  188. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  189. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  190. data/lib/moov/models/components/issuingcontrols.rb +19 -3
  191. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  192. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  193. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  194. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  195. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  196. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +21 -0
  197. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  198. data/lib/moov/models/components/issuingintervallimit.rb +6 -1
  199. data/lib/moov/models/components/issuingmerchantcategory.rb +45 -0
  200. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  201. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  202. data/lib/moov/models/components/{cardtransactionstatus.rbi → issuingscheduleday.rbi} +2 -2
  203. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  204. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  205. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  206. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  207. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  208. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  209. data/lib/moov/models/components/linkedgooglepaypaymentmethod.rb +1 -1
  210. data/lib/moov/models/components/merchantcategories.rb +32 -0
  211. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  212. data/lib/moov/models/components/merchantcategory.rb +37 -0
  213. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  214. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  215. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  216. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  217. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  218. data/lib/moov/models/components/merchantentry.rb +40 -0
  219. data/lib/moov/models/components/merchantentry.rbi +17 -0
  220. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  221. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  222. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  223. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  224. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  225. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  226. data/lib/moov/models/components/mode.rb +3 -1
  227. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  228. data/lib/moov/models/components/moovfee.rb +1 -1
  229. data/lib/moov/models/components/moovfeedetails.rb +5 -5
  230. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  231. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  232. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  233. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  234. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  235. data/lib/moov/models/components/patchbusiness.rb +2 -2
  236. data/lib/moov/models/components/patchwallet.rb +1 -1
  237. data/lib/moov/models/components/paymentlink.rb +4 -6
  238. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetails.rb +0 -2
  239. data/lib/moov/models/components/paymentlinkcustomamountpaymentdetailsupdate.rb +0 -2
  240. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  241. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  242. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +5 -7
  243. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +5 -7
  244. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  245. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  246. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  247. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  248. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  249. data/lib/moov/models/components/paymentmethodtype.rb +4 -1
  250. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  251. data/lib/moov/models/components/primaryregulator.rb +3 -1
  252. data/lib/moov/models/components/pullfromcardoptions.rb +39 -0
  253. data/lib/moov/models/components/pullfromcardoptions.rbi +15 -0
  254. data/lib/moov/models/components/pullfromcardtransactionstatus.rb +22 -0
  255. data/lib/moov/models/components/pullfromcardtransactionstatus.rbi +11 -0
  256. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +48 -0
  257. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +21 -0
  258. data/lib/moov/models/components/pushdeliveryspeed.rb +3 -1
  259. data/lib/moov/models/components/pushoptions.rb +5 -4
  260. data/lib/moov/models/components/pushoptionsupdate.rb +5 -4
  261. data/lib/moov/models/components/pushtocardoptions.rb +32 -0
  262. data/lib/moov/models/components/pushtocardoptions.rbi +13 -0
  263. data/lib/moov/models/components/pushtocardtransactionstatus.rb +24 -0
  264. data/lib/moov/models/components/pushtocardtransactionstatus.rbi +11 -0
  265. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +48 -0
  266. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +21 -0
  267. data/lib/moov/models/components/puttippresets.rb +1 -1
  268. data/lib/moov/models/components/refundpolicy.rb +3 -1
  269. data/lib/moov/models/components/refundprocessingdetails.rb +32 -0
  270. data/lib/moov/models/components/refundprocessingdetails.rbi +13 -0
  271. data/lib/moov/models/components/refundstatus.rb +3 -1
  272. data/lib/moov/models/components/requestcard.rb +1 -1
  273. data/lib/moov/models/components/requirementerror.rb +2 -2
  274. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  275. data/lib/moov/models/components/requirementid.rb +18 -1
  276. data/lib/moov/models/components/resolutionlink.rb +1 -1
  277. data/lib/moov/models/components/resolutionlinkstatus.rb +3 -1
  278. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  279. data/lib/moov/models/components/reversalamountdetails.rb +3 -1
  280. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  281. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  282. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  283. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  284. data/lib/moov/models/components/schedulewindow.rb +40 -0
  285. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  286. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  287. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  288. data/lib/moov/models/components/seccode.rb +3 -1
  289. data/lib/moov/models/components/sendfunds.rb +6 -2
  290. data/lib/moov/models/components/sendfunds.rbi +2 -0
  291. data/lib/moov/models/components/sendfundserror.rb +6 -2
  292. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  293. data/lib/moov/models/components/sendfundswire.rb +32 -0
  294. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  295. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  296. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  297. data/lib/moov/models/components/sourcesystem.rb +3 -1
  298. data/lib/moov/models/components/statement.rb +6 -2
  299. data/lib/moov/models/components/statement.rbi +2 -0
  300. data/lib/moov/models/components/sweep.rb +1 -1
  301. data/lib/moov/models/components/sweepconfig.rb +3 -3
  302. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  303. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  304. data/lib/moov/models/components/sweepstatus.rb +3 -1
  305. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  306. data/lib/moov/models/components/terminalapplication.rb +2 -2
  307. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  308. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  309. data/lib/moov/models/components/terminalcard.rb +2 -2
  310. data/lib/moov/models/components/ticket.rb +1 -1
  311. data/lib/moov/models/components/ticketstatus.rb +3 -1
  312. data/lib/moov/models/components/tipcalculationbasis.rb +3 -1
  313. data/lib/moov/models/components/tippresets.rb +1 -1
  314. data/lib/moov/models/components/transactionsource.rb +3 -1
  315. data/lib/moov/models/components/transfer.rb +28 -24
  316. data/lib/moov/models/components/transfer.rbi +8 -8
  317. data/lib/moov/models/components/transferauthorization.rb +52 -0
  318. data/lib/moov/models/components/transferauthorization.rbi +23 -0
  319. data/lib/moov/models/components/transferdestination.rb +5 -17
  320. data/lib/moov/models/components/transferdestination.rbi +0 -6
  321. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  322. data/lib/moov/models/components/transferfeepaidby.rb +2 -2
  323. data/lib/moov/models/components/transferoptions.rb +3 -3
  324. data/lib/moov/models/components/transferparty.rb +3 -1
  325. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  326. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  327. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  328. data/lib/moov/models/components/transferpaymentmethodtype.rb +4 -1
  329. data/lib/moov/models/components/transferprocessingdetails.rb +56 -0
  330. data/lib/moov/models/components/transferprocessingdetails.rbi +25 -0
  331. data/lib/moov/models/components/transferrailoptions.rb +52 -0
  332. data/lib/moov/models/components/transferrailoptions.rbi +23 -0
  333. data/lib/moov/models/components/transfersource.rb +9 -17
  334. data/lib/moov/models/components/transfersource.rbi +2 -6
  335. data/lib/moov/models/components/transferstatus.rb +4 -1
  336. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  337. data/lib/moov/models/components/transfertype.rb +28 -0
  338. data/lib/moov/models/components/transfertype.rbi +11 -0
  339. data/lib/moov/models/components/underwriting.rb +12 -6
  340. data/lib/moov/models/components/underwriting.rbi +2 -0
  341. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  342. data/lib/moov/models/components/updateevidence.rb +1 -1
  343. data/lib/moov/models/components/updateinvoice.rb +1 -1
  344. data/lib/moov/models/components/updateissuedcard.rb +8 -2
  345. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  346. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  347. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  348. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  349. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  350. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  351. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  352. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  353. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  354. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  355. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  356. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  357. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  358. data/lib/moov/models/components/updatewebhook.rb +1 -1
  359. data/lib/moov/models/components/upsertunderwriting.rb +11 -5
  360. data/lib/moov/models/components/upsertunderwriting.rbi +2 -0
  361. data/lib/moov/models/components/use.rb +3 -1
  362. data/lib/moov/models/components/verification.rb +3 -3
  363. data/lib/moov/models/components/verificationstatus.rb +3 -1
  364. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  365. data/lib/moov/models/components/wallet.rb +3 -2
  366. data/lib/moov/models/components/walletstatus.rb +3 -1
  367. data/lib/moov/models/components/wallettransaction.rb +3 -3
  368. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  369. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  370. data/lib/moov/models/components/wallettransactiontype.rb +4 -1
  371. data/lib/moov/models/components/wallettype.rb +5 -1
  372. data/lib/moov/models/components/webhook.rb +1 -1
  373. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  374. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  375. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  376. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  377. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  378. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  379. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  380. data/lib/moov/models/components/webhookdatacaptureupdated.rb +44 -0
  381. data/lib/moov/models/components/webhookdatacaptureupdated.rbi +19 -0
  382. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  383. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  384. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  385. data/lib/moov/models/components/webhookdatainvoiceupdated.rb +1 -1
  386. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  387. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  388. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  389. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  390. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  391. data/lib/moov/models/components/webhookdatatransferstatus.rb +4 -0
  392. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  393. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  394. data/lib/moov/models/components/webhookevent.rb +3 -3
  395. data/lib/moov/models/components/webhookeventtype.rb +4 -1
  396. data/lib/moov/models/components/webhookstatus.rb +3 -1
  397. data/lib/moov/models/components/wirecreditpaymentmethod.rb +40 -0
  398. data/lib/moov/models/components/wirecreditpaymentmethod.rbi +17 -0
  399. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rb +18 -0
  400. data/lib/moov/models/components/wirecreditpaymentmethod_paymentmethodtype.rbi +11 -0
  401. data/lib/moov/models/components/wirecredittransferpaymentmethod.rb +40 -0
  402. data/lib/moov/models/components/wirecredittransferpaymentmethod.rbi +17 -0
  403. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  404. data/lib/moov/models/components/wirecredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  405. data/lib/moov/models/components/wirefailurecode.rb +28 -0
  406. data/lib/moov/models/components/wirefailurecode.rbi +11 -0
  407. data/lib/moov/models/components/wireoptions.rb +32 -0
  408. data/lib/moov/models/components/wireoptions.rbi +13 -0
  409. data/lib/moov/models/components/wiretransactionstatus.rb +23 -0
  410. data/lib/moov/models/components/wiretransactionstatus.rbi +11 -0
  411. data/lib/moov/models/components/wiretransferprocessingdetails.rb +40 -0
  412. data/lib/moov/models/components/wiretransferprocessingdetails.rbi +17 -0
  413. data/lib/moov/models/components.rb +69 -8
  414. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rb +40 -0
  415. data/lib/moov/models/errors/bankaccountattestationvalidationerror.rbi +17 -0
  416. data/lib/moov/models/errors/capturevalidationerror.rb +68 -0
  417. data/lib/moov/models/errors/capturevalidationerror.rbi +31 -0
  418. data/lib/moov/models/errors/cardacquiringrefund_error.rb +12 -8
  419. data/lib/moov/models/errors/cardacquiringrefund_error.rbi +4 -2
  420. data/lib/moov/models/errors/imagemetadata_error.rb +61 -0
  421. data/lib/moov/models/errors/imagemetadata_error.rbi +27 -0
  422. data/lib/moov/models/errors/transfer_error.rb +28 -24
  423. data/lib/moov/models/errors/transfer_error.rbi +8 -8
  424. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  425. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  426. data/lib/moov/models/errors/upsertunderwritingerror.rb +6 -2
  427. data/lib/moov/models/errors/upsertunderwritingerror.rbi +2 -0
  428. data/lib/moov/models/errors.rb +3 -0
  429. data/lib/moov/models/operations/createbankaccountattestation_request.rb +40 -0
  430. data/lib/moov/models/operations/createbankaccountattestation_request.rbi +17 -0
  431. data/lib/moov/models/operations/createbankaccountattestation_response.rb +48 -0
  432. data/lib/moov/models/operations/createbankaccountattestation_response.rbi +21 -0
  433. data/lib/moov/models/operations/createcancellation_request.rb +6 -2
  434. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  435. data/lib/moov/models/operations/createcapture_request.rb +44 -0
  436. data/lib/moov/models/operations/createcapture_request.rbi +19 -0
  437. data/lib/moov/models/operations/createcapture_response.rb +48 -0
  438. data/lib/moov/models/operations/createcapture_response.rbi +21 -0
  439. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  440. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rb +41 -0
  441. data/lib/moov/models/operations/getbankaccountattestationeligibility_request.rbi +17 -0
  442. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rb +48 -0
  443. data/lib/moov/models/operations/getbankaccountattestationeligibility_response.rbi +21 -0
  444. data/lib/moov/models/operations/getcapture_request.rb +40 -0
  445. data/lib/moov/models/operations/getcapture_request.rbi +17 -0
  446. data/lib/moov/models/operations/getcapture_response.rb +48 -0
  447. data/lib/moov/models/operations/getcapture_response.rbi +21 -0
  448. data/lib/moov/models/operations/getpaymentmethod_response.rb +2 -2
  449. data/lib/moov/models/operations/initiaterefund_request.rb +6 -6
  450. data/lib/moov/models/operations/initiaterefund_request.rbi +2 -2
  451. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  452. data/lib/moov/models/operations/listbankaccountattestations_request.rb +36 -0
  453. data/lib/moov/models/operations/listbankaccountattestations_request.rbi +15 -0
  454. data/lib/moov/models/operations/listbankaccountattestations_response.rb +48 -0
  455. data/lib/moov/models/operations/listbankaccountattestations_response.rbi +21 -0
  456. data/lib/moov/models/operations/listcaptures_request.rb +36 -0
  457. data/lib/moov/models/operations/listcaptures_request.rbi +15 -0
  458. data/lib/moov/models/operations/listcaptures_response.rb +48 -0
  459. data/lib/moov/models/operations/listcaptures_response.rbi +21 -0
  460. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  461. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  462. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  463. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  464. data/lib/moov/models/operations/listinvoices_request.rb +1 -1
  465. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  466. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  467. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  468. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  469. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  470. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  471. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  472. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  473. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  474. data/lib/moov/models/operations/listpaymentmethods_response.rb +2 -2
  475. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  476. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  477. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  478. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  479. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  480. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  481. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  482. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  483. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  484. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  485. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  486. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  487. data/lib/moov/models/operations.rb +13 -0
  488. data/lib/moov/payment_methods.rb +2 -2
  489. data/lib/moov/sdkconfiguration.rb +3 -3
  490. data/lib/moov/transfers.rb +446 -10
  491. data/lib/moov/utils/retries.rb +41 -2
  492. data/lib/moov/utils/utils.rb +6 -2
  493. data/lib/moov_ruby.rb +1 -1
  494. metadata +170 -16
  495. data/lib/moov/models/components/achtransactiondetails.rb +0 -92
  496. data/lib/moov/models/components/achtransactiondetails.rbi +0 -43
  497. data/lib/moov/models/components/cardacquiringdispute.rb +0 -40
  498. data/lib/moov/models/components/cardacquiringdispute.rbi +0 -17
  499. data/lib/moov/models/components/cardtransactiondetails.rb +0 -93
  500. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -41
  501. data/lib/moov/models/components/instantbanktransactiondetails.rb +0 -64
  502. data/lib/moov/models/components/refundcarddetails.rb +0 -56
  503. data/lib/moov/models/components/refundcarddetails.rbi +0 -25
@@ -0,0 +1,52 @@
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 Components
10
+
11
+ class TransferRailOptions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :card_payment, Crystalline::Nilable.new(Models::Components::CardPaymentOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardPayment') } }
17
+
18
+ field :push_to_card, Crystalline::Nilable.new(Models::Components::PushToCardOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushToCard') } }
19
+
20
+ field :pull_from_card, Crystalline::Nilable.new(Models::Components::PullFromCardOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pullFromCard') } }
21
+
22
+ field :ach_debit, Crystalline::Nilable.new(Models::Components::ACHDebitOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
+
24
+ field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+ # Wire-specific options returned on a transfer.
26
+ field :wire, Crystalline::Nilable.new(Models::Components::WireOptions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('wire') } }
27
+
28
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentOptions), push_to_card: T.nilable(Models::Components::PushToCardOptions), pull_from_card: T.nilable(Models::Components::PullFromCardOptions), ach_debit: T.nilable(Models::Components::ACHDebitOptions), ach_credit: T.nilable(Models::Components::ACHCreditOptions), wire: T.nilable(Models::Components::WireOptions)).void }
29
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, wire: nil)
30
+ @card_payment = card_payment
31
+ @push_to_card = push_to_card
32
+ @pull_from_card = pull_from_card
33
+ @ach_debit = ach_debit
34
+ @ach_credit = ach_credit
35
+ @wire = wire
36
+ end
37
+
38
+ sig { params(other: T.untyped).returns(T::Boolean) }
39
+ def ==(other)
40
+ return false unless other.is_a? self.class
41
+ return false unless @card_payment == other.card_payment
42
+ return false unless @push_to_card == other.push_to_card
43
+ return false unless @pull_from_card == other.pull_from_card
44
+ return false unless @ach_debit == other.ach_debit
45
+ return false unless @ach_credit == other.ach_credit
46
+ return false unless @wire == other.wire
47
+ true
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferRailOptions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferRailOptions
11
+ def card_payment(); end
12
+ def card_payment=(str_); end
13
+ def push_to_card(); end
14
+ def push_to_card=(str_); end
15
+ def pull_from_card(); end
16
+ def pull_from_card=(str_); end
17
+ def ach_debit(); end
18
+ def ach_debit=(str_); end
19
+ def ach_credit(); end
20
+ def ach_credit=(str_); end
21
+ def wire(); end
22
+ def wire=(str_); end
23
+ end
@@ -12,14 +12,14 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
+ # String present only if the transfer is part of a transfer group.
16
+ field :transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID') } }
15
17
 
16
- field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
18
+ field :payment_method_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID') } }
17
19
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::TransferPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferPaymentMethodType, false) } }
20
+ field :payment_method_type, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferPaymentMethodType, true) } }
19
21
 
20
- field :account, Models::Components::TransferAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account'), required: true } }
21
- # String present only if the transfer is part of a transfer group.
22
- field :transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferID') } }
22
+ field :account, Crystalline::Nilable.new(Models::Components::TransferAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('account') } }
23
23
  # A bank account as contained within a payment method.
24
24
  field :bank_account, Crystalline::Nilable.new(Models::Components::TransferPaymentMethodsBankAccount), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount') } }
25
25
 
@@ -32,42 +32,34 @@ module Moov
32
32
  field :google_pay, Crystalline::Nilable.new(Models::Components::GooglePayResponse), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('googlePay') } }
33
33
  # Describes payment card details captured with tap or in-person payment.
34
34
  field :terminal_card, Crystalline::Nilable.new(Models::Components::TransferTerminalCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('terminalCard') } }
35
- # Card-specific details about the transaction.
36
- field :card_details, Crystalline::Nilable.new(Models::Components::CardTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardDetails') } }
37
- # ACH specific details about the transaction.
38
- field :ach_details, Crystalline::Nilable.new(Models::Components::ACHTransactionDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDetails') } }
39
35
 
40
- sig { params(payment_method_id: ::String, payment_method_type: Models::Components::TransferPaymentMethodType, account: Models::Components::TransferAccount, transfer_id: T.nilable(::String), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), terminal_card: T.nilable(Models::Components::TransferTerminalCard), card_details: T.nilable(Models::Components::CardTransactionDetails), ach_details: T.nilable(Models::Components::ACHTransactionDetails)).void }
41
- def initialize(payment_method_id:, payment_method_type:, account:, transfer_id: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, google_pay: nil, terminal_card: nil, card_details: nil, ach_details: nil)
36
+ sig { params(transfer_id: T.nilable(::String), payment_method_id: T.nilable(::String), payment_method_type: T.nilable(Models::Components::TransferPaymentMethodType), account: T.nilable(Models::Components::TransferAccount), bank_account: T.nilable(Models::Components::TransferPaymentMethodsBankAccount), wallet: T.nilable(Models::Components::TransferPaymentMethodsWallet), card: T.nilable(Models::Components::TransferPaymentMethodsCard), apple_pay: T.nilable(Models::Components::ApplePayResponse), google_pay: T.nilable(Models::Components::GooglePayResponse), terminal_card: T.nilable(Models::Components::TransferTerminalCard)).void }
37
+ def initialize(transfer_id: nil, payment_method_id: nil, payment_method_type: nil, account: nil, bank_account: nil, wallet: nil, card: nil, apple_pay: nil, google_pay: nil, terminal_card: nil)
38
+ @transfer_id = transfer_id
42
39
  @payment_method_id = payment_method_id
43
40
  @payment_method_type = payment_method_type
44
41
  @account = account
45
- @transfer_id = transfer_id
46
42
  @bank_account = bank_account
47
43
  @wallet = wallet
48
44
  @card = card
49
45
  @apple_pay = apple_pay
50
46
  @google_pay = google_pay
51
47
  @terminal_card = terminal_card
52
- @card_details = card_details
53
- @ach_details = ach_details
54
48
  end
55
49
 
56
50
  sig { params(other: T.untyped).returns(T::Boolean) }
57
51
  def ==(other)
58
52
  return false unless other.is_a? self.class
53
+ return false unless @transfer_id == other.transfer_id
59
54
  return false unless @payment_method_id == other.payment_method_id
60
55
  return false unless @payment_method_type == other.payment_method_type
61
56
  return false unless @account == other.account
62
- return false unless @transfer_id == other.transfer_id
63
57
  return false unless @bank_account == other.bank_account
64
58
  return false unless @wallet == other.wallet
65
59
  return false unless @card == other.card
66
60
  return false unless @apple_pay == other.apple_pay
67
61
  return false unless @google_pay == other.google_pay
68
62
  return false unless @terminal_card == other.terminal_card
69
- return false unless @card_details == other.card_details
70
- return false unless @ach_details == other.ach_details
71
63
  true
72
64
  end
73
65
  end
@@ -8,14 +8,14 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::TransferSource
11
+ def transfer_id(); end
12
+ def transfer_id=(str_); end
11
13
  def payment_method_id(); end
12
14
  def payment_method_id=(str_); end
13
15
  def payment_method_type(); end
14
16
  def payment_method_type=(str_); end
15
17
  def account(); end
16
18
  def account=(str_); end
17
- def transfer_id(); end
18
- def transfer_id=(str_); end
19
19
  def bank_account(); end
20
20
  def bank_account=(str_); end
21
21
  def wallet(); end
@@ -28,8 +28,4 @@ class Moov::Models::Components::TransferSource
28
28
  def google_pay=(str_); end
29
29
  def terminal_card(); end
30
30
  def terminal_card=(str_); end
31
- def card_details(); end
32
- def card_details=(str_); end
33
- def ach_details(); end
34
- def ach_details=(str_); end
35
31
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # TransferStatus - Status of a transfer.
11
- class TransferStatus < T::Enum
11
+ class TransferStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  CREATED = new('created')
14
15
  PENDING = new('pending')
@@ -16,8 +17,10 @@ module Moov
16
17
  FAILED = new('failed')
17
18
  REVERSED = new('reversed')
18
19
  QUEUED = new('queued')
20
+ AWAITING_CAPTURE = new('awaiting-capture')
19
21
  CANCELED = new('canceled')
20
22
  end
23
+ open!
21
24
  end
22
25
  end
23
26
  end
@@ -15,11 +15,11 @@ module Moov
15
15
  # How the card information was entered into the point of sale terminal.
16
16
  field :entry_mode, Crystalline::Nilable.new(Models::Components::TransferEntryMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('entryMode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferEntryMode, true) } }
17
17
  # The card brand.
18
- field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, true) } }
18
+ field :brand, Crystalline::Nilable.new(Models::Components::CardBrand), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, true) } }
19
19
 
20
20
  field :bin, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin') } }
21
21
  # The type of the card.
22
- field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, true) } }
22
+ field :card_type, Crystalline::Nilable.new(Models::Components::CardType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardType, true) } }
23
23
  # The expiration date of the card or token.
24
24
  field :expiration, Crystalline::Nilable.new(Models::Components::CardExpiration), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiration') } }
25
25
  # Uniquely identifies a linked payment card or token.
@@ -0,0 +1,28 @@
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 Components
10
+ # TransferType - The rail and direction used to move funds for a transfer.
11
+ class TransferType
12
+ include ::Crystalline::Enum
13
+ enums do
14
+ CARD_PAYMENT = new('card-payment')
15
+ PUSH_TO_CARD = new('push-to-card')
16
+ PULL_FROM_CARD = new('pull-from-card')
17
+ ACH_DEBIT = new('ach-debit')
18
+ ACH_CREDIT = new('ach-credit')
19
+ ACH_DEBIT_TO_ACH_CREDIT = new('ach-debit-to-ach-credit')
20
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
21
+ WALLET = new('wallet')
22
+ WIRE_CREDIT = new('wire-credit')
23
+ end
24
+ open!
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::TransferType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferType
11
+ end
@@ -19,7 +19,7 @@ module Moov
19
19
 
20
20
  field :average_monthly_transaction_volume, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('averageMonthlyTransactionVolume') } }
21
21
  # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
22
- field :status, Crystalline::Nilable.new(Models::Components::UnderwritingStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::UnderwritingStatus, true) } }
22
+ field :status, Crystalline::Nilable.new(Models::Components::UnderwritingStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::UnderwritingStatus, true) } }
23
23
 
24
24
  field :volume_by_customer_type, Crystalline::Nilable.new(Models::Components::VolumeByCustomerType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeByCustomerType') } }
25
25
 
@@ -27,11 +27,11 @@ module Moov
27
27
 
28
28
  field :fulfillment, Crystalline::Nilable.new(Models::Components::FulfillmentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fulfillment') } }
29
29
 
30
- field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::GeographicReach, true) } }
30
+ field :geographic_reach, Crystalline::Nilable.new(Models::Components::GeographicReach), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('geographicReach'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::GeographicReach, true) } }
31
31
 
32
- field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BusinessPresence, true) } }
32
+ field :business_presence, Crystalline::Nilable.new(Models::Components::BusinessPresence), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessPresence'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BusinessPresence, true) } }
33
33
 
34
- field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PendingLitigation, true) } }
34
+ field :pending_litigation, Crystalline::Nilable.new(Models::Components::PendingLitigation), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pendingLitigation'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PendingLitigation, true) } }
35
35
 
36
36
  field :volume_share_by_customer_type, Crystalline::Nilable.new(Models::Components::VolumeShareByCustomerType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('volumeShareByCustomerType') } }
37
37
 
@@ -40,9 +40,13 @@ module Moov
40
40
  field :money_transfer, Crystalline::Nilable.new(Models::Components::MoneyTransfer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moneyTransfer') } }
41
41
 
42
42
  field :send_funds, Crystalline::Nilable.new(Models::Components::SendFunds), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('sendFunds') } }
43
+ # Underwriting data for the `card-issuing` capability.
44
+ #
45
+ # Issued cards are funded from the account's card-issuing wallet before they can be spent, so estimated activity is the only data collected.
46
+ field :card_issuing, Crystalline::Nilable.new(Models::Components::CardIssuing), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardIssuing') } }
43
47
 
44
- sig { params(average_transaction_size: T.nilable(::Integer), max_transaction_size: T.nilable(::Integer), average_monthly_transaction_volume: T.nilable(::Integer), status: T.nilable(Models::Components::UnderwritingStatus), volume_by_customer_type: T.nilable(Models::Components::VolumeByCustomerType), card_volume_distribution: T.nilable(Models::Components::CardVolumeDistribution), fulfillment: T.nilable(Models::Components::FulfillmentDetails), geographic_reach: T.nilable(Models::Components::GeographicReach), business_presence: T.nilable(Models::Components::BusinessPresence), pending_litigation: T.nilable(Models::Components::PendingLitigation), volume_share_by_customer_type: T.nilable(Models::Components::VolumeShareByCustomerType), collect_funds: T.nilable(Models::Components::CollectFunds), money_transfer: T.nilable(Models::Components::MoneyTransfer), send_funds: T.nilable(Models::Components::SendFunds)).void }
45
- def initialize(average_transaction_size: nil, max_transaction_size: nil, average_monthly_transaction_volume: nil, status: nil, volume_by_customer_type: nil, card_volume_distribution: nil, fulfillment: nil, geographic_reach: nil, business_presence: nil, pending_litigation: nil, volume_share_by_customer_type: nil, collect_funds: nil, money_transfer: nil, send_funds: nil)
48
+ sig { params(average_transaction_size: T.nilable(::Integer), max_transaction_size: T.nilable(::Integer), average_monthly_transaction_volume: T.nilable(::Integer), status: T.nilable(Models::Components::UnderwritingStatus), volume_by_customer_type: T.nilable(Models::Components::VolumeByCustomerType), card_volume_distribution: T.nilable(Models::Components::CardVolumeDistribution), fulfillment: T.nilable(Models::Components::FulfillmentDetails), geographic_reach: T.nilable(Models::Components::GeographicReach), business_presence: T.nilable(Models::Components::BusinessPresence), pending_litigation: T.nilable(Models::Components::PendingLitigation), volume_share_by_customer_type: T.nilable(Models::Components::VolumeShareByCustomerType), collect_funds: T.nilable(Models::Components::CollectFunds), money_transfer: T.nilable(Models::Components::MoneyTransfer), send_funds: T.nilable(Models::Components::SendFunds), card_issuing: T.nilable(Models::Components::CardIssuing)).void }
49
+ def initialize(average_transaction_size: nil, max_transaction_size: nil, average_monthly_transaction_volume: nil, status: nil, volume_by_customer_type: nil, card_volume_distribution: nil, fulfillment: nil, geographic_reach: nil, business_presence: nil, pending_litigation: nil, volume_share_by_customer_type: nil, collect_funds: nil, money_transfer: nil, send_funds: nil, card_issuing: nil)
46
50
  @average_transaction_size = average_transaction_size
47
51
  @max_transaction_size = max_transaction_size
48
52
  @average_monthly_transaction_volume = average_monthly_transaction_volume
@@ -57,6 +61,7 @@ module Moov
57
61
  @collect_funds = collect_funds
58
62
  @money_transfer = money_transfer
59
63
  @send_funds = send_funds
64
+ @card_issuing = card_issuing
60
65
  end
61
66
 
62
67
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -76,6 +81,7 @@ module Moov
76
81
  return false unless @collect_funds == other.collect_funds
77
82
  return false unless @money_transfer == other.money_transfer
78
83
  return false unless @send_funds == other.send_funds
84
+ return false unless @card_issuing == other.card_issuing
79
85
  true
80
86
  end
81
87
  end
@@ -36,4 +36,6 @@ class Moov::Models::Components::Underwriting
36
36
  def money_transfer=(str_); end
37
37
  def send_funds(); end
38
38
  def send_funds=(str_); end
39
+ def card_issuing(); end
40
+ def card_issuing=(str_); end
39
41
  end
@@ -10,7 +10,8 @@ module Moov
10
10
  # UnderwritingStatus
11
11
  #
12
12
  # @deprecated class: This will be removed in a future release, please migrate away from it as soon as possible.
13
- class UnderwritingStatus < T::Enum
13
+ class UnderwritingStatus
14
+ include ::Crystalline::Enum
14
15
  enums do
15
16
  APPROVED = new('approved')
16
17
  REJECTED = new('rejected')
@@ -18,6 +19,7 @@ module Moov
18
19
  PENDING = new('pending')
19
20
  NOT_REQUESTED = new('notRequested')
20
21
  end
22
+ open!
21
23
  end
22
24
  end
23
25
  end
@@ -13,7 +13,7 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :evidence_type, Crystalline::Nilable.new(Models::Components::EvidenceType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::EvidenceType, true) } }
16
+ field :evidence_type, Crystalline::Nilable.new(Models::Components::EvidenceType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('evidenceType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::EvidenceType, true) } }
17
17
  # If updating text evidence, the new text to associate with the dispute.
18
18
  field :text, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('text') } }
19
19
 
@@ -22,7 +22,7 @@ module Moov
22
22
  # Canceled invoices still appear in list results by default and remain part of the invoice history.
23
23
  # To completely discard an invoice created by mistake, use the delete endpoint instead.
24
24
  # - `unpaid`: Can only be set if the current status is `draft`. Setting the status to `unpaid` finalizes the invoice and sends an email with a payment link to the customer.
25
- field :status, Crystalline::Nilable.new(Models::Components::InvoiceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InvoiceStatus, true) } }
25
+ field :status, Crystalline::Nilable.new(Models::Components::InvoiceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::InvoiceStatus, true) } }
26
26
 
27
27
  field :amount_details, Crystalline::Nilable.new(Models::Components::AmountDetailsUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
28
28
 
@@ -13,8 +13,12 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Updates the state of a Moov issued card.
16
+ # - `active`: Reactivates a frozen card so it can approve authorizations again.
17
+ # - `frozen`: Temporarily suspends the card so it cannot approve authorizations. A card can be moved between `frozen` and `active` at will until it is `closed`, which is a terminal state.
16
18
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
17
19
  field :state, Crystalline::Nilable.new(Models::Components::UpdateIssuedCardState), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::UpdateIssuedCardState, true) } }
20
+ # Mutable spend controls for the card.
21
+ field :controls, Crystalline::Nilable.new(Models::Components::UpdateIssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
18
22
 
19
23
  field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
20
24
 
@@ -22,9 +26,10 @@ module Moov
22
26
 
23
27
  field :billing_address, Crystalline::Nilable.new(Models::Components::BillingAddress), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
24
28
 
25
- sig { params(state: T.nilable(Models::Components::UpdateIssuedCardState), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::BillingAddress)).void }
26
- def initialize(state: nil, nickname: nil, metadata: nil, billing_address: nil)
29
+ sig { params(state: T.nilable(Models::Components::UpdateIssuedCardState), controls: T.nilable(Models::Components::UpdateIssuingControls), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::BillingAddress)).void }
30
+ def initialize(state: nil, controls: nil, nickname: nil, metadata: nil, billing_address: nil)
27
31
  @state = state
32
+ @controls = controls
28
33
  @nickname = nickname
29
34
  @metadata = metadata
30
35
  @billing_address = billing_address
@@ -34,6 +39,7 @@ module Moov
34
39
  def ==(other)
35
40
  return false unless other.is_a? self.class
36
41
  return false unless @state == other.state
42
+ return false unless @controls == other.controls
37
43
  return false unless @nickname == other.nickname
38
44
  return false unless @metadata == other.metadata
39
45
  return false unless @billing_address == other.billing_address
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::UpdateIssuedCard
11
11
  def state(); end
12
12
  def state=(str_); end
13
+ def controls(); end
14
+ def controls=(str_); end
13
15
  def nickname(); end
14
16
  def nickname=(str_); end
15
17
  def metadata(); end
@@ -8,9 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # UpdateIssuedCardState - Updates the state of a Moov issued card.
11
+ # - `active`: Reactivates a frozen card so it can approve authorizations again.
12
+ # - `frozen`: Temporarily suspends the card so it cannot approve authorizations. A card can be moved between `frozen` and `active` at will until it is `closed`, which is a terminal state.
11
13
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
12
14
  class UpdateIssuedCardState < T::Enum
13
15
  enums do
16
+ ACTIVE = new('active')
17
+ FROZEN = new('frozen')
14
18
  CLOSED = new('closed')
15
19
  end
16
20
  end
@@ -0,0 +1,48 @@
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 Components
10
+ # Each field replaces the entire corresponding value.
11
+ class UpdateIssuingControls
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Replaces the entire set of velocity limits. Send an empty array to clear all limits.
16
+ field :velocity_limits, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::IssuingVelocityLimit)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('velocityLimits') } }
17
+ # Restricts card usage by merchant category. Set to `null` to remove all category restrictions.
18
+ field :merchant_category_restrictions, Crystalline::Nilable.new(Models::Components::UpdateIssuingControlsMerchantCategoryRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantCategoryRestrictions') } }
19
+ # Restricts card usage to specific merchants, independent of merchant category. Set to `null` to remove merchant restrictions.
20
+ field :merchant_restrictions, Crystalline::Nilable.new(Models::Components::UpdateIssuingControlsMerchantRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantRestrictions') } }
21
+ # Limits card usage to specific days and times. Set to `null` to remove all schedule restrictions.
22
+ field :allowed_schedule, Crystalline::Nilable.new(Models::Components::UpdateIssuingControlsAllowedSchedule), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedSchedule') } }
23
+ # A spend cutoff date and time. Set to `null` to remove the spend cutoff.
24
+ field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
25
+
26
+ sig { params(velocity_limits: T.nilable(T::Array[Models::Components::IssuingVelocityLimit]), merchant_category_restrictions: T.nilable(Models::Components::UpdateIssuingControlsMerchantCategoryRestrictions), merchant_restrictions: T.nilable(Models::Components::UpdateIssuingControlsMerchantRestrictions), allowed_schedule: T.nilable(Models::Components::UpdateIssuingControlsAllowedSchedule), expires_on: T.nilable(::DateTime)).void }
27
+ def initialize(velocity_limits: nil, merchant_category_restrictions: nil, merchant_restrictions: nil, allowed_schedule: nil, expires_on: nil)
28
+ @velocity_limits = velocity_limits
29
+ @merchant_category_restrictions = merchant_category_restrictions
30
+ @merchant_restrictions = merchant_restrictions
31
+ @allowed_schedule = allowed_schedule
32
+ @expires_on = expires_on
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @velocity_limits == other.velocity_limits
39
+ return false unless @merchant_category_restrictions == other.merchant_category_restrictions
40
+ return false unless @merchant_restrictions == other.merchant_restrictions
41
+ return false unless @allowed_schedule == other.allowed_schedule
42
+ return false unless @expires_on == other.expires_on
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::UpdateIssuingControls
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateIssuingControls
11
+ def velocity_limits(); end
12
+ def velocity_limits=(str_); end
13
+ def merchant_category_restrictions(); end
14
+ def merchant_category_restrictions=(str_); end
15
+ def merchant_restrictions(); end
16
+ def merchant_restrictions=(str_); end
17
+ def allowed_schedule(); end
18
+ def allowed_schedule=(str_); end
19
+ def expires_on(); end
20
+ def expires_on=(str_); end
21
+ end
@@ -0,0 +1,36 @@
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 Components
10
+ # Limits card usage to specific days and times. Set to `null` to remove all schedule restrictions.
11
+ class UpdateIssuingControlsAllowedSchedule
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # IANA timezone string used to evaluate window boundaries against the authorization time.
16
+ field :timezone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone') } }
17
+ # Time windows during which the card may authorize. Any matching window allows the transaction.
18
+ field :windows, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::ScheduleWindow)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('windows') } }
19
+
20
+ sig { params(timezone: T.nilable(::String), windows: T.nilable(T::Array[Models::Components::ScheduleWindow])).void }
21
+ def initialize(timezone: nil, windows: nil)
22
+ @timezone = timezone
23
+ @windows = windows
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 @timezone == other.timezone
30
+ return false unless @windows == other.windows
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::UpdateIssuingControlsAllowedSchedule
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateIssuingControlsAllowedSchedule
11
+ def timezone(); end
12
+ def timezone=(str_); end
13
+ def windows(); end
14
+ def windows=(str_); end
15
+ end
@@ -0,0 +1,44 @@
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 Components
10
+ # Restricts card usage by merchant category. Set to `null` to remove all category restrictions.
11
+ class UpdateIssuingControlsMerchantCategoryRestrictions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the listed items should be allowed (`allow`) or blocked (`block`).
16
+ field :mode, Crystalline::Nilable.new(Models::Components::IssuingControlsRestrictionMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuingControlsRestrictionMode, true) } }
17
+ # Predefined category groups to allow or block.
18
+ field :categories, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::IssuingMerchantCategory)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('categories') } }
19
+ # Individual merchant category codes (MCCs) to allow or block, for codes not covered by a predefined category.
20
+ field :custom_mc_cs, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customMCCs') } }
21
+ # Merchants that are exempt from category restrictions regardless of their category.
22
+ field :exempt_merchants, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::MerchantEntry)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('exemptMerchants') } }
23
+
24
+ sig { params(mode: T.nilable(Models::Components::IssuingControlsRestrictionMode), categories: T.nilable(T::Array[Models::Components::IssuingMerchantCategory]), custom_mc_cs: T.nilable(T::Array[::String]), exempt_merchants: T.nilable(T::Array[Models::Components::MerchantEntry])).void }
25
+ def initialize(mode: nil, categories: nil, custom_mc_cs: nil, exempt_merchants: nil)
26
+ @mode = mode
27
+ @categories = categories
28
+ @custom_mc_cs = custom_mc_cs
29
+ @exempt_merchants = exempt_merchants
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @mode == other.mode
36
+ return false unless @categories == other.categories
37
+ return false unless @custom_mc_cs == other.custom_mc_cs
38
+ return false unless @exempt_merchants == other.exempt_merchants
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::UpdateIssuingControlsMerchantCategoryRestrictions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateIssuingControlsMerchantCategoryRestrictions
11
+ def mode(); end
12
+ def mode=(str_); end
13
+ def categories(); end
14
+ def categories=(str_); end
15
+ def custom_mc_cs(); end
16
+ def custom_mc_cs=(str_); end
17
+ def exempt_merchants(); end
18
+ def exempt_merchants=(str_); end
19
+ end