moov_ruby 0.0.0.pre.dev.23 → 0.0.0.pre.dev.25

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 (246) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/avatars.rb +276 -1
  3. data/lib/moov/card_issuing.rb +116 -0
  4. data/lib/moov/client.rb +2 -2
  5. data/lib/moov/enriched_address.rb +1 -1
  6. data/lib/moov/enriched_profile.rb +1 -1
  7. data/lib/moov/institutions.rb +1 -1
  8. data/lib/moov/models/components/achcreditoptions.rb +40 -0
  9. data/lib/moov/models/components/achcreditoptions.rbi +17 -0
  10. data/lib/moov/models/components/achcredittransferprocessingdetails.rb +40 -0
  11. data/lib/moov/models/components/achcredittransferprocessingdetails.rbi +17 -0
  12. data/lib/moov/models/components/achdebitoptions.rb +48 -0
  13. data/lib/moov/models/components/achdebitoptions.rbi +21 -0
  14. data/lib/moov/models/components/achdebittransferprocessingdetails.rb +40 -0
  15. data/lib/moov/models/components/achdebittransferprocessingdetails.rbi +17 -0
  16. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  17. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  18. data/lib/moov/models/components/asynccreatedrefund.rb +7 -3
  19. data/lib/moov/models/components/asynccreatedrefund.rbi +2 -0
  20. data/lib/moov/models/components/avataruploadrequest.rb +32 -0
  21. data/lib/moov/models/components/avataruploadrequest.rbi +13 -0
  22. data/lib/moov/models/components/avataruploadrequest_file.rb +36 -0
  23. data/lib/moov/models/components/avataruploadrequest_file.rbi +15 -0
  24. data/lib/moov/models/components/capabilityid.rb +1 -0
  25. data/lib/moov/models/components/capture.rb +77 -0
  26. data/lib/moov/models/components/capture.rbi +35 -0
  27. data/lib/moov/models/components/{refundcardstatus.rb → capturestatus.rb} +5 -4
  28. data/lib/moov/models/components/{refundcardstatus.rbi → capturestatus.rbi} +2 -2
  29. data/lib/moov/models/components/cardacquiringrefund.rb +11 -7
  30. data/lib/moov/models/components/cardacquiringrefund.rbi +4 -2
  31. data/lib/moov/models/components/cardpaymentoptions.rb +39 -0
  32. data/lib/moov/models/components/cardpaymentoptions.rbi +15 -0
  33. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +32 -0
  34. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +13 -0
  35. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +44 -0
  36. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +19 -0
  37. data/lib/moov/models/components/createcancellation.rb +32 -0
  38. data/lib/moov/models/components/createcancellation.rbi +13 -0
  39. data/lib/moov/models/components/createcapture.rb +65 -0
  40. data/lib/moov/models/components/createcapture.rbi +29 -0
  41. data/lib/moov/models/components/createdtransfer.rb +22 -26
  42. data/lib/moov/models/components/createdtransfer.rbi +8 -10
  43. data/lib/moov/models/components/createrefund.rb +9 -5
  44. data/lib/moov/models/components/createrefund.rbi +2 -0
  45. data/lib/moov/models/components/createreversal.rb +3 -3
  46. data/lib/moov/models/components/createtransfer.rb +9 -5
  47. data/lib/moov/models/components/createtransfer.rbi +2 -0
  48. data/lib/moov/models/components/createtransferfacilitatorfee.rb +36 -0
  49. data/lib/moov/models/components/createtransferfacilitatorfee.rbi +15 -0
  50. data/lib/moov/models/components/createtransferoptions.rb +2 -2
  51. data/lib/moov/models/components/feepaidby.rb +19 -0
  52. data/lib/moov/models/components/{achtransactionstatus.rbi → feepaidby.rbi} +2 -2
  53. data/lib/moov/models/components/fullissuedcard.rb +3 -3
  54. data/lib/moov/models/components/incurredfee.rb +6 -2
  55. data/lib/moov/models/components/incurredfee.rbi +2 -0
  56. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +44 -0
  57. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rbi +19 -0
  58. data/lib/moov/models/components/issuedcard.rb +3 -3
  59. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  60. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  61. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  62. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  63. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  64. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  65. data/lib/moov/models/components/issuingcontrols.rb +18 -2
  66. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  67. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  68. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  69. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  70. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  71. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
  72. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  73. data/lib/moov/models/components/issuingintervallimit.rb +4 -1
  74. data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
  75. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  76. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  77. data/lib/moov/models/components/{cardtransactionstatus.rbi → issuingscheduleday.rbi} +2 -2
  78. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  79. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  80. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  81. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  82. data/lib/moov/models/components/merchantcategories.rb +32 -0
  83. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  84. data/lib/moov/models/components/merchantcategory.rb +37 -0
  85. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  86. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  87. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  88. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  89. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  90. data/lib/moov/models/components/merchantentry.rb +40 -0
  91. data/lib/moov/models/components/merchantentry.rbi +17 -0
  92. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  93. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  94. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  95. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  96. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  97. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  98. data/lib/moov/models/components/moovfeedetails.rb +5 -5
  99. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +8 -2
  100. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +2 -0
  101. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +8 -2
  102. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +2 -0
  103. data/lib/moov/models/components/paymentmethodswallet.rb +1 -0
  104. data/lib/moov/models/components/payoutdetailserror.rb +6 -2
  105. data/lib/moov/models/components/payoutdetailserror.rbi +2 -0
  106. data/lib/moov/models/components/product.rb +6 -2
  107. data/lib/moov/models/components/product.rbi +2 -0
  108. data/lib/moov/models/components/productcategories.rb +32 -0
  109. data/lib/moov/models/components/productcategories.rbi +13 -0
  110. data/lib/moov/models/components/productcategory.rb +48 -0
  111. data/lib/moov/models/components/productcategory.rbi +21 -0
  112. data/lib/moov/models/components/productrequest.rb +6 -2
  113. data/lib/moov/models/components/productrequest.rbi +2 -0
  114. data/lib/moov/models/components/pullfromcardoptions.rb +39 -0
  115. data/lib/moov/models/components/pullfromcardoptions.rbi +15 -0
  116. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +44 -0
  117. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +19 -0
  118. data/lib/moov/models/components/pushtocardoptions.rb +32 -0
  119. data/lib/moov/models/components/pushtocardoptions.rbi +13 -0
  120. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +44 -0
  121. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +19 -0
  122. data/lib/moov/models/components/refundprocessingdetails.rb +32 -0
  123. data/lib/moov/models/components/refundprocessingdetails.rbi +13 -0
  124. data/lib/moov/models/components/schedulewindow.rb +40 -0
  125. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  126. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  127. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  128. data/lib/moov/models/components/schemebasicauth.rb +36 -0
  129. data/lib/moov/models/components/schemebasicauth.rbi +15 -0
  130. data/lib/moov/models/components/schemeoauth2auth.rb +40 -0
  131. data/lib/moov/models/components/schemeoauth2auth.rbi +17 -0
  132. data/lib/moov/models/components/sendfunds.rb +6 -2
  133. data/lib/moov/models/components/sendfunds.rbi +2 -0
  134. data/lib/moov/models/components/sendfundserror.rb +6 -2
  135. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  136. data/lib/moov/models/components/sendfundswire.rb +32 -0
  137. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  138. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  139. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  140. data/lib/moov/models/components/transfer.rb +22 -26
  141. data/lib/moov/models/components/transfer.rbi +8 -10
  142. data/lib/moov/models/components/transferauthorization.rb +52 -0
  143. data/lib/moov/models/components/transferauthorization.rbi +23 -0
  144. data/lib/moov/models/components/transferdestination.rb +5 -17
  145. data/lib/moov/models/components/transferdestination.rbi +0 -6
  146. data/lib/moov/models/components/transferfeepaidby.rb +32 -0
  147. data/lib/moov/models/components/transferfeepaidby.rbi +13 -0
  148. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -0
  149. data/lib/moov/models/components/transferprocessingdetails.rb +52 -0
  150. data/lib/moov/models/components/transferprocessingdetails.rbi +23 -0
  151. data/lib/moov/models/components/transferrailoptions.rb +48 -0
  152. data/lib/moov/models/components/transferrailoptions.rbi +21 -0
  153. data/lib/moov/models/components/transfersource.rb +9 -17
  154. data/lib/moov/models/components/transfersource.rbi +2 -6
  155. data/lib/moov/models/components/transferstatus.rb +1 -0
  156. data/lib/moov/models/components/transfertype.rb +25 -0
  157. data/lib/moov/models/components/transfertype.rbi +11 -0
  158. data/lib/moov/models/components/updateissuedcard.rb +6 -2
  159. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  160. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  161. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  162. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  163. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  164. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  165. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  166. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  167. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  168. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  169. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  170. data/lib/moov/models/components/wallet.rb +1 -0
  171. data/lib/moov/models/components/wallettype.rb +2 -0
  172. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  173. data/lib/moov/models/components.rb +55 -10
  174. data/lib/moov/models/errors/capturevalidationerror.rb +68 -0
  175. data/lib/moov/models/errors/capturevalidationerror.rbi +31 -0
  176. data/lib/moov/models/errors/cardacquiringrefund_error.rb +11 -7
  177. data/lib/moov/models/errors/cardacquiringrefund_error.rbi +4 -2
  178. data/lib/moov/models/errors/productrequestvalidationerror.rb +6 -2
  179. data/lib/moov/models/errors/productrequestvalidationerror.rbi +2 -0
  180. data/lib/moov/models/errors/transfer_error.rb +22 -26
  181. data/lib/moov/models/errors/transfer_error.rbi +8 -10
  182. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  183. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  184. data/lib/moov/models/errors.rb +1 -0
  185. data/lib/moov/models/operations/createcancellation_request.rb +6 -2
  186. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  187. data/lib/moov/models/operations/createcapture_request.rb +44 -0
  188. data/lib/moov/models/operations/createcapture_request.rbi +19 -0
  189. data/lib/moov/models/operations/createcapture_response.rb +48 -0
  190. data/lib/moov/models/operations/createcapture_response.rbi +21 -0
  191. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  192. data/lib/moov/models/operations/deleteavatar_request.rb +32 -0
  193. data/lib/moov/models/operations/deleteavatar_request.rbi +13 -0
  194. data/lib/moov/models/operations/deleteavatar_response.rb +44 -0
  195. data/lib/moov/models/operations/deleteavatar_response.rbi +19 -0
  196. data/lib/moov/models/operations/deleteavatar_security.rb +36 -0
  197. data/lib/moov/models/operations/deleteavatar_security.rbi +15 -0
  198. data/lib/moov/models/operations/getcapture_request.rb +40 -0
  199. data/lib/moov/models/operations/getcapture_request.rbi +17 -0
  200. data/lib/moov/models/operations/getcapture_response.rb +48 -0
  201. data/lib/moov/models/operations/getcapture_response.rbi +21 -0
  202. data/lib/moov/models/operations/initiaterefund_request.rb +6 -6
  203. data/lib/moov/models/operations/initiaterefund_request.rbi +2 -2
  204. data/lib/moov/models/operations/listcaptures_request.rb +36 -0
  205. data/lib/moov/models/operations/listcaptures_request.rbi +15 -0
  206. data/lib/moov/models/operations/listcaptures_response.rb +48 -0
  207. data/lib/moov/models/operations/listcaptures_response.rbi +21 -0
  208. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  209. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  210. data/lib/moov/models/operations/listproductcategories_response.rb +48 -0
  211. data/lib/moov/models/operations/listproductcategories_response.rbi +21 -0
  212. data/lib/moov/models/operations/listproducts_request.rb +8 -2
  213. data/lib/moov/models/operations/listproducts_request.rbi +2 -0
  214. data/lib/moov/models/operations/listtransfers_request.rb +6 -2
  215. data/lib/moov/models/operations/listtransfers_request.rbi +2 -0
  216. data/lib/moov/models/operations/uploadavatar_request.rb +36 -0
  217. data/lib/moov/models/operations/uploadavatar_request.rbi +15 -0
  218. data/lib/moov/models/operations/uploadavatar_response.rb +44 -0
  219. data/lib/moov/models/operations/uploadavatar_response.rbi +19 -0
  220. data/lib/moov/models/operations/uploadavatar_security.rb +36 -0
  221. data/lib/moov/models/operations/uploadavatar_security.rbi +15 -0
  222. data/lib/moov/models/operations.rb +14 -0
  223. data/lib/moov/products.rb +113 -8
  224. data/lib/moov/sdk_hooks/clientcredentials.rb +386 -0
  225. data/lib/moov/sdk_hooks/hooks.rb +6 -0
  226. data/lib/moov/sdk_hooks/oauth2scopes.rb +18 -0
  227. data/lib/moov/sdkconfiguration.rb +3 -3
  228. data/lib/moov/transfers.rb +434 -5
  229. data/lib/moov_ruby.rb +1 -1
  230. metadata +144 -22
  231. data/lib/moov/models/components/achtransactiondetails.rb +0 -92
  232. data/lib/moov/models/components/achtransactiondetails.rbi +0 -43
  233. data/lib/moov/models/components/achtransactionstatus.rb +0 -24
  234. data/lib/moov/models/components/cardacquiringdispute.rb +0 -40
  235. data/lib/moov/models/components/cardacquiringdispute.rbi +0 -17
  236. data/lib/moov/models/components/cardtransactiondetails.rb +0 -93
  237. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -41
  238. data/lib/moov/models/components/cardtransactionstatus.rb +0 -24
  239. data/lib/moov/models/components/instantbanktransactiondetails.rb +0 -64
  240. data/lib/moov/models/components/instantbanktransactiondetails.rbi +0 -29
  241. data/lib/moov/models/components/instantbanktransactionstatus.rb +0 -21
  242. data/lib/moov/models/components/instantbanktransactionstatus.rbi +0 -11
  243. data/lib/moov/models/components/refundcarddetails.rb +0 -56
  244. data/lib/moov/models/components/refundcarddetails.rbi +0 -25
  245. data/lib/moov/models/components/transfercapture.rb +0 -36
  246. data/lib/moov/models/components/transfercapture.rbi +0 -15
