moov_ruby 26.10.0.pre.dev.1 → 26.10.0.pre.dev.2

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 (192) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/avatars.rb +4 -4
  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/capture.rb +77 -0
  21. data/lib/moov/models/components/capture.rbi +35 -0
  22. data/lib/moov/models/components/{refundcardstatus.rb → capturestatus.rb} +5 -4
  23. data/lib/moov/models/components/{refundcardstatus.rbi → capturestatus.rbi} +2 -2
  24. data/lib/moov/models/components/cardacquiringrefund.rb +11 -7
  25. data/lib/moov/models/components/cardacquiringrefund.rbi +4 -2
  26. data/lib/moov/models/components/cardpaymentoptions.rb +39 -0
  27. data/lib/moov/models/components/cardpaymentoptions.rbi +15 -0
  28. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rb +32 -0
  29. data/lib/moov/models/components/cardpaymentrefundprocessingdetails.rbi +13 -0
  30. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rb +44 -0
  31. data/lib/moov/models/components/cardpaymenttransferprocessingdetails.rbi +19 -0
  32. data/lib/moov/models/components/createcancellation.rb +32 -0
  33. data/lib/moov/models/components/createcancellation.rbi +13 -0
  34. data/lib/moov/models/components/createcapture.rb +65 -0
  35. data/lib/moov/models/components/createcapture.rbi +29 -0
  36. data/lib/moov/models/components/createdtransfer.rb +22 -22
  37. data/lib/moov/models/components/createdtransfer.rbi +8 -8
  38. data/lib/moov/models/components/createrefund.rb +9 -5
  39. data/lib/moov/models/components/createrefund.rbi +2 -0
  40. data/lib/moov/models/components/createreversal.rb +3 -3
  41. data/lib/moov/models/components/createtransfer.rb +4 -4
  42. data/lib/moov/models/components/createtransferfacilitatorfee.rb +36 -0
  43. data/lib/moov/models/components/createtransferfacilitatorfee.rbi +15 -0
  44. data/lib/moov/models/components/createtransferoptions.rb +2 -2
  45. data/lib/moov/models/components/fullissuedcard.rb +3 -3
  46. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rb +44 -0
  47. data/lib/moov/models/components/instantbankcredittransferprocessingdetails.rbi +19 -0
  48. data/lib/moov/models/components/issuedcard.rb +3 -3
  49. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  50. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  51. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  52. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  53. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  54. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  55. data/lib/moov/models/components/issuingcontrols.rb +18 -2
  56. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  57. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  58. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  59. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  60. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  61. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
  62. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  63. data/lib/moov/models/components/issuingintervallimit.rb +3 -0
  64. data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
  65. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  66. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  67. data/lib/moov/models/components/{achtransactionstatus.rbi → issuingscheduleday.rbi} +2 -2
  68. data/lib/moov/models/components/issuingvelocitylimit.rb +10 -6
  69. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  70. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  71. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  72. data/lib/moov/models/components/merchantcategories.rb +32 -0
  73. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  74. data/lib/moov/models/components/merchantcategory.rb +37 -0
  75. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  76. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  77. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  78. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  79. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  80. data/lib/moov/models/components/merchantentry.rb +40 -0
  81. data/lib/moov/models/components/merchantentry.rbi +17 -0
  82. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  83. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  84. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  85. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  86. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  87. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  88. data/lib/moov/models/components/moovfeedetails.rb +5 -5
  89. data/lib/moov/models/components/paymentmethodswallet.rb +1 -0
  90. data/lib/moov/models/components/pullfromcardoptions.rb +39 -0
  91. data/lib/moov/models/components/pullfromcardoptions.rbi +15 -0
  92. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rb +44 -0
  93. data/lib/moov/models/components/pullfromcardtransferprocessingdetails.rbi +19 -0
  94. data/lib/moov/models/components/pushtocardoptions.rb +32 -0
  95. data/lib/moov/models/components/pushtocardoptions.rbi +13 -0
  96. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rb +44 -0
  97. data/lib/moov/models/components/pushtocardtransferprocessingdetails.rbi +19 -0
  98. data/lib/moov/models/components/refundprocessingdetails.rb +32 -0
  99. data/lib/moov/models/components/refundprocessingdetails.rbi +13 -0
  100. data/lib/moov/models/components/schedulewindow.rb +40 -0
  101. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  102. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  103. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  104. data/lib/moov/models/components/sendfunds.rb +6 -2
  105. data/lib/moov/models/components/sendfunds.rbi +2 -0
  106. data/lib/moov/models/components/sendfundserror.rb +6 -2
  107. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  108. data/lib/moov/models/components/sendfundswire.rb +32 -0
  109. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  110. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  111. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  112. data/lib/moov/models/components/transfer.rb +22 -22
  113. data/lib/moov/models/components/transfer.rbi +8 -8
  114. data/lib/moov/models/components/transferauthorization.rb +52 -0
  115. data/lib/moov/models/components/transferauthorization.rbi +23 -0
  116. data/lib/moov/models/components/transferdestination.rb +5 -17
  117. data/lib/moov/models/components/transferdestination.rbi +0 -6
  118. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -0
  119. data/lib/moov/models/components/transferprocessingdetails.rb +52 -0
  120. data/lib/moov/models/components/transferprocessingdetails.rbi +23 -0
  121. data/lib/moov/models/components/transferrailoptions.rb +48 -0
  122. data/lib/moov/models/components/transferrailoptions.rbi +21 -0
  123. data/lib/moov/models/components/transfersource.rb +9 -17
  124. data/lib/moov/models/components/transfersource.rbi +2 -6
  125. data/lib/moov/models/components/transferstatus.rb +1 -0
  126. data/lib/moov/models/components/transfertype.rb +25 -0
  127. data/lib/moov/models/components/{cardtransactionstatus.rbi → transfertype.rbi} +2 -2
  128. data/lib/moov/models/components/updateissuedcard.rb +6 -2
  129. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  130. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  131. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  132. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  133. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  134. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  135. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  136. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  137. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  138. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  139. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  140. data/lib/moov/models/components/wallet.rb +1 -0
  141. data/lib/moov/models/components/wallettype.rb +2 -0
  142. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  143. data/lib/moov/models/components.rb +47 -9
  144. data/lib/moov/models/errors/capturevalidationerror.rb +68 -0
  145. data/lib/moov/models/errors/capturevalidationerror.rbi +31 -0
  146. data/lib/moov/models/errors/cardacquiringrefund_error.rb +11 -7
  147. data/lib/moov/models/errors/cardacquiringrefund_error.rbi +4 -2
  148. data/lib/moov/models/errors/transfer_error.rb +22 -22
  149. data/lib/moov/models/errors/transfer_error.rbi +8 -8
  150. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  151. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  152. data/lib/moov/models/errors.rb +1 -0
  153. data/lib/moov/models/operations/createcancellation_request.rb +6 -2
  154. data/lib/moov/models/operations/createcancellation_request.rbi +2 -0
  155. data/lib/moov/models/operations/createcapture_request.rb +44 -0
  156. data/lib/moov/models/operations/createcapture_request.rbi +19 -0
  157. data/lib/moov/models/operations/createcapture_response.rb +48 -0
  158. data/lib/moov/models/operations/createcapture_response.rbi +21 -0
  159. data/lib/moov/models/operations/createreversal_request.rb +3 -3
  160. data/lib/moov/models/operations/getcapture_request.rb +40 -0
  161. data/lib/moov/models/operations/getcapture_request.rbi +17 -0
  162. data/lib/moov/models/operations/getcapture_response.rb +48 -0
  163. data/lib/moov/models/operations/getcapture_response.rbi +21 -0
  164. data/lib/moov/models/operations/initiaterefund_request.rb +6 -6
  165. data/lib/moov/models/operations/initiaterefund_request.rbi +2 -2
  166. data/lib/moov/models/operations/listcaptures_request.rb +36 -0
  167. data/lib/moov/models/operations/listcaptures_request.rbi +15 -0
  168. data/lib/moov/models/operations/listcaptures_response.rb +48 -0
  169. data/lib/moov/models/operations/listcaptures_response.rbi +21 -0
  170. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  171. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  172. data/lib/moov/models/operations/listtransfers_request.rb +14 -2
  173. data/lib/moov/models/operations/listtransfers_request.rbi +6 -0
  174. data/lib/moov/models/operations.rb +7 -0
  175. data/lib/moov/sdkconfiguration.rb +2 -2
  176. data/lib/moov/transfers.rb +434 -5
  177. data/lib/moov_ruby.rb +1 -1
  178. metadata +112 -20
  179. data/lib/moov/models/components/achtransactiondetails.rb +0 -92
  180. data/lib/moov/models/components/achtransactiondetails.rbi +0 -43
  181. data/lib/moov/models/components/achtransactionstatus.rb +0 -24
  182. data/lib/moov/models/components/cardacquiringdispute.rb +0 -40
  183. data/lib/moov/models/components/cardacquiringdispute.rbi +0 -17
  184. data/lib/moov/models/components/cardtransactiondetails.rb +0 -93
  185. data/lib/moov/models/components/cardtransactiondetails.rbi +0 -41
  186. data/lib/moov/models/components/cardtransactionstatus.rb +0 -24
  187. data/lib/moov/models/components/instantbanktransactiondetails.rb +0 -64
  188. data/lib/moov/models/components/instantbanktransactiondetails.rbi +0 -29
  189. data/lib/moov/models/components/instantbanktransactionstatus.rb +0 -21
  190. data/lib/moov/models/components/instantbanktransactionstatus.rbi +0 -11
  191. data/lib/moov/models/components/refundcarddetails.rb +0 -56
  192. data/lib/moov/models/components/refundcarddetails.rbi +0 -25
