moov_ruby 26.2.12 → 26.2.14

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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/module.rb +1 -1
  3. data/lib/moov/avatars.rb +1 -1
  4. data/lib/moov/card_issuing.rb +1 -1
  5. data/lib/moov/enriched_address.rb +1 -1
  6. data/lib/moov/enriched_profile.rb +1 -1
  7. data/lib/moov/images.rb +1 -1
  8. data/lib/moov/institutions.rb +2 -2
  9. data/lib/moov/models/components/account.rb +2 -2
  10. data/lib/moov/models/components/accountnameverification.rb +4 -4
  11. data/lib/moov/models/components/accounttype.rb +3 -1
  12. data/lib/moov/models/components/accountverificationstatus.rb +3 -1
  13. data/lib/moov/models/components/achreturncode.rb +3 -1
  14. data/lib/moov/models/components/achtransactiondetails.rb +3 -3
  15. data/lib/moov/models/components/achtransactionstatus.rb +3 -1
  16. data/lib/moov/models/components/adjustmentfees.rb +11 -15
  17. data/lib/moov/models/components/adjustmentfees.rbi +4 -4
  18. data/lib/moov/models/components/applepayresponse.rb +2 -2
  19. data/lib/moov/models/components/applicationscope.rb +4 -2
  20. data/lib/moov/models/components/bankaccount.rb +4 -4
  21. data/lib/moov/models/components/bankaccountexception.rb +2 -2
  22. data/lib/moov/models/components/bankaccountholdertype.rb +3 -1
  23. data/lib/moov/models/components/bankaccountintegration.rb +2 -2
  24. data/lib/moov/models/components/bankaccountstatus.rb +3 -1
  25. data/lib/moov/models/components/bankaccountstatusreason.rb +3 -1
  26. data/lib/moov/models/components/bankaccounttype.rb +3 -1
  27. data/lib/moov/models/components/bankaccountverification.rb +2 -2
  28. data/lib/moov/models/components/bankaccountverificationcreated.rb +2 -2
  29. data/lib/moov/models/components/bankaccountverificationmethod.rb +3 -1
  30. data/lib/moov/models/components/bankaccountverificationstatus.rb +3 -1
  31. data/lib/moov/models/components/basicpaymentmethod.rb +1 -1
  32. data/lib/moov/models/components/billablefee.rb +2 -2
  33. data/lib/moov/models/components/billingadjustment.rb +40 -0
  34. data/lib/moov/models/components/billingadjustment.rbi +17 -0
  35. data/lib/moov/models/components/billingsummary.rb +8 -4
  36. data/lib/moov/models/components/billingsummary.rbi +2 -0
  37. data/lib/moov/models/components/billingsummary_adjustmentfees.rb +40 -0
  38. data/lib/moov/models/components/billingsummary_adjustmentfees.rbi +15 -0
  39. data/lib/moov/models/components/businesspresence.rb +3 -1
  40. data/lib/moov/models/components/businessprofile.rb +2 -2
  41. data/lib/moov/models/components/businesstype.rb +3 -1
  42. data/lib/moov/models/components/calltoaction.rb +3 -1
  43. data/lib/moov/models/components/cancellation.rb +2 -2
  44. data/lib/moov/models/components/cancellationstatus.rb +3 -1
  45. data/lib/moov/models/components/capability.rb +2 -2
  46. data/lib/moov/models/components/capabilityid.rb +3 -1
  47. data/lib/moov/models/components/capabilitystatus.rb +3 -1
  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 +3 -1
  51. data/lib/moov/models/components/cardacquiringrefund.rb +1 -1
  52. data/lib/moov/models/components/cardbrand.rb +3 -1
  53. data/lib/moov/models/components/cardissuingnetwork.rb +3 -1
  54. data/lib/moov/models/components/cardtransactiondetails.rb +3 -3
  55. data/lib/moov/models/components/cardtransactionfailurecode.rb +3 -1
  56. data/lib/moov/models/components/cardtransactionstatus.rb +3 -1
  57. data/lib/moov/models/components/cardtype.rb +3 -1
  58. data/lib/moov/models/components/cardupdatereason.rb +3 -1
  59. data/lib/moov/models/components/cardverification.rb +3 -3
  60. data/lib/moov/models/components/cardverificationresult.rb +3 -1
  61. data/lib/moov/models/components/collectfundscardpayments.rb +1 -1
  62. data/lib/moov/models/components/collectionpaymentmethodtype.rb +3 -1
  63. data/lib/moov/models/components/createaccount.rb +2 -2
  64. data/lib/moov/models/components/createaccounttype.rb +3 -1
  65. data/lib/moov/models/components/createbusinessprofile.rb +2 -2
  66. data/lib/moov/models/components/createdtransfer.rb +12 -5
  67. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  68. data/lib/moov/models/components/createevidencetext.rb +1 -1
  69. data/lib/moov/models/components/createfeeplanagreement.rb +13 -3
  70. data/lib/moov/models/components/createfeeplanagreement.rbi +2 -0
  71. data/lib/moov/models/components/createpaymentlink.rb +1 -1
  72. data/lib/moov/models/components/createrefund.rb +2 -2
  73. data/lib/moov/models/components/createreversal.rb +4 -1
  74. data/lib/moov/models/components/createsweepconfig.rb +1 -1
  75. data/lib/moov/models/components/createterminalapplication.rb +1 -1
  76. data/lib/moov/models/components/createtransfersourceach.rb +2 -2
  77. data/lib/moov/models/components/createtransfersourcecard.rb +1 -1
  78. data/lib/moov/models/components/createwebhook.rb +1 -1
  79. data/lib/moov/models/components/debitholdperiod.rb +3 -1
  80. data/lib/moov/models/components/disbursementpaymentmethodtype.rb +3 -1
  81. data/lib/moov/models/components/dispute.rb +2 -2
  82. data/lib/moov/models/components/disputeevidenceresponse.rb +1 -1
  83. data/lib/moov/models/components/disputephase.rb +3 -1
  84. data/lib/moov/models/components/disputestatus.rb +3 -1
  85. data/lib/moov/models/components/document.rb +1 -1
  86. data/lib/moov/models/components/documenttype.rb +3 -1
  87. data/lib/moov/models/components/domesticpullfromcard.rb +3 -1
  88. data/lib/moov/models/components/domesticpushtocard.rb +3 -1
  89. data/lib/moov/models/components/estimatedactivity.rb +1 -1
  90. data/lib/moov/models/components/evidencetextresponse.rb +1 -1
  91. data/lib/moov/models/components/evidencetype.rb +3 -1
  92. data/lib/moov/models/components/evidenceuploadresponse.rb +1 -1
  93. data/lib/moov/models/components/facilitatorfee.rb +2 -2
  94. data/lib/moov/models/components/feecategory.rb +3 -1
  95. data/lib/moov/models/components/feemodel.rb +3 -1
  96. data/lib/moov/models/components/feeplan.rb +1 -1
  97. data/lib/moov/models/components/feeplanagreement.rb +12 -4
  98. data/lib/moov/models/components/feeplanagreement.rbi +4 -0
  99. data/lib/moov/models/components/feeplanagreementstatus.rb +3 -1
  100. data/lib/moov/models/components/filedetails.rb +2 -2
  101. data/lib/moov/models/components/filepurpose.rb +3 -1
  102. data/lib/moov/models/components/filestatus.rb +3 -1
  103. data/lib/moov/models/components/fulfillment.rb +2 -2
  104. data/lib/moov/models/components/fulfillmentdetails.rb +1 -1
  105. data/lib/moov/models/components/fulfillmentmethod.rb +3 -1
  106. data/lib/moov/models/components/fulfillmenttimeframe.rb +3 -1
  107. data/lib/moov/models/components/fullissuedcard.rb +4 -3
  108. data/lib/moov/models/components/geographicreach.rb +3 -1
  109. data/lib/moov/models/components/instantbankfailurecode.rb +3 -1
  110. data/lib/moov/models/components/instantbanknetwork.rb +3 -1
  111. data/lib/moov/models/components/instantbanktransactiondetails.rb +3 -3
  112. data/lib/moov/models/components/instantbanktransactionstatus.rb +3 -1
  113. data/lib/moov/models/components/issuedcard.rb +4 -3
  114. data/lib/moov/models/components/issuedcardauthorization.rb +2 -2
  115. data/lib/moov/models/components/issuedcardauthorizationevent.rb +2 -2
  116. data/lib/moov/models/components/issuedcardauthorizationeventresult.rb +3 -1
  117. data/lib/moov/models/components/issuedcardeventtype.rb +3 -1
  118. data/lib/moov/models/components/issuedcardstate.rb +5 -1
  119. data/lib/moov/models/components/issuingauthorizationstatus.rb +3 -1
  120. data/lib/moov/models/components/issuingcontrols.rb +1 -1
  121. data/lib/moov/models/components/jsonwebkey.rb +1 -1
  122. data/lib/moov/models/components/linkedapplepaypaymentmethod.rb +1 -1
  123. data/lib/moov/models/components/mode.rb +3 -1
  124. data/lib/moov/models/components/monthlyvolumerange.rb +3 -1
  125. data/lib/moov/models/components/moovfee.rb +1 -1
  126. data/lib/moov/models/components/occurrencesresponse.rb +2 -2
  127. data/lib/moov/models/components/occurrencestatus.rb +3 -1
  128. data/lib/moov/models/components/onboardingpartneraccount.rb +1 -1
  129. data/lib/moov/models/components/partnerpricingagreement.rb +15 -7
  130. data/lib/moov/models/components/partnerpricingagreement.rbi +4 -0
  131. data/lib/moov/models/components/patchbusiness.rb +2 -2
  132. data/lib/moov/models/components/patchwallet.rb +1 -1
  133. data/lib/moov/models/components/paymentlink.rb +4 -4
  134. data/lib/moov/models/components/paymentlinkdisplayoptions.rb +1 -1
  135. data/lib/moov/models/components/paymentlinkdisplayoptionsupdate.rb +1 -1
  136. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +1 -1
  137. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +1 -1
  138. data/lib/moov/models/components/paymentlinkstatus.rb +3 -1
  139. data/lib/moov/models/components/paymentlinktype.rb +3 -1
  140. data/lib/moov/models/components/paymentmethodsbankaccount.rb +3 -3
  141. data/lib/moov/models/components/paymentmethodscard.rb +4 -4
  142. data/lib/moov/models/components/paymentmethodswallet.rb +2 -1
  143. data/lib/moov/models/components/paymentmethodtype.rb +3 -1
  144. data/lib/moov/models/components/pendinglitigation.rb +3 -1
  145. data/lib/moov/models/components/primaryregulator.rb +3 -1
  146. data/lib/moov/models/components/refundcarddetails.rb +2 -2
  147. data/lib/moov/models/components/refundcardstatus.rb +3 -1
  148. data/lib/moov/models/components/refundpolicy.rb +3 -1
  149. data/lib/moov/models/components/refundstatus.rb +3 -1
  150. data/lib/moov/models/components/requestcard.rb +1 -1
  151. data/lib/moov/models/components/requirementerror.rb +2 -2
  152. data/lib/moov/models/components/requirementerrorcode.rb +3 -1
  153. data/lib/moov/models/components/requirementid.rb +10 -1
  154. data/lib/moov/models/components/returnpolicytype.rb +3 -1
  155. data/lib/moov/models/components/reversedwithcancellation.rb +1 -1
  156. data/lib/moov/models/components/rtpfailurecode.rb +3 -1
  157. data/lib/moov/models/components/rtprejectioncode.rb +3 -1
  158. data/lib/moov/models/components/rtptransactiondetails.rb +2 -2
  159. data/lib/moov/models/components/rtptransactionstatus.rb +3 -1
  160. data/lib/moov/models/components/schedulelistresponse.rb +1 -1
  161. data/lib/moov/models/components/scheduleresponse.rb +1 -1
  162. data/lib/moov/models/components/seccode.rb +3 -1
  163. data/lib/moov/models/components/statement.rb +6 -2
  164. data/lib/moov/models/components/statement.rbi +2 -0
  165. data/lib/moov/models/components/sweep.rb +1 -1
  166. data/lib/moov/models/components/sweepconfig.rb +3 -3
  167. data/lib/moov/models/components/sweepconfigpaymentmethod.rb +1 -1
  168. data/lib/moov/models/components/sweepconfigstatus.rb +3 -1
  169. data/lib/moov/models/components/sweepstatus.rb +3 -1
  170. data/lib/moov/models/components/sweepsubtotal.rb +1 -1
  171. data/lib/moov/models/components/terminalapplication.rb +2 -2
  172. data/lib/moov/models/components/terminalapplicationplatform.rb +3 -1
  173. data/lib/moov/models/components/terminalapplicationstatus.rb +3 -1
  174. data/lib/moov/models/components/terminalcard.rb +2 -2
  175. data/lib/moov/models/components/ticket.rb +1 -1
  176. data/lib/moov/models/components/ticketstatus.rb +3 -1
  177. data/lib/moov/models/components/transactionsource.rb +3 -1
  178. data/lib/moov/models/components/transfer.rb +12 -5
  179. data/lib/moov/models/components/transfer.rbi +2 -0
  180. data/lib/moov/models/components/transfercapture.rb +36 -0
  181. data/lib/moov/models/components/transfercapture.rbi +15 -0
  182. data/lib/moov/models/components/transferdestination.rb +1 -1
  183. data/lib/moov/models/components/transferfailurereason.rb +3 -1
  184. data/lib/moov/models/components/transferparty.rb +3 -1
  185. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +3 -3
  186. data/lib/moov/models/components/transferpaymentmethodscard.rb +4 -4
  187. data/lib/moov/models/components/transferpaymentmethodswallet.rb +2 -1
  188. data/lib/moov/models/components/transferpaymentmethodtype.rb +3 -1
  189. data/lib/moov/models/components/transfersource.rb +1 -1
  190. data/lib/moov/models/components/transferstatus.rb +3 -1
  191. data/lib/moov/models/components/transferterminalcard.rb +2 -2
  192. data/lib/moov/models/components/underwriting.rb +4 -4
  193. data/lib/moov/models/components/underwritingstatus.rb +3 -1
  194. data/lib/moov/models/components/updateevidence.rb +1 -1
  195. data/lib/moov/models/components/updateissuedcard.rb +2 -0
  196. data/lib/moov/models/components/updateissuedcardstate.rb +4 -0
  197. data/lib/moov/models/components/updatepaymentlink.rb +1 -1
  198. data/lib/moov/models/components/updatewebhook.rb +1 -1
  199. data/lib/moov/models/components/upsertunderwriting.rb +3 -3
  200. data/lib/moov/models/components/use.rb +3 -1
  201. data/lib/moov/models/components/verification.rb +3 -3
  202. data/lib/moov/models/components/verificationstatus.rb +3 -1
  203. data/lib/moov/models/components/verificationstatusdetail.rb +3 -1
  204. data/lib/moov/models/components/wallet.rb +3 -2
  205. data/lib/moov/models/components/walletstatus.rb +3 -1
  206. data/lib/moov/models/components/wallettransaction.rb +3 -3
  207. data/lib/moov/models/components/wallettransactionsourcetype.rb +3 -1
  208. data/lib/moov/models/components/wallettransactionstatus.rb +3 -1
  209. data/lib/moov/models/components/wallettransactiontype.rb +3 -1
  210. data/lib/moov/models/components/wallettype.rb +5 -1
  211. data/lib/moov/models/components/webhook.rb +1 -1
  212. data/lib/moov/models/components/webhookdatabankaccountcreated.rb +1 -1
  213. data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +1 -1
  214. data/lib/moov/models/components/webhookdatabankaccountupdated.rb +2 -2
  215. data/lib/moov/models/components/webhookdatacancellationcreated.rb +1 -1
  216. data/lib/moov/models/components/webhookdatacancellationupdated.rb +1 -1
  217. data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -1
  218. data/lib/moov/models/components/webhookdatacapabilityupdated.rb +2 -2
  219. data/lib/moov/models/components/webhookdatacardautoupdated.rb +1 -1
  220. data/lib/moov/models/components/webhookdatadisputecreated.rb +2 -2
  221. data/lib/moov/models/components/webhookdatadisputeupdated.rb +2 -2
  222. data/lib/moov/models/components/webhookdatarefundupdated.rb +1 -1
  223. data/lib/moov/models/components/webhookdatasweepupdated.rb +1 -1
  224. data/lib/moov/models/components/webhookdataterminalapplicationcreated.rb +1 -1
  225. data/lib/moov/models/components/webhookdataterminalapplicationupdated.rb +1 -1
  226. data/lib/moov/models/components/webhookdataticketupdated.rb +1 -1
  227. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  228. data/lib/moov/models/components/webhookdatawallettransactionupdated.rb +1 -1
  229. data/lib/moov/models/components/webhookdatawalletupdated.rb +1 -1
  230. data/lib/moov/models/components/webhookevent.rb +1 -1
  231. data/lib/moov/models/components/webhookeventtype.rb +3 -1
  232. data/lib/moov/models/components/webhookstatus.rb +3 -1
  233. data/lib/moov/models/components.rb +4 -1
  234. data/lib/moov/models/errors/cardacquiringrefund_error.rb +1 -1
  235. data/lib/moov/models/errors/transfer_error.rb +12 -5
  236. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  237. data/lib/moov/models/operations/listaccounts_request.rb +1 -1
  238. data/lib/moov/models/operations/listconnectedaccountsforaccount_request.rb +1 -1
  239. data/lib/moov/models/operations/listdisputes_request.rb +1 -1
  240. data/lib/moov/models/operations/listfeeplanagreements_request.rb +1 -1
  241. data/lib/moov/models/operations/listfeerevenue_request.rb +1 -1
  242. data/lib/moov/models/operations/listissuedcardauthorizationevents_request.rb +1 -1
  243. data/lib/moov/models/operations/listissuedcardauthorizations_request.rb +1 -1
  244. data/lib/moov/models/operations/listissuedcards_request.rb +1 -1
  245. data/lib/moov/models/operations/listissuedcardtransactions_request.rb +7 -3
  246. data/lib/moov/models/operations/listissuedcardtransactions_request.rbi +2 -0
  247. data/lib/moov/models/operations/listpartnerpricingagreements_request.rb +1 -1
  248. data/lib/moov/models/operations/listpaymentlinks_request.rb +1 -1
  249. data/lib/moov/models/operations/listproducts_request.rb +1 -1
  250. data/lib/moov/models/operations/listresidualfees_request.rb +1 -1
  251. data/lib/moov/models/operations/listresiduals_request.rb +1 -1
  252. data/lib/moov/models/operations/listschedules_request.rb +1 -1
  253. data/lib/moov/models/operations/liststatements_request.rb +1 -1
  254. data/lib/moov/models/operations/listsweeps_request.rb +1 -1
  255. data/lib/moov/models/operations/listtickets_request.rb +1 -1
  256. data/lib/moov/models/operations/listtransfers_request.rb +11 -3
  257. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  258. data/lib/moov/models/operations/listwallets_request.rb +1 -1
  259. data/lib/moov/models/operations/listwallettransactions_request.rb +1 -1
  260. data/lib/moov/models/operations/retrievefees_request.rb +1 -1
  261. data/lib/moov/sdkconfiguration.rb +3 -3
  262. data/lib/moov/transfers.rb +11 -5
  263. data/lib/moov/utils/retries.rb +41 -2
  264. data/lib/moov/utils/utils.rb +6 -2
  265. metadata +8 -2