@@ -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 TransferProcessingDetails
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :card_payment, Crystalline::Nilable.new(Models::Components::CardPaymentTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardPayment') } }
17
+
18
+ field :push_to_card, Crystalline::Nilable.new(Models::Components::PushToCardTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pushToCard') } }
19
+
20
+ field :pull_from_card, Crystalline::Nilable.new(Models::Components::PullFromCardTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('pullFromCard') } }
21
+
22
+ field :ach_debit, Crystalline::Nilable.new(Models::Components::ACHDebitTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achDebit') } }
23
+
24
+ field :ach_credit, Crystalline::Nilable.new(Models::Components::ACHCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('achCredit') } }
25
+
26
+ field :instant_bank_credit, Crystalline::Nilable.new(Models::Components::InstantBankCreditTransferProcessingDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('instantBankCredit') } }
27
+
28
+ sig { params(card_payment: T.nilable(Models::Components::CardPaymentTransferProcessingDetails), push_to_card: T.nilable(Models::Components::PushToCardTransferProcessingDetails), pull_from_card: T.nilable(Models::Components::PullFromCardTransferProcessingDetails), ach_debit: T.nilable(Models::Components::ACHDebitTransferProcessingDetails), ach_credit: T.nilable(Models::Components::ACHCreditTransferProcessingDetails), instant_bank_credit: T.nilable(Models::Components::InstantBankCreditTransferProcessingDetails)).void }
29
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil, instant_bank_credit: 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
+ @instant_bank_credit = instant_bank_credit
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 @instant_bank_credit == other.instant_bank_credit
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::TransferProcessingDetails
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferProcessingDetails
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 instant_bank_credit(); end
22
+ def instant_bank_credit=(str_); end
23
+ 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
+
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
+
26
+ 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)).void }
27
+ def initialize(card_payment: nil, push_to_card: nil, pull_from_card: nil, ach_debit: nil, ach_credit: nil)
28
+ @card_payment = card_payment
29
+ @push_to_card = push_to_card
30
+ @pull_from_card = pull_from_card
31
+ @ach_debit = ach_debit
32
+ @ach_credit = ach_credit
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 @card_payment == other.card_payment
39
+ return false unless @push_to_card == other.push_to_card
40
+ return false unless @pull_from_card == other.pull_from_card
41
+ return false unless @ach_debit == other.ach_debit
42
+ return false unless @ach_credit == other.ach_credit
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::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
+ 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.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
@@ -16,6 +16,7 @@ module Moov
16
16
  FAILED = new('failed')
