moov_ruby 0.0.0.pre.dev.23 → 0.0.0.pre.dev.24

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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moov/avatars.rb +275 -0
  3. data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
  4. data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
  5. data/lib/moov/models/components/avataruploadrequest.rb +32 -0
  6. data/lib/moov/models/components/avataruploadrequest.rbi +13 -0
  7. data/lib/moov/models/components/avataruploadrequest_file.rb +36 -0
  8. data/lib/moov/models/components/avataruploadrequest_file.rbi +15 -0
  9. data/lib/moov/models/components/capabilityid.rb +1 -0
  10. data/lib/moov/models/components/createtransfer.rb +6 -2
  11. data/lib/moov/models/components/createtransfer.rbi +2 -0
  12. data/lib/moov/models/components/feepaidby.rb +19 -0
  13. data/lib/moov/models/components/feepaidby.rbi +11 -0
  14. data/lib/moov/models/components/fullissuedcard.rb +3 -3
  15. data/lib/moov/models/components/incurredfee.rb +6 -2
  16. data/lib/moov/models/components/incurredfee.rbi +2 -0
  17. data/lib/moov/models/components/issuedcard.rb +3 -3
  18. data/lib/moov/models/components/issuedcontrols.rb +52 -0
  19. data/lib/moov/models/components/issuedcontrols.rbi +23 -0
  20. data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
  21. data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
  22. data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
  23. data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
  24. data/lib/moov/models/components/issuingcontrols.rb +18 -2
  25. data/lib/moov/models/components/issuingcontrols.rbi +8 -0
  26. data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
  27. data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
  28. data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
  29. data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
  30. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
  31. data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
  32. data/lib/moov/models/components/issuingintervallimit.rb +4 -1
  33. data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
  34. data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
  35. data/lib/moov/models/components/issuingscheduleday.rb +24 -0
  36. data/lib/moov/models/components/issuingscheduleday.rbi +11 -0
  37. data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
  38. data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
  39. data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
  40. data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
  41. data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
  42. data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
  43. data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
  44. data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
  45. data/lib/moov/models/components/merchantentry.rb +40 -0
  46. data/lib/moov/models/components/merchantentry.rbi +17 -0
  47. data/lib/moov/models/components/merchantentryerror.rb +36 -0
  48. data/lib/moov/models/components/merchantentryerror.rbi +15 -0
  49. data/lib/moov/models/components/merchantrestrictions.rb +36 -0
  50. data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
  51. data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
  52. data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
  53. data/lib/moov/models/components/paymentlinkpayoutdetails.rb +8 -2
  54. data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +2 -0
  55. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +8 -2
  56. data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +2 -0
  57. data/lib/moov/models/components/payoutdetailserror.rb +6 -2
  58. data/lib/moov/models/components/payoutdetailserror.rbi +2 -0
  59. data/lib/moov/models/components/product.rb +6 -2
  60. data/lib/moov/models/components/product.rbi +2 -0
  61. data/lib/moov/models/components/productcategories.rb +32 -0
  62. data/lib/moov/models/components/productcategories.rbi +13 -0
  63. data/lib/moov/models/components/productcategory.rb +48 -0
  64. data/lib/moov/models/components/productcategory.rbi +21 -0
  65. data/lib/moov/models/components/productrequest.rb +6 -2
  66. data/lib/moov/models/components/productrequest.rbi +2 -0
  67. data/lib/moov/models/components/schedulewindow.rb +40 -0
  68. data/lib/moov/models/components/schedulewindow.rbi +17 -0
  69. data/lib/moov/models/components/schedulewindowerror.rb +40 -0
  70. data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
  71. data/lib/moov/models/components/schemebasicauth.rb +36 -0
  72. data/lib/moov/models/components/schemebasicauth.rbi +15 -0
  73. data/lib/moov/models/components/schemeoauth2auth.rb +40 -0
  74. data/lib/moov/models/components/schemeoauth2auth.rbi +17 -0
  75. data/lib/moov/models/components/transferfeepaidby.rb +32 -0
  76. data/lib/moov/models/components/transferfeepaidby.rbi +13 -0
  77. data/lib/moov/models/components/updateissuedcard.rb +6 -2
  78. data/lib/moov/models/components/updateissuedcard.rbi +2 -0
  79. data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
  80. data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
  81. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
  82. data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
  83. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
  84. data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
  85. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
  86. data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
  87. data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
  88. data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
  89. data/lib/moov/models/components.rb +29 -0
  90. data/lib/moov/models/errors/productrequestvalidationerror.rb +6 -2
  91. data/lib/moov/models/errors/productrequestvalidationerror.rbi +2 -0
  92. data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
  93. data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
  94. data/lib/moov/models/operations/deleteavatar_request.rb +32 -0
  95. data/lib/moov/models/operations/deleteavatar_request.rbi +13 -0
  96. data/lib/moov/models/operations/deleteavatar_response.rb +44 -0
  97. data/lib/moov/models/operations/deleteavatar_response.rbi +19 -0
  98. data/lib/moov/models/operations/deleteavatar_security.rb +36 -0
  99. data/lib/moov/models/operations/deleteavatar_security.rbi +15 -0
  100. data/lib/moov/models/operations/listproductcategories_response.rb +48 -0
  101. data/lib/moov/models/operations/listproductcategories_response.rbi +21 -0
  102. data/lib/moov/models/operations/listproducts_request.rb +8 -2
  103. data/lib/moov/models/operations/listproducts_request.rbi +2 -0
  104. data/lib/moov/models/operations/uploadavatar_request.rb +36 -0
  105. data/lib/moov/models/operations/uploadavatar_request.rbi +15 -0
  106. data/lib/moov/models/operations/uploadavatar_response.rb +44 -0
  107. data/lib/moov/models/operations/uploadavatar_response.rbi +19 -0
  108. data/lib/moov/models/operations/uploadavatar_security.rb +36 -0
  109. data/lib/moov/models/operations/uploadavatar_security.rbi +15 -0
  110. data/lib/moov/models/operations.rb +7 -0
  111. data/lib/moov/products.rb +113 -8
  112. data/lib/moov/sdk_hooks/clientcredentials.rb +386 -0
  113. data/lib/moov/sdk_hooks/hooks.rb +6 -0
  114. data/lib/moov/sdk_hooks/oauth2scopes.rb +18 -0
  115. data/lib/moov/sdkconfiguration.rb +3 -3
  116. metadata +76 -2