@@ -0,0 +1,43 @@
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
+ # IssuingMerchantCategory - Predefined merchant category groups.
11
+ class IssuingMerchantCategory < T::Enum
12
+ enums do
13
+ ADVERTISING = new('advertising')
14
+ AIRLINES = new('airlines')
15
+ ALCOHOL_AND_BARS = new('alcohol-and-bars')
16
+ CAR_RENTAL = new('car-rental')
17
+ EDUCATION = new('education')
18
+ ELECTRONICS = new('electronics')
19
+ FUEL_AND_GAS = new('fuel-and-gas')
20
+ GAMBLING = new('gambling')
21
+ GROCERIES = new('groceries')
22
+ GROUND_TRANSPORTATION = new('ground-transportation')
23
+ HARDWARE_AND_HOME = new('hardware-and-home')
24
+ HEALTHCARE = new('healthcare')
25
+ LIVE_ENTERTAINMENT = new('live-entertainment')
26
+ LODGING = new('lodging')
27
+ MOVIES = new('movies')
28
+ OFFICE_SUPPLIES = new('office-supplies')
29
+ PARKING = new('parking')
30
+ PERSONAL_CARE = new('personal-care')
31
+ PROFESSIONAL_SERVICES = new('professional-services')
32
+ RESTAURANTS_AND_DINING = new('restaurants-and-dining')
33
+ RETAIL_GENERAL = new('retail-general')
34
+ RIDESHARE_AND_TAXIS = new('rideshare-and-taxis')
35
+ SOFTWARE_AND_SAAS = new('software-and-saas')
36
+ SPORTS_AND_RECREATION = new('sports-and-recreation')
37
+ SUBSCRIPTIONS = new('subscriptions')
38
+ TRAVEL_AGENCIES = new('travel-agencies')
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::IssuingMerchantCategory
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::IssuingMerchantCategory
11
+ end
@@ -0,0 +1,24 @@
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 IssuingScheduleDay < T::Enum
12
+ enums do
13
+ MONDAY = new('monday')
14
+ TUESDAY = new('tuesday')
15
+ WEDNESDAY = new('wednesday')
16
+ THURSDAY = new('thursday')
17
+ FRIDAY = new('friday')
18
+ SATURDAY = new('saturday')
19
+ SUNDAY = new('sunday')
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -2,10 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Moov::Models::Components::ACHTransactionStatus
5
+ class Moov::Models::Components::IssuingScheduleDay
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Moov::Models::Components::ACHTransactionStatus
10
+ class Moov::Models::Components::IssuingScheduleDay
11
11
  end