@@ -13,9 +13,9 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :method, Crystalline::Nilable.new(Models::Components::FulfillmentMethod), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('method'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FulfillmentMethod, true) } }
16
+ field :method, Crystalline::Nilable.new(Models::Components::FulfillmentMethod), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('method'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::FulfillmentMethod, true) } }
17
17
 
18
- field :timeframe, Crystalline::Nilable.new(Models::Components::FulfillmentTimeframe), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timeframe'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FulfillmentTimeframe, true) } }
18
+ field :timeframe, Crystalline::Nilable.new(Models::Components::FulfillmentTimeframe), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timeframe'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::FulfillmentTimeframe, true) } }
19
19
 
20
20
  sig { params(method: T.nilable(Models::Components::FulfillmentMethod), timeframe: T.nilable(Models::Components::FulfillmentTimeframe)).void }
21
21
  def initialize(method: nil, timeframe: nil)
@@ -19,7 +19,7 @@ module Moov
19
19
 
20
20
  field :shipment_duration_days, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('shipmentDurationDays'), required: true } }
21
21
 
22
- field :return_policy, Models::Components::ReturnPolicyType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('returnPolicy'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::ReturnPolicyType, false) } }
22
+ field :return_policy, Models::Components::ReturnPolicyType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('returnPolicy'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::ReturnPolicyType, false) } }
23
23
 