17
17
  REVERSED = new('reversed')
18
18
  QUEUED = new('queued')
19
+ AWAITING_CAPTURE = new('awaiting-capture')
19
20
  CANCELED = new('canceled')
20
21
  end
21
22
  end
@@ -0,0 +1,25 @@
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 < T::Enum
12
+ enums do
13
+ CARD_PAYMENT = new('card-payment')
14
+ PUSH_TO_CARD = new('push-to-card')
15
+ PULL_FROM_CARD = new('pull-from-card')
16
+ ACH_DEBIT = new('ach-debit')
17
+ ACH_CREDIT = new('ach-credit')
18
+ ACH_DEBIT_TO_ACH_CREDIT = new('ach-debit-to-ach-credit')
19
+ INSTANT_BANK_CREDIT = new('instant-bank-credit')
20
+ WALLET = new('wallet')
21
+ end
22
+ end
23
+ end
24
+ end
25
+ 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
@@ -15,6 +15,8 @@ module Moov
15
15
  # Updates the state of a Moov issued card.
16
16
  # - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
17
17
  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) } }
18
+ # Mutable spend controls for the card.
19
+ field :controls, Crystalline::Nilable.new(Models::Components::UpdateIssuingControls), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('controls') } }
18
20
 
19
21
  field :nickname, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('nickname') } }
