moov_ruby 26.7.0.pre.dev.6 → 26.7.1

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 (153) 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/allowedscheduleerror.rb +36 -0
  9. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  10. data/lib/moov/models/components/avataruploadrequest.rb +32 -0
  11. data/lib/moov/models/components/avataruploadrequest.rbi +13 -0
  12. data/lib/moov/models/components/avataruploadrequest_file.rb +36 -0
  13. data/lib/moov/models/components/avataruploadrequest_file.rbi +15 -0
  14. data/lib/moov/models/components/capabilityid.rb +1 -0
  15. data/lib/moov/models/components/createdtransfer.rb +6 -2
  16. data/lib/moov/models/components/createdtransfer.rbi +2 -0
  17. data/lib/moov/models/components/createrefund.rb +2 -2
  18. data/lib/moov/models/components/createreversal.rb +1 -1
  19. data/lib/moov/models/components/createtransfer.rb +6 -2
  20. data/lib/moov/models/components/createtransfer.rbi +2 -0
  21. data/lib/moov/models/components/feepaidby.rb +19 -0
  22. data/lib/moov/models/components/feepaidby.rbi +11 -0
  23. data/lib/moov/models/components/fullissuedcard.rb +3 -3
  24. data/lib/moov/models/components/incurredfee.rb +6 -2
  25. data/lib/moov/models/components/incurredfee.rbi +2 -0
  26. data/lib/moov/models/components/issuedcard.rb +3 -3
  27. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  28. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  29. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  30. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  31. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  32. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  33. data/lib/moov/models/components/issuingcontrols.rb +18 -2
  34. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  35. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  36. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  37. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  38. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  39. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
  40. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  41. data/lib/moov/models/components/issuingintervallimit.rb +4 -1
  42. data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
  43. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  44. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  45. data/lib/moov/models/components/issuingscheduleday.rbi +11 -0
  46. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  47. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  48. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  49. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  50. data/lib/moov/models/components/merchantcategories.rb +32 -0
  51. data/lib/moov/models/components/merchantcategories.rbi +13 -0
  52. data/lib/moov/models/components/merchantcategory.rb +37 -0
  53. data/lib/moov/models/components/merchantcategory.rbi +15 -0
  54. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  55. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  56. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  57. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  58. data/lib/moov/models/components/merchantentry.rb +40 -0
  59. data/lib/moov/models/components/merchantentry.rbi +17 -0
  60. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  61. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  62. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  63. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  64. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  65. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  66. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +8 -2
  67. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +2 -0
  68. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +8 -2
  69. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +2 -0
  70. data/lib/moov/models/components/paymentmethodswallet.rb +1 -0
  71. data/lib/moov/models/components/payoutdetailserror.rb +6 -2
  72. data/lib/moov/models/components/payoutdetailserror.rbi +2 -0
  73. data/lib/moov/models/components/product.rb +6 -2
  74. data/lib/moov/models/components/product.rbi +2 -0
  75. data/lib/moov/models/components/productcategories.rb +32 -0
  76. data/lib/moov/models/components/productcategories.rbi +13 -0
  77. data/lib/moov/models/components/productcategory.rb +48 -0
  78. data/lib/moov/models/components/productcategory.rbi +21 -0
  79. data/lib/moov/models/components/productrequest.rb +6 -2
  80. data/lib/moov/models/components/productrequest.rbi +2 -0
  81. data/lib/moov/models/components/schedulewindow.rb +40 -0
  82. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  83. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  84. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  85. data/lib/moov/models/components/schemebasicauth.rb +36 -0
  86. data/lib/moov/models/components/schemebasicauth.rbi +15 -0
  87. data/lib/moov/models/components/schemeoauth2auth.rb +40 -0
  88. data/lib/moov/models/components/schemeoauth2auth.rbi +17 -0
  89. data/lib/moov/models/components/sendfunds.rb +6 -2
  90. data/lib/moov/models/components/sendfunds.rbi +2 -0
  91. data/lib/moov/models/components/sendfundserror.rb +6 -2
  92. data/lib/moov/models/components/sendfundserror.rbi +2 -0
  93. data/lib/moov/models/components/sendfundswire.rb +32 -0
  94. data/lib/moov/models/components/sendfundswire.rbi +13 -0
  95. data/lib/moov/models/components/sendfundswireerror.rb +32 -0
  96. data/lib/moov/models/components/sendfundswireerror.rbi +13 -0
  97. data/lib/moov/models/components/transfer.rb +6 -2
  98. data/lib/moov/models/components/transfer.rbi +2 -0
  99. data/lib/moov/models/components/transfercapture.rb +36 -0
  100. data/lib/moov/models/components/transfercapture.rbi +15 -0
  101. data/lib/moov/models/components/transferfeepaidby.rb +32 -0
  102. data/lib/moov/models/components/transferfeepaidby.rbi +13 -0
  103. data/lib/moov/models/components/transferpaymentmethodswallet.rb +1 -0
  104. data/lib/moov/models/components/updateissuedcard.rb +6 -2
  105. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  106. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  107. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  108. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  109. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  110. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  111. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  112. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  113. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  114. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  115. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  116. data/lib/moov/models/components/wallet.rb +1 -0
  117. data/lib/moov/models/components/wallettype.rb +2 -0
  118. data/lib/moov/models/components/webhookdatatransferstatus.rb +3 -0
  119. data/lib/moov/models/components.rb +34 -0
  120. data/lib/moov/models/errors/productrequestvalidationerror.rb +6 -2
  121. data/lib/moov/models/errors/productrequestvalidationerror.rbi +2 -0
  122. data/lib/moov/models/errors/transfer_error.rb +6 -2
  123. data/lib/moov/models/errors/transfer_error.rbi +2 -0
  124. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  125. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  126. data/lib/moov/models/operations/deleteavatar_request.rb +32 -0
  127. data/lib/moov/models/operations/deleteavatar_request.rbi +13 -0
  128. data/lib/moov/models/operations/deleteavatar_response.rb +44 -0
  129. data/lib/moov/models/operations/deleteavatar_response.rbi +19 -0
  130. data/lib/moov/models/operations/deleteavatar_security.rb +36 -0
  131. data/lib/moov/models/operations/deleteavatar_security.rbi +15 -0
  132. data/lib/moov/models/operations/listissuingmerchantcategories_response.rb +48 -0
  133. data/lib/moov/models/operations/listissuingmerchantcategories_response.rbi +21 -0
  134. data/lib/moov/models/operations/listproductcategories_response.rb +48 -0
  135. data/lib/moov/models/operations/listproductcategories_response.rbi +21 -0
  136. data/lib/moov/models/operations/listproducts_request.rb +8 -2
  137. data/lib/moov/models/operations/listproducts_request.rbi +2 -0
  138. data/lib/moov/models/operations/listtransfers_request.rb +10 -2
  139. data/lib/moov/models/operations/listtransfers_request.rbi +4 -0
  140. data/lib/moov/models/operations/uploadavatar_request.rb +36 -0
  141. data/lib/moov/models/operations/uploadavatar_request.rbi +15 -0
  142. data/lib/moov/models/operations/uploadavatar_response.rb +44 -0
  143. data/lib/moov/models/operations/uploadavatar_response.rbi +19 -0
  144. data/lib/moov/models/operations/uploadavatar_security.rb +36 -0
  145. data/lib/moov/models/operations/uploadavatar_security.rbi +15 -0
  146. data/lib/moov/models/operations.rb +8 -0
  147. data/lib/moov/products.rb +113 -8
  148. data/lib/moov/sdk_hooks/clientcredentials.rb +386 -0
  149. data/lib/moov/sdk_hooks/hooks.rb +6 -0
  150. data/lib/moov/sdk_hooks/oauth2scopes.rb +18 -0
  151. data/lib/moov/sdkconfiguration.rb +3 -3
  152. data/lib/moov_ruby.rb +1 -1
  153. metadata +90 -4
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Moov::Models::Components::SendFundsWire
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::SendFundsWire
11
+ def estimated_activity(); end
12
+ def estimated_activity=(str_); end
13
+ 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
+
11
+ class SendFundsWireError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :estimated_activity, Crystalline::Nilable.new(Models::Components::EstimatedActivityError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('estimatedActivity') } }
17
+
18
+ sig { params(estimated_activity: T.nilable(Models::Components::EstimatedActivityError)).void }
19
+ def initialize(estimated_activity: nil)
20
+ @estimated_activity = estimated_activity
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 @estimated_activity == other.estimated_activity
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::SendFundsWireError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::SendFundsWireError
11
+ def estimated_activity(); end
12
+ def estimated_activity=(str_); end
13
+ end
@@ -71,9 +71,11 @@ module Moov
71
71
  field :invoice_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('invoiceID') } }