24
24
  sig { params(has_physical_goods: T::Boolean, is_shipping_product: T::Boolean, shipment_duration_days: ::Integer, return_policy: Models::Components::ReturnPolicyType).void }
25
25
  def initialize(has_physical_goods:, is_shipping_product:, shipment_duration_days:, return_policy:)
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class FulfillmentMethod < T::Enum
11
+ class FulfillmentMethod
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  BILL_OR_DEBT_PAYMENT = new('bill-or-debt-payment')
14
15
  DIGITAL_CONTENT = new('digital-content')
@@ -20,6 +21,7 @@ module Moov
20
21
  SHIPPED_PHYSICAL_GOODS = new('shipped-physical-goods')
21
22
  SUBSCRIPTION_OR_MEMBERSHIP = new('subscription-or-membership')
22
23
  end
24
+ open!
23
25
  end
24
26
  end
25
27
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class FulfillmentTimeframe < T::Enum
11
+ class FulfillmentTimeframe
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  IMMEDIATE = new('immediate')
14
15
  OTHER = new('other')
@@ -19,6 +20,7 @@ module Moov
19
20
  WITHIN_30_DAYS = new('within-30-days')
20
21
  WITHIN_7_DAYS = new('within-7-days')
21
22
  end
23
+ open!
22
24
  end