@@ -12,22 +12,26 @@ module Moov
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # The maximum amount in cents that can be spent in a given interval.
16
- field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
17
15
  # Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
18
16
  field :interval, Models::Components::IssuingIntervalLimit, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('interval'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingIntervalLimit, false) } }
17
+ # The maximum amount in cents that can be spent in a given interval.
18
+ field :amount, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
19
+ # The maximum number of transactions allowed in the given interval. At least one of `amount` or `count` must be set.
20
+ field :count, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('count') } }
19
21
 
20
- sig { params(amount: ::Integer, interval: Models::Components::IssuingIntervalLimit).void }
21
- def initialize(amount:, interval:)
22
- @amount = amount
22
+ sig { params(interval: Models::Components::IssuingIntervalLimit, amount: T.nilable(::Integer), count: T.nilable(::Integer)).void }
23
+ def initialize(interval:, amount: nil, count: nil)
23
24
  @interval = interval
25
+ @amount = amount
26
+ @count = count
24
27
  end
25
28
 
26
29
  sig { params(other: T.untyped).returns(T::Boolean) }
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
- return false unless @amount == other.amount
30
32
  return false unless @interval == other.interval
33
+ return false unless @amount == other.amount
34
+ return false unless @count == other.count
31
35
  true
32
36
  end
