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.
- checksums.yaml +4 -4
- data/lib/moov/avatars.rb +275 -0
- data/lib/moov/models/components/allowedscheduleerror.rb +36 -0
- data/lib/moov/models/components/allowedscheduleerror.rbi +15 -0
- data/lib/moov/models/components/avataruploadrequest.rb +32 -0
- data/lib/moov/models/components/avataruploadrequest.rbi +13 -0
- data/lib/moov/models/components/avataruploadrequest_file.rb +36 -0
- data/lib/moov/models/components/avataruploadrequest_file.rbi +15 -0
- data/lib/moov/models/components/capabilityid.rb +1 -0
- data/lib/moov/models/components/createtransfer.rb +6 -2
- data/lib/moov/models/components/createtransfer.rbi +2 -0
- data/lib/moov/models/components/feepaidby.rb +19 -0
- data/lib/moov/models/components/feepaidby.rbi +11 -0
- data/lib/moov/models/components/fullissuedcard.rb +3 -3
- data/lib/moov/models/components/incurredfee.rb +6 -2
- data/lib/moov/models/components/incurredfee.rbi +2 -0
- data/lib/moov/models/components/issuedcard.rb +3 -3
- data/lib/moov/models/components/issuedcontrols.rb +52 -0
- data/lib/moov/models/components/issuedcontrols.rbi +23 -0
- data/lib/moov/models/components/issuedcontrols_allowedschedule.rb +36 -0
- data/lib/moov/models/components/issuedcontrols_allowedschedule.rbi +15 -0
- data/lib/moov/models/components/issuedvelocitylimit.rb +60 -0
- data/lib/moov/models/components/issuedvelocitylimit.rbi +27 -0
- data/lib/moov/models/components/issuingcontrols.rb +18 -2
- data/lib/moov/models/components/issuingcontrols.rbi +8 -0
- data/lib/moov/models/components/issuingcontrols_allowedschedule.rb +36 -0
- data/lib/moov/models/components/issuingcontrols_allowedschedule.rbi +15 -0
- data/lib/moov/models/components/issuingcontrolserror.rb +18 -2
- data/lib/moov/models/components/issuingcontrolserror.rbi +8 -0
- data/lib/moov/models/components/issuingcontrolsrestrictionmode.rb +19 -0
- data/lib/moov/models/components/issuingcontrolsrestrictionmode.rbi +11 -0
- data/lib/moov/models/components/issuingintervallimit.rb +4 -1
- data/lib/moov/models/components/issuingmerchantcategory.rb +43 -0
- data/lib/moov/models/components/issuingmerchantcategory.rbi +11 -0
- data/lib/moov/models/components/issuingscheduleday.rb +24 -0
- data/lib/moov/models/components/issuingscheduleday.rbi +11 -0
- data/lib/moov/models/components/issuingvelocitylimit.rb +11 -7
- data/lib/moov/models/components/issuingvelocitylimit.rbi +4 -2
- data/lib/moov/models/components/issuingvelocitylimiterror.rb +6 -2
- data/lib/moov/models/components/issuingvelocitylimiterror.rbi +2 -0
- data/lib/moov/models/components/merchantcategoryrestrictions.rb +44 -0
- data/lib/moov/models/components/merchantcategoryrestrictions.rbi +19 -0
- data/lib/moov/models/components/merchantcategoryrestrictionserror.rb +44 -0
- data/lib/moov/models/components/merchantcategoryrestrictionserror.rbi +19 -0
- data/lib/moov/models/components/merchantentry.rb +40 -0
- data/lib/moov/models/components/merchantentry.rbi +17 -0
- data/lib/moov/models/components/merchantentryerror.rb +36 -0
- data/lib/moov/models/components/merchantentryerror.rbi +15 -0
- data/lib/moov/models/components/merchantrestrictions.rb +36 -0
- data/lib/moov/models/components/merchantrestrictions.rbi +15 -0
- data/lib/moov/models/components/merchantrestrictionserror.rb +36 -0
- data/lib/moov/models/components/merchantrestrictionserror.rbi +15 -0
- data/lib/moov/models/components/paymentlinkpayoutdetails.rb +8 -2
- data/lib/moov/models/components/paymentlinkpayoutdetails.rbi +2 -0
- data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rb +8 -2
- data/lib/moov/models/components/paymentlinkpayoutdetailsupdate.rbi +2 -0
- data/lib/moov/models/components/payoutdetailserror.rb +6 -2
- data/lib/moov/models/components/payoutdetailserror.rbi +2 -0
- data/lib/moov/models/components/product.rb +6 -2
- data/lib/moov/models/components/product.rbi +2 -0
- data/lib/moov/models/components/productcategories.rb +32 -0
- data/lib/moov/models/components/productcategories.rbi +13 -0
- data/lib/moov/models/components/productcategory.rb +48 -0
- data/lib/moov/models/components/productcategory.rbi +21 -0
- data/lib/moov/models/components/productrequest.rb +6 -2
- data/lib/moov/models/components/productrequest.rbi +2 -0
- data/lib/moov/models/components/schedulewindow.rb +40 -0
- data/lib/moov/models/components/schedulewindow.rbi +17 -0
- data/lib/moov/models/components/schedulewindowerror.rb +40 -0
- data/lib/moov/models/components/schedulewindowerror.rbi +17 -0
- data/lib/moov/models/components/schemebasicauth.rb +36 -0
- data/lib/moov/models/components/schemebasicauth.rbi +15 -0
- data/lib/moov/models/components/schemeoauth2auth.rb +40 -0
- data/lib/moov/models/components/schemeoauth2auth.rbi +17 -0
- data/lib/moov/models/components/transferfeepaidby.rb +32 -0
- data/lib/moov/models/components/transferfeepaidby.rbi +13 -0
- data/lib/moov/models/components/updateissuedcard.rb +6 -2
- data/lib/moov/models/components/updateissuedcard.rbi +2 -0
- data/lib/moov/models/components/updateissuingcontrols.rb +48 -0
- data/lib/moov/models/components/updateissuingcontrols.rbi +21 -0
- data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rb +36 -0
- data/lib/moov/models/components/updateissuingcontrols_allowedschedule.rbi +15 -0
- data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rb +44 -0
- data/lib/moov/models/components/updateissuingcontrols_merchantcategoryrestrictions.rbi +19 -0
- data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rb +36 -0
- data/lib/moov/models/components/updateissuingcontrols_merchantrestrictions.rbi +15 -0
- data/lib/moov/models/components/updateissuingcontrolserror.rb +48 -0
- data/lib/moov/models/components/updateissuingcontrolserror.rbi +21 -0
- data/lib/moov/models/components.rb +29 -0
- data/lib/moov/models/errors/productrequestvalidationerror.rb +6 -2
- data/lib/moov/models/errors/productrequestvalidationerror.rbi +2 -0
- data/lib/moov/models/errors/updateissuedcarderror.rb +6 -2
- data/lib/moov/models/errors/updateissuedcarderror.rbi +2 -0
- data/lib/moov/models/operations/deleteavatar_request.rb +32 -0
- data/lib/moov/models/operations/deleteavatar_request.rbi +13 -0
- data/lib/moov/models/operations/deleteavatar_response.rb +44 -0
- data/lib/moov/models/operations/deleteavatar_response.rbi +19 -0
- data/lib/moov/models/operations/deleteavatar_security.rb +36 -0
- data/lib/moov/models/operations/deleteavatar_security.rbi +15 -0
- data/lib/moov/models/operations/listproductcategories_response.rb +48 -0
- data/lib/moov/models/operations/listproductcategories_response.rbi +21 -0
- data/lib/moov/models/operations/listproducts_request.rb +8 -2
- data/lib/moov/models/operations/listproducts_request.rbi +2 -0
- data/lib/moov/models/operations/uploadavatar_request.rb +36 -0
- data/lib/moov/models/operations/uploadavatar_request.rbi +15 -0
- data/lib/moov/models/operations/uploadavatar_response.rb +44 -0
- data/lib/moov/models/operations/uploadavatar_response.rbi +19 -0
- data/lib/moov/models/operations/uploadavatar_security.rb +36 -0
- data/lib/moov/models/operations/uploadavatar_security.rbi +15 -0
- data/lib/moov/models/operations.rb +7 -0
- data/lib/moov/products.rb +113 -8
- data/lib/moov/sdk_hooks/clientcredentials.rb +386 -0
- data/lib/moov/sdk_hooks/hooks.rb +6 -0
- data/lib/moov/sdk_hooks/oauth2scopes.rb +18 -0
- data/lib/moov/sdkconfiguration.rb +3 -3
- metadata +76 -2
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::IssuedControls
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::IssuedControls
|
|
11
|
+
def single_use(); end
|
|
12
|
+
def single_use=(str_); end
|
|
13
|
+
def velocity_limits(); end
|
|
14
|
+
def velocity_limits=(str_); end
|
|
15
|
+
def merchant_category_restrictions(); end
|
|
16
|
+
def merchant_category_restrictions=(str_); end
|
|
17
|
+
def merchant_restrictions(); end
|
|
18
|
+
def merchant_restrictions=(str_); end
|
|
19
|
+
def allowed_schedule(); end
|
|
20
|
+
def allowed_schedule=(str_); end
|
|
21
|
+
def expires_on(); end
|
|
22
|
+
def expires_on=(str_); end
|
|
23
|
+
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
|
+
# Limits card usage to specific days and times.
|
|
11
|
+
class IssuedControlsAllowedSchedule
|
|
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, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
|
|
17
|
+
# Time windows during which the card may authorize. Any matching window allows the transaction.
|
|
18
|
+
field :windows, Crystalline::Array.new(Models::Components::ScheduleWindow), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('windows'), required: true } }
|
|
19
|
+
|
|
20
|
+
sig { params(timezone: ::String, windows: T::Array[Models::Components::ScheduleWindow]).void }
|
|
21
|
+
def initialize(timezone:, windows:)
|
|
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::IssuedControlsAllowedSchedule
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::IssuedControlsAllowedSchedule
|
|
11
|
+
def timezone(); end
|
|
12
|
+
def timezone=(str_); end
|
|
13
|
+
def windows(); end
|
|
14
|
+
def windows=(str_); end
|
|
15
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
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 velocity limit with its current runtime state.
|
|
11
|
+
class IssuedVelocityLimit
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
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.
|
|
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.
|
|
20
|
+
field :count, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('count') } }
|
|
21
|
+
# The amount in cents already spent in the current interval.
|
|
22
|
+
field :amount_used, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountUsed') } }
|
|
23
|
+
# The amount in cents remaining in the current interval.
|
|
24
|
+
field :amount_remaining, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amountRemaining') } }
|
|
25
|
+
# The number of transactions already made in the current interval.
|
|
26
|
+
field :count_used, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('countUsed') } }
|
|
27
|
+
# The number of transactions remaining in the current interval.
|
|
28
|
+
field :count_remaining, Crystalline::Nilable.new(::Integer), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('countRemaining') } }
|
|
29
|
+
# When the current interval resets. Absent for per-transaction limits.
|
|
30
|
+
field :resets_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('resetsOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
|
|
31
|
+
|
|
32
|
+
sig { params(interval: Models::Components::IssuingIntervalLimit, amount: T.nilable(::Integer), count: T.nilable(::Integer), amount_used: T.nilable(::Integer), amount_remaining: T.nilable(::Integer), count_used: T.nilable(::Integer), count_remaining: T.nilable(::Integer), resets_on: T.nilable(::DateTime)).void }
|
|
33
|
+
def initialize(interval:, amount: nil, count: nil, amount_used: nil, amount_remaining: nil, count_used: nil, count_remaining: nil, resets_on: nil)
|
|
34
|
+
@interval = interval
|
|
35
|
+
@amount = amount
|
|
36
|
+
@count = count
|
|
37
|
+
@amount_used = amount_used
|
|
38
|
+
@amount_remaining = amount_remaining
|
|
39
|
+
@count_used = count_used
|
|
40
|
+
@count_remaining = count_remaining
|
|
41
|
+
@resets_on = resets_on
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
45
|
+
def ==(other)
|
|
46
|
+
return false unless other.is_a? self.class
|
|
47
|
+
return false unless @interval == other.interval
|
|
48
|
+
return false unless @amount == other.amount
|
|
49
|
+
return false unless @count == other.count
|
|
50
|
+
return false unless @amount_used == other.amount_used
|
|
51
|
+
return false unless @amount_remaining == other.amount_remaining
|
|
52
|
+
return false unless @count_used == other.count_used
|
|
53
|
+
return false unless @count_remaining == other.count_remaining
|
|
54
|
+
return false unless @resets_on == other.resets_on
|
|
55
|
+
true
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::IssuedVelocityLimit
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::IssuedVelocityLimit
|
|
11
|
+
def interval(); end
|
|
12
|
+
def interval=(str_); end
|
|
13
|
+
def amount(); end
|
|
14
|
+
def amount=(str_); end
|
|
15
|
+
def count(); end
|
|
16
|
+
def count=(str_); end
|
|
17
|
+
def amount_used(); end
|
|
18
|
+
def amount_used=(str_); end
|
|
19
|
+
def amount_remaining(); end
|
|
20
|
+
def amount_remaining=(str_); end
|
|
21
|
+
def count_used(); end
|
|
22
|
+
def count_used=(str_); end
|
|
23
|
+
def count_remaining(); end
|
|
24
|
+
def count_remaining=(str_); end
|
|
25
|
+
def resets_on(); end
|
|
26
|
+
def resets_on=(str_); end
|
|
27
|
+
end
|
|
@@ -16,11 +16,23 @@ module Moov
|
|
|
16
16
|
field :single_use, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('singleUse') } }
|
|
17
17
|
# Sets the spending limit per time interval. Only one limit per interval is supported.
|
|
18
18
|
field :velocity_limits, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::IssuingVelocityLimit)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('velocityLimits') } }
|
|
19
|
+
# Restricts card usage by merchant category. When not set, all categories are allowed.
|
|
20
|
+
field :merchant_category_restrictions, Crystalline::Nilable.new(Models::Components::MerchantCategoryRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantCategoryRestrictions') } }
|
|
21
|
+
# Restricts card usage to specific merchants, or blocks specific merchants.
|
|
22
|
+
field :merchant_restrictions, Crystalline::Nilable.new(Models::Components::MerchantRestrictions), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('merchantRestrictions') } }
|
|
23
|
+
# Limits card usage to specific days and times. Set to `null` to remove all schedule restrictions.
|
|
24
|
+
field :allowed_schedule, Crystalline::Nilable.new(Models::Components::IssuingControlsAllowedSchedule), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('allowedSchedule') } }
|
|
25
|
+
# A spend cutoff date and time. When set, all authorizations after this datetime are declined regardless of other controls. Set to `null` for no cutoff.
|
|
26
|
+
field :expires_on, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('expiresOn'), 'decoder': ::Moov::Utils.datetime_from_iso_format(true) } }
|
|
19
27
|
|
|
20
|
-
sig { params(single_use: T.nilable(T::Boolean), velocity_limits: T.nilable(T::Array[Models::Components::IssuingVelocityLimit])).void }
|
|
21
|
-
def initialize(single_use: nil, velocity_limits: nil)
|
|
28
|
+
sig { params(single_use: T.nilable(T::Boolean), velocity_limits: T.nilable(T::Array[Models::Components::IssuingVelocityLimit]), merchant_category_restrictions: T.nilable(Models::Components::MerchantCategoryRestrictions), merchant_restrictions: T.nilable(Models::Components::MerchantRestrictions), allowed_schedule: T.nilable(Models::Components::IssuingControlsAllowedSchedule), expires_on: T.nilable(::DateTime)).void }
|
|
29
|
+
def initialize(single_use: nil, velocity_limits: nil, merchant_category_restrictions: nil, merchant_restrictions: nil, allowed_schedule: nil, expires_on: nil)
|
|
22
30
|
@single_use = single_use
|
|
23
31
|
@velocity_limits = velocity_limits
|
|
32
|
+
@merchant_category_restrictions = merchant_category_restrictions
|
|
33
|
+
@merchant_restrictions = merchant_restrictions
|
|
34
|
+
@allowed_schedule = allowed_schedule
|
|
35
|
+
@expires_on = expires_on
|
|
24
36
|
end
|
|
25
37
|
|
|
26
38
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
@@ -28,6 +40,10 @@ module Moov
|
|
|
28
40
|
return false unless other.is_a? self.class
|
|
29
41
|
return false unless @single_use == other.single_use
|
|
30
42
|
return false unless @velocity_limits == other.velocity_limits
|
|
43
|
+
return false unless @merchant_category_restrictions == other.merchant_category_restrictions
|
|
44
|
+
return false unless @merchant_restrictions == other.merchant_restrictions
|
|
45
|
+
return false unless @allowed_schedule == other.allowed_schedule
|
|
46
|
+
return false unless @expires_on == other.expires_on
|
|
31
47
|
true
|
|
32
48
|
end
|
|
33
49
|
end
|
|
@@ -12,4 +12,12 @@ class Moov::Models::Components::IssuingControls
|
|
|
12
12
|
def single_use=(str_); end
|
|
13
13
|
def velocity_limits(); end
|
|
14
14
|
def velocity_limits=(str_); end
|
|
15
|
+
def merchant_category_restrictions(); end
|
|
16
|
+
def merchant_category_restrictions=(str_); end
|
|
17
|
+
def merchant_restrictions(); end
|
|
18
|
+
def merchant_restrictions=(str_); end
|
|
19
|
+
def allowed_schedule(); end
|
|
20
|
+
def allowed_schedule=(str_); end
|
|
21
|
+
def expires_on(); end
|
|
22
|
+
def expires_on=(str_); end
|
|
15
23
|
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
|
+
# Limits card usage to specific days and times. Set to `null` to remove all schedule restrictions.
|
|
11
|
+
class IssuingControlsAllowedSchedule
|
|
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, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('timezone'), required: true } }
|
|
17
|
+
# Time windows during which the card may authorize. Any matching window allows the transaction.
|
|
18
|
+
field :windows, Crystalline::Array.new(Models::Components::ScheduleWindow), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('windows'), required: true } }
|
|
19
|
+
|
|
20
|
+
sig { params(timezone: ::String, windows: T::Array[Models::Components::ScheduleWindow]).void }
|
|
21
|
+
def initialize(timezone:, windows:)
|
|
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::IssuingControlsAllowedSchedule
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::IssuingControlsAllowedSchedule
|
|
11
|
+
def timezone(); end
|
|
12
|
+
def timezone=(str_); end
|
|
13
|
+
def windows(); end
|
|
14
|
+
def windows=(str_); end
|
|
15
|
+
end
|
|
@@ -15,15 +15,31 @@ module Moov
|
|
|
15
15
|
|
|
16
16
|
field :velocity_limits, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, Models::Components::IssuingVelocityLimitError)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('velocityLimits') } }
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
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)
|
|
20
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
|
|
21
33
|
end
|
|
22
34
|
|
|
23
35
|
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
24
36
|
def ==(other)
|
|
25
37
|
return false unless other.is_a? self.class
|
|
26
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
|
|
27
43
|
true
|
|
28
44
|
end
|
|
29
45
|
end
|
|
@@ -10,4 +10,12 @@ end
|
|
|
10
10
|
class Moov::Models::Components::IssuingControlsError
|
|
11
11
|
def velocity_limits(); end
|
|
12
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
|
|
13
21
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
# IssuingControlsRestrictionMode - Whether the listed items are the only ones allowed (`allow`) or the ones to block (`block`).
|
|
11
|
+
class IssuingControlsRestrictionMode < T::Enum
|
|
12
|
+
enums do
|
|
13
|
+
ALLOW = new('allow')
|
|
14
|
+
BLOCK = new('block')
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -7,10 +7,13 @@
|
|
|
7
7
|
module Moov
|
|
8
8
|
module Models
|
|
9
9
|
module Components
|
|
10
|
-
# IssuingIntervalLimit - Specifies the time frame for
|
|
10
|
+
# IssuingIntervalLimit - 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.
|
|
11
11
|
class IssuingIntervalLimit < T::Enum
|
|
12
12
|
enums do
|
|
13
13
|
PER_TRANSACTION = new('per-transaction')
|
|
14
|
+
DAILY = new('daily')
|
|
15
|
+
WEEKLY = new('weekly')
|
|
16
|
+
MONTHLY = new('monthly')
|
|
14
17
|
end
|
|
15
18
|
end
|
|
16
19
|
end
|
|
@@ -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,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
|
|
@@ -12,22 +12,26 @@ module Moov
|
|
|
12
12
|
extend T::Sig
|
|
13
13
|
include Crystalline::MetadataFields
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
field :amount, ::Integer, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('amount'), required: true } }
|
|
17
|
-
# Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
|
|
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,
|
|
21
|
-
def initialize(
|
|
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
|
|
@@ -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
|