23
25
  end
24
26
  end
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :issued_card_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuedCardID'), required: true } }
17
17
  # The card brand.
18
- field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
18
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, false) } }
19
19
 
20
20
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
21
21
  # The expiration date of the card or token.
@@ -25,8 +25,9 @@ module Moov
25
25
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
26
26
  #
27
27
  # - `active`: The card is operational and can approve authorizations.
28
+ # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
28
29
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
29
- field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardState, false) } }
30
+ field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardState, false) } }
30
31
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
31
32
  field :form_factor, Models::Components::IssuedCardFormFactor, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('formFactor'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardFormFactor, false) } }
32
33
 
@@ -45,7 +46,7 @@ module Moov
45
46
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
46
47
  # Billing address associated with the card.
47
48
  field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
48
-
49
+ # Mutable spend controls for the card.
49
50
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
50
51
 
51
52
  sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, updated_on: ::DateTime, pan: ::String, cvv: ::String, authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), controls: T.nilable(Models::Components::IssuingControls)).void }
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
 
11
- class GeographicReach < T::Enum
11
+ class GeographicReach
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  INTERNATIONAL_ONLY = new('international-only')
14
15
  US_AND_INTERNATIONAL = new('us-and-international')
15
16
  US_ONLY = new('us-only')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # InstantBankFailureCode - Status codes for instant-bank failures.