20
22
 
@@ -22,9 +24,10 @@ module Moov
22
24
 
23
25
  field :billing_address, Crystalline::Nilable.new(Models::Components::BillingAddress), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('billingAddress') } }
24
26
 
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)
27
+ 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 }
28
+ def initialize(state: nil, controls: nil, nickname: nil, metadata: nil, billing_address: nil)
27
29
  @state = state
30
+ @controls = controls
28
31
  @nickname = nickname
29
32
  @metadata = metadata
30
33
  @billing_address = billing_address
@@ -34,6 +37,7 @@ module Moov
34
37
  def ==(other)
35
38
  return false unless other.is_a? self.class
36
39
  return false unless @state == other.state
40
+ return false unless @controls == other.controls
37
41
  return false unless @nickname == other.nickname
38
42
  return false unless @metadata == other.metadata
39
43
  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
@@ -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
+ # Mutable spend controls. 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
+ # Replaces the merchant category restrictions. Set to `null` to remove.
18
+ field :merchant_category_restrictions, Crystalline::Nilable.new(Models::Components::UpdateIssuingControlsMerchantCategoryRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantCategoryRestrictions') } }
19
+ # Replaces the merchant restrictions. Set to `null` to remove.
20
+ field :merchant_restrictions, Crystalline::Nilable.new(Models::Components::UpdateIssuingControlsMerchantRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantRestrictions') } }
21
+ # Replaces the allowed schedule. 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 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
+ # Replaces the allowed schedule. 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
+ # Replaces the merchant category restrictions. Set to `null` to remove.
11
+ class UpdateIssuingControlsMerchantCategoryRestrictions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the listed categories are the only ones allowed, or the ones to block.
16
+ field :mode, Crystalline::Nilable.new(Models::Components::IssuingControlsRestrictionMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.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
@@ -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
+ # Replaces the merchant restrictions. Set to `null` to remove.
11
+ class UpdateIssuingControlsMerchantRestrictions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the listed merchants are the only ones allowed, or the ones to block.
16
+ field :mode, Crystalline::Nilable.new(Models::Components::IssuingControlsRestrictionMode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingControlsRestrictionMode, true) } }
17
+ # The merchants to allow or block.
18
+ field :merchants, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::MerchantEntry)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchants') } }
19
+
20
+ sig { params(mode: T.nilable(Models::Components::IssuingControlsRestrictionMode), merchants: T.nilable(T::Array[Models::Components::MerchantEntry])).void }
21
+ def initialize(mode: nil, merchants: nil)
22
+ @mode = mode
23
+ @merchants = merchants
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 @mode == other.mode
30
+ return false unless @merchants == other.merchants
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::UpdateIssuingControlsMerchantRestrictions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateIssuingControlsMerchantRestrictions
11
+ def mode(); end
12
+ def mode=(str_); end
13
+ def merchants(); end
14
+ def merchants=(str_); end
15
+ 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
+
11
+ class UpdateIssuingControlsError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :velocity_limits, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::IssuingVelocityLimitError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('velocityLimits') } }
17
+
18
+ field :merchant_category_restrictions, Crystalline::Nilable.new(Models::Components::MerchantCategoryRestrictionsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantCategoryRestrictions') } }
19
+
20
+ field :merchant_restrictions, Crystalline::Nilable.new(Models::Components::MerchantRestrictionsError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantRestrictions') } }
21
+
22
+ field :allowed_schedule, Crystalline::Nilable.new(Models::Components::AllowedScheduleError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedSchedule') } }
23
+
24
+ field :expires_on, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn') } }
25
+
26
+ sig { params(velocity_limits: T.nilable(T::Hash[Symbol, Models::Components::IssuingVelocityLimitError]), merchant_category_restrictions: T.nilable(Models::Components::MerchantCategoryRestrictionsError), merchant_restrictions: T.nilable(Models::Components::MerchantRestrictionsError), allowed_schedule: T.nilable(Models::Components::AllowedScheduleError), expires_on: T.nilable(::String)).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::UpdateIssuingControlsError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::UpdateIssuingControlsError
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