33
37
  end
@@ -8,8 +8,10 @@ end
8
8
 
9
9
 
10
10
  class Moov::Models::Components::IssuingVelocityLimit
11
- def amount(); end
12
- def amount=(str_); end
13
11
  def interval(); end
14
12
  def interval=(str_); end
13
+ def amount(); end
14
+ def amount=(str_); end
15
+ def count(); end
16
+ def count=(str_); end
15
17
  end
@@ -15,11 +15,14 @@ module Moov
15
15
 
16
16
  field :amount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount') } }
17
17
 
18
+ field :count, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('count') } }
19
+
18
20
  field :interval, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('interval') } }
19
21
 
20
- sig { params(amount: T.nilable(::String), interval: T.nilable(::String)).void }
21
- def initialize(amount: nil, interval: nil)
22
+ sig { params(amount: T.nilable(::String), count: T.nilable(::String), interval: T.nilable(::String)).void }
23
+ def initialize(amount: nil, count: nil, interval: nil)
22
24
  @amount = amount
25
+ @count = count
23
26
  @interval = interval
24
27
  end
25
28
 
@@ -27,6 +30,7 @@ module Moov
27
30
  def ==(other)
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @amount == other.amount
33
+ return false unless @count == other.count
30
34
  return false unless @interval == other.interval
31
35
  true
32
36
  end
@@ -10,6 +10,8 @@ end
10
10
  class Moov::Models::Components::IssuingVelocityLimitError
11
11
  def amount(); end
12
12
  def amount=(str_); end
13
+ def count(); end
14
+ def count=(str_); end
13
15
  def interval(); end
14
16
  def interval=(str_); end
15
17
  end