11
- class InstantBankFailureCode < T::Enum
11
+ class InstantBankFailureCode
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PROCESSING_ERROR = new('processing-error')
14
15
  INVALID_ACCOUNT = new('invalid-account')
@@ -22,6 +23,7 @@ module Moov
22
23
  PARTICIPANT_NOT_AVAILABLE = new('participant-not-available')
23
24
  OTHER = new('other')
24
25
  end
26
+ open!
25
27
  end
26
28
  end
27
29
  end
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # InstantBankNetwork - The network that the transaction was processed on.
11
- class InstantBankNetwork < T::Enum
11
+ class InstantBankNetwork
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  FEDNOW = new('fednow')
14
15
  RTP = new('rtp')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -13,13 +13,13 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # The network that the transaction was processed on.
16
- field :network, Models::Components::InstantBankNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankNetwork, false) } }
16
+ field :network, Models::Components::InstantBankNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::InstantBankNetwork, false) } }
17
17
  # Status of a transaction within the instant-bank lifecycle.
18
- field :status, Models::Components::InstantBankTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankTransactionStatus, false) } }
18
+ field :status, Models::Components::InstantBankTransactionStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::InstantBankTransactionStatus, false) } }
19
19
  # Response code returned by network on failure.
20
20
  field :network_response_code, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('networkResponseCode') } }
21
21
  # Status codes for instant-bank failures.
22
- field :failure_code, Crystalline::Nilable.new(Models::Components::InstantBankFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::InstantBankFailureCode, true) } }
22
+ field :failure_code, Crystalline::Nilable.new(Models::Components::InstantBankFailureCode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('failureCode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::InstantBankFailureCode, true) } }
23
23
 
24
24
  field :end_to_end_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('endToEndID') } }
25
25
 
@@ -8,13 +8,15 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # InstantBankTransactionStatus - Status of a transaction within the instant-bank lifecycle.
11
- class InstantBankTransactionStatus < T::Enum
11
+ class InstantBankTransactionStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  INITIATED = new('initiated')
14
15
  COMPLETED = new('completed')
15
16
  FAILED = new('failed')
16
17
  ACCEPTED_WITHOUT_POSTING = new('accepted-without-posting')
17
18
  end
19
+ open!
18
20
  end
19
21
  end
20
22
  end
@@ -15,7 +15,7 @@ module Moov
15
15
 
16
16
  field :issued_card_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuedCardID'), required: true } }
17
17
  # The card brand.
18
- field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
18
+ field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardBrand, false) } }
19
19
 
20
20
  field :last_four_card_number, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastFourCardNumber'), required: true } }
21
21
  # The expiration date of the card or token.
@@ -25,8 +25,9 @@ module Moov
25
25
  # The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
26
26
  #
27
27
  # - `active`: The card is operational and can approve authorizations.
28
+ # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
28
29
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
29
- field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardState, false) } }
30
+ field :state, Models::Components::IssuedCardState, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('state'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardState, false) } }
30
31
  # Specifies the type of spend card to be issued. Presently supports virtual only, providing a digital number without a physical card.
31
32
  field :form_factor, Models::Components::IssuedCardFormFactor, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('formFactor'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardFormFactor, false) } }
32
33
 
@@ -41,7 +42,7 @@ module Moov
41
42
  field :metadata, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('metadata') } }
42
43
  # Billing address associated with the card.
43
44
  field :billing_address, Crystalline::Nilable.new(Models::Components::Address), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
44
-
45
+ # Mutable spend controls for the card.
45
46
  field :controls, Crystalline::Nilable.new(Models::Components::IssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
46
47
 
47
48
  sig { params(issued_card_id: ::String, brand: Models::Components::CardBrand, last_four_card_number: ::String, expiration: Models::Components::CardExpiration, funding_wallet_id: ::String, state: Models::Components::IssuedCardState, form_factor: Models::Components::IssuedCardFormFactor, created_on: ::DateTime, updated_on: ::DateTime, authorized_user_account_id: T.nilable(::String), nickname: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), billing_address: T.nilable(Models::Components::Address), controls: T.nilable(Models::Components::IssuingControls)).void }
@@ -19,11 +19,11 @@ module Moov
19
19
 
20
20
  field :funding_wallet_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('fundingWalletID'), required: true } }
21
21
  # The name of the network a card transaction is routed through.
22
- field :network, Models::Components::CardIssuingNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardIssuingNetwork, false) } }
22
+ field :network, Models::Components::CardIssuingNetwork, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('network'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardIssuingNetwork, false) } }
23
23
  # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
24
24
  field :authorized_amount, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizedAmount'), required: true } }
25
25
  # Status of a card issuing authorization.
26
- field :status, Models::Components::IssuingAuthorizationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingAuthorizationStatus, false) } }
26
+ field :status, Models::Components::IssuingAuthorizationStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuingAuthorizationStatus, false) } }
27
27
 
28
28
  field :merchant_data, Models::Components::IssuingMerchantData, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantData'), required: true } }
29
29
 
@@ -15,11 +15,11 @@ module Moov
15
15
  # The identifier for this event. Use the `eventType` field to determine what resource is identified by this ID (`authorization`, `reversal`, etc.).
16
16
  field :event_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventID'), required: true } }
17
17
  # The type of event that occurred on the card.
18
- field :event_type, Models::Components::IssuedCardEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardEventType, false) } }
18
+ field :event_type, Models::Components::IssuedCardEventType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('eventType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardEventType, false) } }
19
19
  # A decimal-formatted numerical string that represents up to 2 decimal place precision. In USD for example, 12.34 is $12.34 and 0.99 is $0.99.
20
20
  field :amount, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
21
21
  # The result of an event.
22
- field :result, Models::Components::IssuedCardAuthorizationEventResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('result'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuedCardAuthorizationEventResult, false) } }
22
+ field :result, Models::Components::IssuedCardAuthorizationEventResult, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('result'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::IssuedCardAuthorizationEventResult, false) } }
23
23
 