@@ -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
+
11
+ class ScheduleWindowError
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :days, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('days') } }
17
+
18
+ field :start_time, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('startTime') } }
19
+
20
+ field :end_time, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('endTime') } }
21
+
22
+ sig { params(days: T.nilable(::String), start_time: T.nilable(::String), end_time: T.nilable(::String)).void }
23
+ def initialize(days: nil, start_time: nil, end_time: nil)
24
+ @days = days
25
+ @start_time = start_time
26
+ @end_time = end_time
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 @days == other.days
33
+ return false unless @start_time == other.start_time
34
+ return false unless @end_time == other.end_time
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::ScheduleWindowError
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ScheduleWindowError
11
+ def days(); end
12
+ def days=(str_); end
13
+ def start_time(); end
14
+ def start_time=(str_); end
15
+ def end_time(); end
16
+ def end_time=(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 SchemeBasicAuth
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :username, ::String, { 'security': { 'field_name': 'username' } }
17
+
18
+ field :password, ::String, { 'security': { 'field_name': 'password' } }
19
+
20
+ sig { params(username: ::String, password: ::String).void }
21
+ def initialize(username:, password:)
22
+ @username = username
23
+ @password = password
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 @username == other.username
30
+ return false unless @password == other.password
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::SchemeBasicAuth
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::SchemeBasicAuth
11
+ def username(); end
12
+ def username=(str_); end
13
+ def password(); end
14
+ def password=(str_); end
15
+ 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
+
11
+ class SchemeOAuth2Auth
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :client_id, ::String, { 'security': { 'field_name': 'clientID' } }
17
+
18
+ field :client_secret, ::String, { 'security': { 'field_name': 'clientSecret' } }
19
+
20
+ field :token_url, ::String, {}
21
+
22
+ sig { params(client_id: ::String, client_secret: ::String, token_url: ::String).void }
23
+ def initialize(client_id:, client_secret:, token_url: '/oauth2/token')
24
+ @client_id = client_id
25
+ @client_secret = client_secret
26
+ @token_url = token_url
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 @client_id == other.client_id
33
+ return false unless @client_secret == other.client_secret
34
+ return false unless @token_url == other.token_url
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::SchemeOAuth2Auth
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::SchemeOAuth2Auth
11
+ def client_id(); end
12
+ def client_id=(str_); end
13
+ def client_secret(); end
14
+ def client_secret=(str_); end
15
+ def token_url(); end
16
+ def token_url=(str_); end
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
+ # 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
@@ -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