72
72
 
73
73
  field :amount_details, Crystalline::Nilable.new(Models::Components::TransferAmountDetails), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountDetails') } }
74
+ # The card authorization and capture IDs associated with a transfer.
75
+ field :capture, Crystalline::Nilable.new(Models::Components::TransferCapture), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capture') } }
74
76
 
75
- sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), invoice_id: T.nilable(::String), amount_details: T.nilable(Models::Components::TransferAmountDetails)).void }
76
- def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, invoice_id: nil, amount_details: nil)
77
+ sig { params(transfer_id: ::String, created_on: ::DateTime, source: Models::Components::TransferSource, destination: Models::Components::TransferDestination, status: Models::Components::TransferStatus, amount: Models::Components::Amount, completed_on: T.nilable(::DateTime), failure_reason: T.nilable(Models::Components::TransferFailureReason), description: T.nilable(::String), metadata: T.nilable(T::Hash[Symbol, ::String]), facilitator_fee: T.nilable(Models::Components::FacilitatorFee), moov_fee: T.nilable(::Integer), moov_fee_decimal: T.nilable(::String), moov_fee_details: T.nilable(Models::Components::MoovFeeDetails), moov_fees: T.nilable(T::Array[Models::Components::MoovFee]), group_id: T.nilable(::String), cancellations: T.nilable(T::Array[Models::Components::Cancellation]), refunded_amount: T.nilable(Models::Components::Amount), refunds: T.nilable(T::Array[Models::Components::CardAcquiringRefund]), disputed_amount: T.nilable(Models::Components::Amount), disputes: T.nilable(T::Array[Models::Components::CardAcquiringDispute]), sweep_id: T.nilable(::String), schedule_id: T.nilable(::String), occurrence_id: T.nilable(::String), payment_link_code: T.nilable(::String), foreign_id: T.nilable(::String), line_items: T.nilable(Models::Components::TransferLineItems), invoice_id: T.nilable(::String), amount_details: T.nilable(Models::Components::TransferAmountDetails), capture: T.nilable(Models::Components::TransferCapture)).void }
78
+ def initialize(transfer_id:, created_on:, source:, destination:, status:, amount:, completed_on: nil, failure_reason: nil, description: nil, metadata: nil, facilitator_fee: nil, moov_fee: nil, moov_fee_decimal: nil, moov_fee_details: nil, moov_fees: nil, group_id: nil, cancellations: nil, refunded_amount: nil, refunds: nil, disputed_amount: nil, disputes: nil, sweep_id: nil, schedule_id: nil, occurrence_id: nil, payment_link_code: nil, foreign_id: nil, line_items: nil, invoice_id: nil, amount_details: nil, capture: nil)
77
79
  @transfer_id = transfer_id