@@ -0,0 +1,32 @@
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
+ # The predefined merchant category groups available for issued card spend controls.
11
+ class MerchantCategories
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :merchant_categories, Crystalline::Array.new(Models::Components::MerchantCategory), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantCategories'), required: true } }
17
+
18
+ sig { params(merchant_categories: T::Array[Models::Components::MerchantCategory]).void }
19
+ def initialize(merchant_categories:)
20
+ @merchant_categories = merchant_categories
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @merchant_categories == other.merchant_categories
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::MerchantCategories
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantCategories
11
+ def merchant_categories(); end
12
+ def merchant_categories=(str_); end
13
+ end
@@ -0,0 +1,37 @@
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
+ # A predefined merchant category group and the merchant category codes (MCCs) it covers.
11
+ class MerchantCategory
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The predefined category group.
16
+ field :category, Models::Components::IssuingMerchantCategory, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('category'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingMerchantCategory, false) } }
17
+ # The merchant category codes (MCCs) covered by this category. Each entry is either a single
18
+ # 4-digit MCC, such as `4511`, or an inclusive range of MCCs, such as `3000-3299`.
19
+ field :mccs, Crystalline::Array.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mccs'), required: true } }
20
+
21
+ sig { params(category: Models::Components::IssuingMerchantCategory, mccs: T::Array[::String]).void }
22
+ def initialize(category:, mccs:)
23
+ @category = category
24
+ @mccs = mccs
25
+ end
26
+
27
+ sig { params(other: T.untyped).returns(T::Boolean) }
28
+ def ==(other)
29
+ return false unless other.is_a? self.class
30
+ return false unless @category == other.category
31
+ return false unless @mccs == other.mccs
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::MerchantCategory
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantCategory
11
+ def category(); end
12
+ def category=(str_); end
13
+ def mccs(); end
14
+ def mccs=(str_); end
15
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Moov
8
+ module Models
9
+ module Components
10
+ # Restricts card usage by merchant category.
11
+ class MerchantCategoryRestrictions
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, Models::Components::IssuingControlsRestrictionMode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingControlsRestrictionMode, false) } }
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: 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:, 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::MerchantCategoryRestrictions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantCategoryRestrictions
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,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
+
11
+ class MerchantCategoryRestrictionsError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :mode, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode') } }
17
+
18
+ field :categories, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('categories') } }
19
+
20
+ field :custom_mc_cs, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::String)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customMCCs') } }
21
+
22
+ field :exempt_merchants, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::MerchantEntryError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('exemptMerchants') } }
23
+
24
+ sig { params(mode: T.nilable(::String), categories: T.nilable(T::Hash[Symbol, ::String]), custom_mc_cs: T.nilable(T::Hash[Symbol, ::String]), exempt_merchants: T.nilable(T::Hash[Symbol, Models::Components::MerchantEntryError])).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::MerchantCategoryRestrictionsError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantCategoryRestrictionsError
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,40 @@
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
+ # Identifies a merchant by ID, descriptor pattern, or both. At least one of `mid` or `descriptorPattern` must be set.
11
+ class MerchantEntry
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The merchant's unique identifier (ISO 8583 DE42), matched exactly.
16
+ field :mid, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mid') } }
17
+ # A case-insensitive RE2 regular expression matched against the merchant descriptor (ISO 8583 DE43).
18
+ field :descriptor_pattern, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('descriptorPattern') } }
19
+ # An optional label for this entry.
20
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('name') } }
21
+
22
+ sig { params(mid: T.nilable(::String), descriptor_pattern: T.nilable(::String), name: T.nilable(::String)).void }
23
+ def initialize(mid: nil, descriptor_pattern: nil, name: nil)
24
+ @mid = mid
25
+ @descriptor_pattern = descriptor_pattern
26
+ @name = name
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @mid == other.mid
33
+ return false unless @descriptor_pattern == other.descriptor_pattern
34
+ return false unless @name == other.name
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::MerchantEntry
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantEntry
11
+ def mid(); end
12
+ def mid=(str_); end
13
+ def descriptor_pattern(); end
14
+ def descriptor_pattern=(str_); end
15
+ def name(); end
16
+ def name=(str_); end
17
+ 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
+
11
+ class MerchantEntryError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :mid, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mid') } }
17
+
18
+ field :descriptor_pattern, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('descriptorPattern') } }
19
+
20
+ sig { params(mid: T.nilable(::String), descriptor_pattern: T.nilable(::String)).void }
21
+ def initialize(mid: nil, descriptor_pattern: nil)
22
+ @mid = mid
23
+ @descriptor_pattern = descriptor_pattern
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 @mid == other.mid
30
+ return false unless @descriptor_pattern == other.descriptor_pattern
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::MerchantEntryError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantEntryError
11
+ def mid(); end
12
+ def mid=(str_); end
13
+ def descriptor_pattern(); end
14
+ def descriptor_pattern=(str_); end
15
+ 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
+ # Restricts card usage to specific merchants, independent of merchant category.
11
+ class MerchantRestrictions
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, Models::Components::IssuingControlsRestrictionMode, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::IssuingControlsRestrictionMode, false) } }
17
+ # The merchants to allow or block.
18
+ field :merchants, Crystalline::Array.new(Models::Components::MerchantEntry), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchants'), required: true } }
19
+
20
+ sig { params(mode: Models::Components::IssuingControlsRestrictionMode, merchants: T::Array[Models::Components::MerchantEntry]).void }
21
+ def initialize(mode:, merchants:)
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::MerchantRestrictions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantRestrictions
11
+ def mode(); end
12
+ def mode=(str_); end
13
+ def merchants(); end
14
+ def merchants=(str_); end
15
+ 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
+
11
+ class MerchantRestrictionsError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :mode, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode') } }
17
+
18
+ field :merchants, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::MerchantEntryError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchants') } }
19
+
20
+ sig { params(mode: T.nilable(::String), merchants: T.nilable(T::Hash[Symbol, Models::Components::MerchantEntryError])).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::MerchantRestrictionsError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::MerchantRestrictionsError
11
+ def mode(); end
12
+ def mode=(str_); end
13
+ def merchants(); end
14
+ def merchants=(str_); end
15
+ end
@@ -13,15 +13,15 @@ module Moov
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
  # Moov processing fee. String type represents dollars with up to 9 decimal place precision.
16
- field :moov_processing, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovProcessing'), required: true } }
16
+ field :moov_processing, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('moovProcessing'), required: true } }
17
17
  # Card scheme fees accrued during authorization and settlement. String type represents dollars with up to 9 decimal place precision.
18
- field :card_scheme, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardScheme') } }
18
+ field :card_scheme, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardScheme') } }
19
19
  # Network interchange fee for Visa, Mastercard, or Discover. String type represents dollars with up to 9 decimal place precision.
20
- field :interchange, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('interchange') } }
20
+ field :interchange, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('interchange') } }
21
21
  # Network discount fee for American Express. String type represents dollars with up to 9 decimal place precision.
22
- field :discount, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('discount') } }
22
+ field :discount, Crystalline::Nilable.new(Models::Components::AmountDecimal), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('discount') } }
23
23
 
24
- sig { params(moov_processing: ::String, card_scheme: T.nilable(::String), interchange: T.nilable(::String), discount: T.nilable(::String)).void }
24
+ sig { params(moov_processing: Models::Components::AmountDecimal, card_scheme: T.nilable(Models::Components::AmountDecimal), interchange: T.nilable(Models::Components::AmountDecimal), discount: T.nilable(Models::Components::AmountDecimal)).void }
25
25
  def initialize(moov_processing:, card_scheme: nil, interchange: nil, discount: nil)
26
26
  @moov_processing = moov_processing
27
27
  @card_scheme = card_scheme