24
24
  field :created_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('createdOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
25
25
 
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuedCardAuthorizationEventResult - The result of an event.
11
- class IssuedCardAuthorizationEventResult < T::Enum
11
+ class IssuedCardAuthorizationEventResult
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  APPROVED = new('approved')
14
15
  DECLINED = new('declined')
15
16
  PROCESSED = new('processed')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuedCardEventType - The type of event that occurred on the card.
11
- class IssuedCardEventType < T::Enum
11
+ class IssuedCardEventType
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  AUTHORIZATION = new('authorization')
14
15
  REVERSAL = new('reversal')
@@ -17,6 +18,7 @@ module Moov
17
18
  AUTHORIZATION_INCREMENTAL = new('authorization-incremental')
18
19
  CLEARING = new('clearing')
19
20
  end
21
+ open!
20
22
  end
21
23
  end
22
24
  end
@@ -10,12 +10,16 @@ module Moov
10
10
  # IssuedCardState - The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
11
11
  #
12
12
  # - `active`: The card is operational and can approve authorizations.
13
+ # - `frozen`: The card is temporarily suspended and cannot approve authorizations. A frozen card can be reactivated by setting its state back to `active`.
13
14
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
14
- class IssuedCardState < T::Enum
15
+ class IssuedCardState
16
+ include ::Crystalline::Enum
15
17
  enums do
16
18
  ACTIVE = new('active')
19
+ FROZEN = new('frozen')
17
20
  CLOSED = new('closed')
18
21
  end
22
+ open!
19
23
  end
20
24
  end
21
25
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # IssuingAuthorizationStatus - Status of a card issuing authorization.
11
- class IssuingAuthorizationStatus < T::Enum
11
+ class IssuingAuthorizationStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PENDING = new('pending')
14
15
  DECLINED = new('declined')
@@ -16,6 +17,7 @@ module Moov
16
17
  CLEARED = new('cleared')
17
18
  EXPIRED = new('expired')
18
19
  end
20
+ open!
19
21
  end
20
22
  end
21
23
  end
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Mutable spend controls for the card.
11
11
  class IssuingControls
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
@@ -15,7 +15,7 @@ module Moov
15
15
  # The cryptographic algorithm family used with the key (e.g., 'RSA', 'EC', 'oct').
16
16
  field :kty, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('kty'), required: true } }
17
17
  # The intended use of the key. 'sig' for signature, 'enc' for encryption.
18
- field :use, Crystalline::Nilable.new(Models::Components::Use), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('use'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Use, true) } }
18
+ field :use, Crystalline::Nilable.new(Models::Components::Use), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('use'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Use, true) } }
19
19
  # The permitted operations for the key, e.g., 'sign', 'verify', 'encrypt', 'decrypt'.
20
20
  field :key_ops, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('key_ops') } }
21
21
  # The algorithm intended for use with the key, e.g., 'RS256' or 'ES256'.
@@ -15,7 +15,7 @@ module Moov
15
15
  # The new payment method's ID.
16
16
  field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
17
17
  # The payment method type that represents a payment rail and directionality
18
- field :payment_method_type, Models::Components::PaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentMethodType, false) } }
18
+ field :payment_method_type, Models::Components::PaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentMethodType, false) } }
19
19
  # Describes an Apple Pay token on a Moov account.
20
20
  field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
21
21
 
@@ -8,11 +8,13 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # Mode - The operating mode for an account.
11
- class Mode < T::Enum
11
+ class Mode
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  SANDBOX = new('sandbox')
14
15
  PRODUCTION = new('production')
15
16
  end
17
+ open!
16
18
  end
17
19
  end
18
20
  end
@@ -8,7 +8,8 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # MonthlyVolumeRange - The low value in each range is included. The high value in each range is excluded.
11
- class MonthlyVolumeRange < T::Enum
11
+ class MonthlyVolumeRange
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  UNDER_10K = new('under-10k')
14
15
  TENK_50K = new('10k-50k')
@@ -19,6 +20,7 @@ module Moov
19
20
  ONEM_5M = new('1m-5m')
20
21
  OVER_5M = new('over-5m')
21
22
  end
23
+ open!
22
24
  end
23
25
  end
24
26
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # ID of the account that fees were charged to.
16
16
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
17
17
  # Indicates whether the account charged was the partner, source, or destination of the transfer.
18
- field :transfer_party, Models::Components::TransferParty, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferParty'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::TransferParty, false) } }
18
+ field :transfer_party, Models::Components::TransferParty, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('transferParty'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::TransferParty, false) } }
19
19
  # The total amount of fees charged to the account.
20
20
  field :total_amount, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('totalAmount'), required: true } }
21
21
  # List of fee IDs that sum to the totalAmount.
@@ -21,7 +21,7 @@ module Moov
21
21
 
22
22
  field :occurrence_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('occurrenceID') } }
23
23
  # Sandbox or production account mode of this schedule.
24
- field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
24
+ field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, true) } }
25
25
  # True if this was generated by a RRule.
26
26
  field :generated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('generated') } }
27
27
  # True if the RRule set runs indefinitely.
@@ -33,7 +33,7 @@ module Moov
33
33
 
34
34
  field :ran_transfer_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('ranTransferID') } }
35
35
  # Status of the completed occurrence.
36
- field :status, Crystalline::Nilable.new(Models::Components::OccurrenceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::OccurrenceStatus, true) } }
36
+ field :status, Crystalline::Nilable.new(Models::Components::OccurrenceStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::OccurrenceStatus, true) } }
37
37
  # Contains details on why the occurrence errored.
38
38
  field :error, Crystalline::Nilable.new(Models::Components::OccurrencesResponseError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('error') } }
39
39
 
@@ -8,12 +8,14 @@ module Moov
8
8
  module Models
9
9
  module Components