78
80
  @created_on = created_on
79
81
  @source = source
@@ -103,6 +105,7 @@ module Moov
103
105
  @line_items = line_items
104
106
  @invoice_id = invoice_id
105
107
  @amount_details = amount_details
108
+ @capture = capture
106
109
  end
107
110
 
108
111
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -137,6 +140,7 @@ module Moov
137
140
  return false unless @line_items == other.line_items
138
141
  return false unless @invoice_id == other.invoice_id
139
142
  return false unless @amount_details == other.amount_details
143
+ return false unless @capture == other.capture
140
144
  true
141
145
  end
142
146
  end
@@ -66,4 +66,6 @@ class Moov::Models::Components::Transfer
66
66
  def invoice_id=(str_); end
67
67
  def amount_details(); end
68
68
  def amount_details=(str_); end
69
+ def capture(); end
70
+ def capture=(str_); end
69
71
  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
+ # The card authorization and capture IDs associated with a transfer.
11
+ class TransferCapture
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the card authorization associated with this transfer.
16
+ field :authorization_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('authorizationID'), required: true } }
17
+ # ID of the card capture associated with this transfer.
18
+ field :capture_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('captureID'), required: true } }
19
+
20
+ sig { params(authorization_id: ::String, capture_id: ::String).void }
21
+ def initialize(authorization_id:, capture_id:)
22
+ @authorization_id = authorization_id
23
+ @capture_id = capture_id
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 @authorization_id == other.authorization_id
30
+ return false unless @capture_id == other.capture_id
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::TransferCapture
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferCapture
11
+ def authorization_id(); end
12
+ def authorization_id=(str_); end
13
+ def capture_id(); end
14
+ def capture_id=(str_); end
15
+ 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
+ # Indicates which party bears fees for a transfer, keyed by fee type.
11
+ class TransferFeePaidBy
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # For payouts, indicates which party bears the fee. Defaults to `source`.
16
+ field :payout, Crystalline::Nilable.new(Models::Components::FeePaidBy), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('payout'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::FeePaidBy, true) } }
17
+
18
+ sig { params(payout: T.nilable(Models::Components::FeePaidBy)).void }
19
+ def initialize(payout: nil)
20
+ @payout = payout
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 @payout == other.payout
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::TransferFeePaidBy
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::TransferFeePaidBy
11
+ def payout(); end
12
+ def payout=(str_); end
13
+ end
@@ -19,6 +19,7 @@ module Moov
19
19
  # Type of a wallet.
20
20
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
21
21
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
22
+ # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
22
23
  field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletType, false) } }
23
24
 
24
25
  sig { params(wallet_id: ::String, partner_account_id: ::String, wallet_type: Models::Components::WalletType).void }
@@ -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
@@ -27,6 +27,7 @@ module Moov
27
27
  # Type of a wallet.
28
28
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
29
29
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
30
+ # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
30
31
  field :wallet_type, Models::Components::WalletType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('walletType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::WalletType, false) } }
31
32
  # Description of the wallet
32
33
  field :description, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('description'), required: true } }
@@ -10,10 +10,12 @@ module Moov
10
10
  # WalletType - Type of a wallet.
11
11
  # - `default`: The system-generated wallet automatically created when an account is granted the wallet capability.
12
12
  # - `general`: An additional, user-defined wallet created via API or Dashboard.
13
+ # - `card-issuing`: The system-generated wallet automatically created when an account is granted the card-issuing capability.
13
14
  class WalletType < T::Enum
14
15
  enums do
15
16
  DEFAULT = new('default')
16
17
  GENERAL = new('general')
18
+ CARD_ISSUING = new('card-issuing')
17
19
  end
18
20
  end
19
21
  end
@@ -32,8 +32,11 @@ module Moov
32
32
  DESTINATION_RETURNED = new('destination.returned')
33
33
  DESTINATION_ORIGINATED = new('destination.originated')
34
34
  DESTINATION_CONFIRMED = new('destination.confirmed')
35
+ DESTINATION_SETTLED = new('destination.settled')
35
36
  DESTINATION_FAILED = new('destination.failed')
37
+ DESTINATION_CANCELED = new('destination.canceled')
36
38
  DESTINATION_ACCEPTED_WITHOUT_POSTING = new('destination.accepted-without-posting')
39
+ DESTINATION_DEFERRED = new('destination.deferred')
37
40
  end
38
41
  end
39
42
  end