10
10
  # OccurrenceStatus - Status of the completed occurrence.
11
- class OccurrenceStatus < T::Enum
11
+ class OccurrenceStatus
12
+ include ::Crystalline::Enum
12
13
  enums do
13
14
  PENDING = new('pending')
14
15
  FAILED = new('failed')
15
16
  COMPLETED = new('completed')
16
17
  end
18
+ open!
17
19
  end
18
20
  end
19
21
  end
@@ -15,7 +15,7 @@ module Moov
15
15
  # The account ID of the partner that created the invite.
16
16
  field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
17
17
  # The operating mode for an account.
18
- field :account_mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountMode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, false) } }
18
+ field :account_mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountMode'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, false) } }
19
19
  # The name of the Moov account used to create the onboarding invite.
20
20
  field :display_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('displayName'), required: true } }
21
21
 
@@ -21,26 +21,30 @@ module Moov
21
21
 
22
22
  field :accepted_on, ::DateTime, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('acceptedOn'), required: true, 'decoder': ::Moov::Utils.datetime_from_iso_format(false) } }
23
23
 
24
- field :status, Models::Components::FeePlanAgreementStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FeePlanAgreementStatus, false) } }
24
+ field :status, Models::Components::FeePlanAgreementStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::FeePlanAgreementStatus, false) } }
25
25
  # Specifies the card processing pricing model
26
- field :card_acquiring_model, Models::Components::CardAcquiringModel, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAcquiringModel'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardAcquiringModel, false) } }
26
+ field :card_acquiring_model, Models::Components::CardAcquiringModel, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardAcquiringModel'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CardAcquiringModel, false) } }
27
27
 
28
28
  field :billable_fees, Crystalline::Array.new(Models::Components::BillableFee), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billableFees'), required: true } }
29
29
  # The minimum spending amount that must be met in the billing period. If actual usage is below the minimum amount, account is charged the difference.
30
30
  field :minimum_commitment, Models::Components::MinimumCommitment, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimumCommitment'), required: true } }
31
31
  # Fixed recurring amount paid in the billing period regardless of usage.
32
32
  field :monthly_platform_fee, Models::Components::MonthlyPlatformFee, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('monthlyPlatformFee'), required: true } }
33
- # The decimal-formatted numerical string of the revenue split for partner.
34
- #
35
- # For example, 2.25% is '2.25'.
33
+ # The decimal-formatted numerical string of the revenue split for partner.
34
+ #
35
+ # For example, 2.25% is '2.25'.
36
36
  field :revenue_share, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('revenueShare'), required: true } }
37
37
  # A unique identifier for a Moov resource. Supports UUID format (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx) or typed format with base32-encoded UUID and type suffix (e.g., kuoaydiojf7uszaokc2ggnaaaa_xfer).
38
38
  field :account_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID') } }
39
39
  # The description of the agreement.
40
40
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
41
+ # The agreement this one replaced. Only set when the agreement was created by replacing another.
42
+ field :prior_agreement_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priorAgreementID') } }
43
+ # The date and time the prior agreement was terminated.
44
+ field :prior_agreement_terminated_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('priorAgreementTerminatedOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
41
45
 
42
- sig { params(agreement_id: ::String, plan_id: ::String, name: ::String, accepted_on: ::DateTime, status: Models::Components::FeePlanAgreementStatus, card_acquiring_model: Models::Components::CardAcquiringModel, billable_fees: T::Array[Models::Components::BillableFee], minimum_commitment: Models::Components::MinimumCommitment, monthly_platform_fee: Models::Components::MonthlyPlatformFee, revenue_share: ::String, account_id: T.nilable(::String), description: T.nilable(::String)).void }
43
- def initialize(agreement_id:, plan_id:, name:, accepted_on:, status:, card_acquiring_model:, billable_fees:, minimum_commitment:, monthly_platform_fee:, revenue_share:, account_id: nil, description: nil)
46
+ sig { params(agreement_id: ::String, plan_id: ::String, name: ::String, accepted_on: ::DateTime, status: Models::Components::FeePlanAgreementStatus, card_acquiring_model: Models::Components::CardAcquiringModel, billable_fees: T::Array[Models::Components::BillableFee], minimum_commitment: Models::Components::MinimumCommitment, monthly_platform_fee: Models::Components::MonthlyPlatformFee, revenue_share: ::String, account_id: T.nilable(::String), description: T.nilable(::String), prior_agreement_id: T.nilable(::String), prior_agreement_terminated_on: T.nilable(::DateTime)).void }
47
+ def initialize(agreement_id:, plan_id:, name:, accepted_on:, status:, card_acquiring_model:, billable_fees:, minimum_commitment:, monthly_platform_fee:, revenue_share:, account_id: nil, description: nil, prior_agreement_id: nil, prior_agreement_terminated_on: nil)
44
48
  @agreement_id = agreement_id
45
49
  @plan_id = plan_id
46
50
  @name = name
@@ -53,6 +57,8 @@ module Moov
53
57
  @revenue_share = revenue_share
54
58
  @account_id = account_id
55
59
  @description = description
60
+ @prior_agreement_id = prior_agreement_id
61
+ @prior_agreement_terminated_on = prior_agreement_terminated_on
56
62
  end
57
63
 
58
64
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -70,6 +76,8 @@ module Moov
70
76
  return false unless @revenue_share == other.revenue_share
71
77
  return false unless @account_id == other.account_id
72
78
  return false unless @description == other.description
79
+ return false unless @prior_agreement_id == other.prior_agreement_id
80
+ return false unless @prior_agreement_terminated_on == other.prior_agreement_terminated_on
73
81
  true
74
82
  end
75
83
  end
@@ -32,4 +32,8 @@ class Moov::Models::Components::PartnerPricingAgreement
32
32
  def account_id=(str_); end
33
33
  def description(); end
34
34
  def description=(str_); end
35
+ def prior_agreement_id(); end
36
+ def prior_agreement_id=(str_); end
37
+ def prior_agreement_terminated_on(); end
38
+ def prior_agreement_terminated_on=(str_); end
35
39
  end
@@ -17,7 +17,7 @@ module Moov
17
17
 
18
18
  field :doing_business_as, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('doingBusinessAs') } }
19
19
  # The type of entity represented by this business.
20
- field :business_type, Crystalline::Nilable.new(Models::Components::BusinessType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessType'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::BusinessType, true) } }
20
+ field :business_type, Crystalline::Nilable.new(Models::Components::BusinessType), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('businessType'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::BusinessType, true) } }
21
21
 
22
22
  field :address, Crystalline::Nilable.new(Models::Components::AddressUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('address') } }
23
23
 
@@ -37,7 +37,7 @@ module Moov
37
37
  # Classification identifier for the industry. Use the [GET industries](https://docs.moov.io/api/enrichment/form-shortening/industries/get/) endpoint to retrieve an array of valid industry details for a merchant, inducing all industry field values.
38
38
  field :industry, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('industry') } }
39
39
  # If the business is a financial institution, this field describes its primary regulator.
40
- field :primary_regulator, Crystalline::Nilable.new(Models::Components::PrimaryRegulator), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('primaryRegulator'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PrimaryRegulator, true) } }
40
+ field :primary_regulator, Crystalline::Nilable.new(Models::Components::PrimaryRegulator), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('primaryRegulator'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PrimaryRegulator, true) } }
41
41
 
42
42
  sig { params(legal_business_name: T.nilable(::String), doing_business_as: T.nilable(::String), business_type: T.nilable(Models::Components::BusinessType), address: T.nilable(Models::Components::AddressUpdate), phone: T.nilable(Models::Components::PhoneNumber), email: T.nilable(::String), website: T.nilable(::String), description: T.nilable(::String), tax_id: T.nilable(Models::Components::TaxIDUpdate), owners_provided: T.nilable(T::Boolean), industry_codes: T.nilable(Models::Components::IndustryCodes), industry: T.nilable(::String), primary_regulator: T.nilable(Models::Components::PrimaryRegulator)).void }
43
43
  def initialize(legal_business_name: nil, doing_business_as: nil, business_type: nil, address: nil, phone: nil, email: nil, website: nil, description: nil, tax_id: nil, owners_provided: nil, industry_codes: nil, industry: nil, primary_regulator: nil)
@@ -17,7 +17,7 @@ module Moov
17
17
  # Status of a wallet.
18
18
  # - `active`: The wallet is available for use and has an enabled payment method.
19
19
  # - `closed`: The wallet is no longer active and the corresponding payment method has been disabled.
20
- field :status, Crystalline::Nilable.new(Models::Components::WalletStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletStatus, true) } }
20
+ field :status, Crystalline::Nilable.new(Models::Components::WalletStatus), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::WalletStatus, true) } }
21
21
 
22
22
  field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description') } }
23
23
  # Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
@@ -15,11 +15,11 @@ module Moov
15
15
  # Unique code identifying this payment link.
16
16
  field :code, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('code'), required: true } }
17
17
 
18
- field :payment_link_type, Models::Components::PaymentLinkType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkType, false) } }
18
+ field :payment_link_type, Models::Components::PaymentLinkType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentLinkType'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentLinkType, false) } }
19
19
  # The operating mode for an account.
20
- field :mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, false) } }
20
+ field :mode, Models::Components::Mode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::Mode, false) } }
21
21
 
22
- field :status, Models::Components::PaymentLinkStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::PaymentLinkStatus, false) } }
22
+ field :status, Models::Components::PaymentLinkStatus, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('status'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::PaymentLinkStatus, false) } }
23
23
  # The partner's Moov account ID.
24
24
  field :partner_account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('partnerAccountID'), required: true } }
25
25
  # The merchant's Moov account ID.
@@ -59,7 +59,7 @@ module Moov
59
59
  field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
60
60
  # Options for payment links used to collect payment.
61
61
  field :payment, Crystalline::Nilable.new(Models::Components::PaymentLinkPaymentDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payment') } }
62
-
62
+ # Options for payout links used to send a payout.
63
63
  field :payout, Crystalline::Nilable.new(Models::Components::PaymentLinkPayoutDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout') } }
64
64
  # An optional collection of line items for a payment link.
65
65
  # When line items are provided, their total plus tax must equal the payment link amount.
@@ -20,7 +20,7 @@ module Moov
20
20
  #
21
21
  # If set to "auto" the UI will automatically select between
22
22
  # "pay" and "confirm" for payments and payouts respectively.
23
- field :call_to_action, Models::Components::CallToAction, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CallToAction, false) } }
23
+ field :call_to_action, Models::Components::CallToAction, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), required: true, 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CallToAction, false) } }
24
24
 
25
25
  sig { params(title: ::String, description: ::String, call_to_action: Models::Components::CallToAction).void }
26
26
  def initialize(title:, description:, call_to_action:)
@@ -20,7 +20,7 @@ module Moov
20
20
  #
21
21
  # If set to "auto" the UI will automatically select between
22
22
  # "pay" and "confirm" for payments and payouts respectively.
23
- field :call_to_action, Crystalline::Nilable.new(Models::Components::CallToAction), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CallToAction, true) } }
23
+ field :call_to_action, Crystalline::Nilable.new(Models::Components::CallToAction), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('callToAction'), 'decoder': ::Moov::Utils.open_enum_from_string(Models::Components::CallToAction, true) } }
24
24
 
25
25
  sig { params(title: T.nilable(::String), description: T.nilable(::String), call_to_action: T.nilable(Models::Components::CallToAction)).void }
26
26
  def initialize(title: nil, description: nil, call_to_action: nil)
@@ -7,7 +7,7 @@
7
7
  module Moov
8
8
  module Models
9
9
  module Components
10
-
10
+ # Options for payout links used to send a payout.
11
11
  class PaymentLinkPayoutDetails
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields