moov_ruby 26.4.8 → 26.7.0.pre.dev.0
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/account_terminal_applications.rb +16 -16
- data/lib/moov/accounts.rb +54 -52
- data/lib/moov/adjustments.rb +8 -8
- data/lib/moov/apple_pay.rb +20 -20
- data/lib/moov/authentication.rb +8 -8
- data/lib/moov/avatars.rb +4 -4
- data/lib/moov/bank_accounts.rb +36 -36
- data/lib/moov/branding.rb +12 -12
- data/lib/moov/capabilities.rb +20 -20
- data/lib/moov/card_issuing.rb +25 -25
- data/lib/moov/cards.rb +178 -20
- data/lib/moov/disputes.rb +44 -44
- data/lib/moov/end_to_end_encryption.rb +8 -8
- data/lib/moov/enriched_address.rb +4 -4
- data/lib/moov/enriched_profile.rb +4 -4
- data/lib/moov/fee_plans.rb +40 -40
- data/lib/moov/files.rb +12 -12
- data/lib/moov/google_pay.rb +4 -4
- data/lib/moov/images.rb +28 -28
- data/lib/moov/industries.rb +4 -4
- data/lib/moov/institutions.rb +8 -8
- data/lib/moov/invoices.rb +28 -28
- data/lib/moov/issuing_transactions.rb +20 -20
- data/lib/moov/models/components/addcapabilities.rb +1 -5
- data/lib/moov/models/components/amountdecimalrange.rb +36 -0
- data/lib/moov/models/components/amountdecimalrange.rbi +15 -0
- data/lib/moov/models/components/amountdecimalrangeupdate.rb +36 -0
- data/lib/moov/models/components/amountdecimalrangeupdate.rbi +15 -0
- data/lib/moov/models/components/authorizeduser.rb +36 -0
- data/lib/moov/models/components/authorizeduser.rbi +15 -0
- data/lib/moov/models/components/capability.rb +1 -7
- data/lib/moov/models/components/capabilityid.rb +1 -7
- data/lib/moov/models/components/cardmetadata.rb +79 -0
- data/lib/moov/models/components/cardmetadata.rbi +35 -0
- data/lib/moov/models/components/cardmetadatarequest.rb +38 -0
- data/lib/moov/models/components/cardmetadatarequest.rbi +15 -0
- data/lib/moov/models/components/createaccount.rb +1 -5
- data/lib/moov/models/components/createauthorizeduser.rb +40 -0
- data/lib/moov/models/components/createauthorizeduser.rbi +17 -0
- data/lib/moov/models/components/createauthorizedusererror.rb +40 -0
- data/lib/moov/models/components/createauthorizedusererror.rbi +17 -0
- data/lib/moov/models/components/createauthorizeduserupdate.rb +40 -0
- data/lib/moov/models/components/createauthorizeduserupdate.rbi +17 -0
- data/lib/moov/models/components/createdtransfer.rb +2 -6
- data/lib/moov/models/components/createdtransfer.rbi +0 -2
- data/lib/moov/models/components/createpaymentlink.rb +15 -15
- data/lib/moov/models/components/createpaymentlink.rbi +4 -4
- data/lib/moov/models/components/createpaymentlinkamountdetails.rb +32 -0
- data/lib/moov/models/components/createpaymentlinkamountdetails.rbi +13 -0
- data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rb +32 -0
- data/lib/moov/models/components/createpaymentlinkamountdetailsvalidationerror.rbi +13 -0
- data/lib/moov/models/components/createtransfer.rb +2 -6
- data/lib/moov/models/components/createtransfer.rbi +0 -2
- data/lib/moov/models/components/createtransferamountdetails.rb +6 -2
- data/lib/moov/models/components/createtransferamountdetails.rbi +2 -0
- data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rb +6 -2
- data/lib/moov/models/components/createtransferamountdetailsvalidationerror.rbi +2 -0
- data/lib/moov/models/components/fullissuedcard.rb +10 -22
- data/lib/moov/models/components/fullissuedcard.rbi +4 -10
- data/lib/moov/models/components/invoice.rb +1 -1
- data/lib/moov/models/components/issuedcard.rb +10 -22
- data/lib/moov/models/components/issuedcard.rbi +4 -10
- data/lib/moov/models/components/onboardinginvite.rb +1 -1
- data/lib/moov/models/components/onboardinginviterequest.rb +1 -1
- data/lib/moov/models/components/paymentlink.rb +15 -15
- data/lib/moov/models/components/paymentlink.rbi +4 -4
- data/lib/moov/models/components/paymentlinkamountdetails.rb +32 -0
- data/lib/moov/models/components/paymentlinkamountdetails.rbi +13 -0
- data/lib/moov/models/components/paymentlinkpaymentdetails.rb +14 -2
- data/lib/moov/models/components/paymentlinkpaymentdetails.rbi +6 -0
- data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rb +19 -0
- data/lib/moov/models/components/paymentlinkpaymentdetails_amounttype.rbi +11 -0
- data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rb +14 -2
- data/lib/moov/models/components/paymentlinkpaymentdetailsupdate.rbi +6 -0
- data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rb +19 -0
- data/lib/moov/models/components/paymentlinkpaymentdetailsupdate_amounttype.rbi +11 -0
- data/lib/moov/models/components/requestcard.rb +17 -17
- data/lib/moov/models/components/requestcard.rbi +8 -8
- data/lib/moov/models/components/transfer.rb +2 -6
- data/lib/moov/models/components/transfer.rbi +0 -2
- data/lib/moov/models/components/transferamountdetails.rb +6 -2
- data/lib/moov/models/components/transferamountdetails.rbi +2 -0
- data/lib/moov/models/components/transferconfig.rb +2 -6
- data/lib/moov/models/components/transferconfig.rbi +0 -2
- data/lib/moov/models/components/transferdestination.rb +2 -8
- data/lib/moov/models/components/transferdestination.rbi +0 -2
- data/lib/moov/models/components/updateinvoice.rb +6 -6
- data/lib/moov/models/components/updateissuedcard.rb +9 -13
- data/lib/moov/models/components/updateissuedcard.rbi +4 -6
- data/lib/moov/models/components/updatepaymentlink.rb +6 -6
- data/lib/moov/models/components/updatepaymentlink.rbi +2 -2
- data/lib/moov/models/components/updatepaymentlinkamountdetails.rb +32 -0
- data/lib/moov/models/components/updatepaymentlinkamountdetails.rbi +13 -0
- data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rb +32 -0
- data/lib/moov/models/components/updatepaymentlinkamountdetailsvalidationerror.rbi +13 -0
- data/lib/moov/models/components/webhookdatabankaccountdeleted.rb +2 -6
- data/lib/moov/models/components/webhookdatabankaccountdeleted.rbi +0 -2
- data/lib/moov/models/components/webhookdatacapabilityrequested.rb +1 -7
- data/lib/moov/models/components/webhookdatacapabilityupdated.rb +1 -7
- data/lib/moov/models/components/webhookdatasweepcreated.rb +2 -6
- data/lib/moov/models/components/webhookdatasweepcreated.rbi +0 -2
- data/lib/moov/models/components/webhookdatasweepupdated.rb +2 -6
- data/lib/moov/models/components/webhookdatasweepupdated.rbi +0 -2
- data/lib/moov/models/components/webhookevent.rb +2 -2
- data/lib/moov/models/components/webhookeventtype.rb +0 -1
- data/lib/moov/models/components.rb +15 -6
- data/lib/moov/models/errors/cardmetadatarequesterror.rb +44 -0
- data/lib/moov/models/errors/cardmetadatarequesterror.rbi +19 -0
- data/lib/moov/models/errors/createpaymentlinkerror.rb +6 -6
- data/lib/moov/models/errors/createpaymentlinkerror.rbi +2 -2
- data/lib/moov/models/errors/requestcarderror.rb +14 -14
- data/lib/moov/models/errors/requestcarderror.rbi +8 -8
- data/lib/moov/models/errors/transfer_error.rb +2 -6
- data/lib/moov/models/errors/transfer_error.rbi +0 -2
- data/lib/moov/models/errors/transfervalidationerror.rb +2 -6
- data/lib/moov/models/errors/transfervalidationerror.rbi +0 -2
- data/lib/moov/models/errors/updateissuedcarderror.rb +8 -12
- data/lib/moov/models/errors/updateissuedcarderror.rbi +4 -6
- data/lib/moov/models/errors/updatepaymentlinkerror.rb +6 -6
- data/lib/moov/models/errors/updatepaymentlinkerror.rbi +2 -2
- data/lib/moov/models/errors.rb +1 -0
- data/lib/moov/models/operations/disablecapability_request.rb +1 -7
- data/lib/moov/models/operations/getcapability_request.rb +1 -7
- data/lib/moov/models/operations/{listcancellations_response.rb → getcardmetadata_response.rb} +6 -6
- data/lib/moov/models/operations/{listcancellations_response.rbi → getcardmetadata_response.rbi} +4 -4
- data/lib/moov/models/operations.rb +1 -2
- data/lib/moov/onboarding.rb +16 -16
- data/lib/moov/payment_links.rb +24 -24
- data/lib/moov/payment_methods.rb +8 -8
- data/lib/moov/ping.rb +4 -4
- data/lib/moov/products.rb +20 -20
- data/lib/moov/receipts.rb +8 -8
- data/lib/moov/representatives.rb +20 -20
- data/lib/moov/resolution_links.rb +16 -16
- data/lib/moov/scheduling.rb +24 -24
- data/lib/moov/sdkconfiguration.rb +4 -4
- data/lib/moov/statements.rb +8 -8
- data/lib/moov/support.rb +20 -20
- data/lib/moov/sweeps.rb +24 -24
- data/lib/moov/terminal_applications.rb +20 -20
- data/lib/moov/transfer_config.rb +12 -12
- data/lib/moov/transfers.rb +48 -171
- data/lib/moov/underwriting.rb +12 -12
- data/lib/moov/utils/retries.rb +1 -4
- data/lib/moov/wallet_transactions.rb +8 -8
- data/lib/moov/wallets.rb +16 -16
- data/lib/moov/webhooks.rb +32 -32
- metadata +38 -20
- data/lib/moov/models/components/billingaddress.rb +0 -52
- data/lib/moov/models/components/billingaddress.rbi +0 -23
- data/lib/moov/models/components/rtpfailurecode.rb +0 -27
- data/lib/moov/models/components/rtpfailurecode.rbi +0 -11
- data/lib/moov/models/components/rtptransactiondetails.rb +0 -58
- data/lib/moov/models/components/rtptransactiondetails.rbi +0 -25
- data/lib/moov/models/components/rtptransactionstatus.rb +0 -21
- data/lib/moov/models/components/rtptransactionstatus.rbi +0 -11
- data/lib/moov/models/components/transfercontrols.rb +0 -48
- data/lib/moov/models/components/transfercontrols.rbi +0 -21
- data/lib/moov/models/components/webhookdataauthorizationexpiring.rb +0 -44
- data/lib/moov/models/components/webhookdataauthorizationexpiring.rbi +0 -19
- data/lib/moov/models/operations/listcancellations_request.rb +0 -36
- data/lib/moov/models/operations/listcancellations_request.rbi +0 -15
|
@@ -65,7 +65,7 @@ module Moov
|
|
|
65
65
|
|
|
66
66
|
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
67
67
|
timeout ||= @sdk_configuration.timeout
|
|
68
|
-
|
|
68
|
+
|
|
69
69
|
|
|
70
70
|
connection = @sdk_configuration.client
|
|
71
71
|
|
|
@@ -80,7 +80,7 @@ module Moov
|
|
|
80
80
|
error = T.let(nil, T.nilable(StandardError))
|
|
81
81
|
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
|
|
84
84
|
begin
|
|
85
85
|
http_response = T.must(connection).get(url) do |req|
|
|
86
86
|
req.headers.merge!(headers)
|
|
@@ -117,13 +117,13 @@ module Moov
|
|
|
117
117
|
response: http_response
|
|
118
118
|
)
|
|
119
119
|
end
|
|
120
|
-
|
|
120
|
+
|
|
121
121
|
if http_response.nil?
|
|
122
122
|
raise error if !error.nil?
|
|
123
123
|
raise 'no response'
|
|
124
124
|
end
|
|
125
125
|
end
|
|
126
|
-
|
|
126
|
+
|
|
127
127
|
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
128
128
|
if Utils.match_status_code(http_response.status, ['200'])
|
|
129
129
|
if Utils.match_content_type(content_type, 'application/json')
|
|
@@ -189,7 +189,7 @@ module Moov
|
|
|
189
189
|
|
|
190
190
|
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
191
191
|
timeout ||= @sdk_configuration.timeout
|
|
192
|
-
|
|
192
|
+
|
|
193
193
|
|
|
194
194
|
connection = @sdk_configuration.client
|
|
195
195
|
|
|
@@ -204,7 +204,7 @@ module Moov
|
|
|
204
204
|
error = T.let(nil, T.nilable(StandardError))
|
|
205
205
|
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
206
206
|
|
|
207
|
-
|
|
207
|
+
|
|
208
208
|
begin
|
|
209
209
|
http_response = T.must(connection).get(url) do |req|
|
|
210
210
|
req.headers.merge!(headers)
|
|
@@ -240,13 +240,13 @@ module Moov
|
|
|
240
240
|
response: http_response
|
|
241
241
|
)
|
|
242
242
|
end
|
|
243
|
-
|
|
243
|
+
|
|
244
244
|
if http_response.nil?
|
|
245
245
|
raise error if !error.nil?
|
|
246
246
|
raise 'no response'
|
|
247
247
|
end
|
|
248
248
|
end
|
|
249
|
-
|
|
249
|
+
|
|
250
250
|
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
251
251
|
if Utils.match_status_code(http_response.status, ['200'])
|
|
252
252
|
if Utils.match_content_type(content_type, 'application/json')
|
|
@@ -315,7 +315,7 @@ module Moov
|
|
|
315
315
|
|
|
316
316
|
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
317
317
|
timeout ||= @sdk_configuration.timeout
|
|
318
|
-
|
|
318
|
+
|
|
319
319
|
|
|
320
320
|
connection = @sdk_configuration.client
|
|
321
321
|
|
|
@@ -330,7 +330,7 @@ module Moov
|
|
|
330
330
|
error = T.let(nil, T.nilable(StandardError))
|
|
331
331
|
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
332
332
|
|
|
333
|
-
|
|
333
|
+
|
|
334
334
|
begin
|
|
335
335
|
http_response = T.must(connection).get(url) do |req|
|
|
336
336
|
req.headers.merge!(headers)
|
|
@@ -367,13 +367,13 @@ module Moov
|
|
|
367
367
|
response: http_response
|
|
368
368
|
)
|
|
369
369
|
end
|
|
370
|
-
|
|
370
|
+
|
|
371
371
|
if http_response.nil?
|
|
372
372
|
raise error if !error.nil?
|
|
373
373
|
raise 'no response'
|
|
374
374
|
end
|
|
375
375
|
end
|
|
376
|
-
|
|
376
|
+
|
|
377
377
|
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
378
378
|
if Utils.match_status_code(http_response.status, ['200'])
|
|
379
379
|
if Utils.match_content_type(content_type, 'application/json')
|
|
@@ -436,7 +436,7 @@ module Moov
|
|
|
436
436
|
|
|
437
437
|
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
438
438
|
timeout ||= @sdk_configuration.timeout
|
|
439
|
-
|
|
439
|
+
|
|
440
440
|
|
|
441
441
|
connection = @sdk_configuration.client
|
|
442
442
|
|
|
@@ -451,7 +451,7 @@ module Moov
|
|
|
451
451
|
error = T.let(nil, T.nilable(StandardError))
|
|
452
452
|
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
453
453
|
|
|
454
|
-
|
|
454
|
+
|
|
455
455
|
begin
|
|
456
456
|
http_response = T.must(connection).get(url) do |req|
|
|
457
457
|
req.headers.merge!(headers)
|
|
@@ -488,13 +488,13 @@ module Moov
|
|
|
488
488
|
response: http_response
|
|
489
489
|
)
|
|
490
490
|
end
|
|
491
|
-
|
|
491
|
+
|
|
492
492
|
if http_response.nil?
|
|
493
493
|
raise error if !error.nil?
|
|
494
494
|
raise 'no response'
|
|
495
495
|
end
|
|
496
496
|
end
|
|
497
|
-
|
|
497
|
+
|
|
498
498
|
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
499
499
|
if Utils.match_status_code(http_response.status, ['200'])
|
|
500
500
|
if Utils.match_content_type(content_type, 'application/json')
|
|
@@ -560,7 +560,7 @@ module Moov
|
|
|
560
560
|
|
|
561
561
|
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
562
562
|
timeout ||= @sdk_configuration.timeout
|
|
563
|
-
|
|
563
|
+
|
|
564
564
|
|
|
565
565
|
connection = @sdk_configuration.client
|
|
566
566
|
|
|
@@ -575,7 +575,7 @@ module Moov
|
|
|
575
575
|
error = T.let(nil, T.nilable(StandardError))
|
|
576
576
|
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
577
577
|
|
|
578
|
-
|
|
578
|
+
|
|
579
579
|
begin
|
|
580
580
|
http_response = T.must(connection).get(url) do |req|
|
|
581
581
|
req.headers.merge!(headers)
|
|
@@ -611,13 +611,13 @@ module Moov
|
|
|
611
611
|
response: http_response
|
|
612
612
|
)
|
|
613
613
|
end
|
|
614
|
-
|
|
614
|
+
|
|
615
615
|
if http_response.nil?
|
|
616
616
|
raise error if !error.nil?
|
|
617
617
|
raise 'no response'
|
|
618
618
|
end
|
|
619
619
|
end
|
|
620
|
-
|
|
620
|
+
|
|
621
621
|
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
622
622
|
if Utils.match_status_code(http_response.status, ['200'])
|
|
623
623
|
if Utils.match_content_type(content_type, 'application/json')
|
|
@@ -12,11 +12,7 @@ module Moov
|
|
|
12
12
|
extend T::Sig
|
|
13
13
|
include Crystalline::MetadataFields
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
#
|
|
17
|
-
# Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
18
|
-
#
|
|
19
|
-
# The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
15
|
+
|
|
20
16
|
field :capabilities, Crystalline::Array.new(Models::Components::CapabilityID), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities'), required: true } }
|
|
21
17
|
|
|
22
18
|
sig { params(capabilities: T::Array[Models::Components::CapabilityID]).void }
|
|
@@ -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 AmountDecimalRange
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# Minimum amount allowed in the range
|
|
16
|
+
field :minimum, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimum'), required: true } }
|
|
17
|
+
# Maximum amount allowed in the range
|
|
18
|
+
field :maximum, Models::Components::AmountDecimal, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('maximum'), required: true } }
|
|
19
|
+
|
|
20
|
+
sig { params(minimum: Models::Components::AmountDecimal, maximum: Models::Components::AmountDecimal).void }
|
|
21
|
+
def initialize(minimum:, maximum:)
|
|
22
|
+
@minimum = minimum
|
|
23
|
+
@maximum = maximum
|
|
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 @minimum == other.minimum
|
|
30
|
+
return false unless @maximum == other.maximum
|
|
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::AmountDecimalRange
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AmountDecimalRange
|
|
11
|
+
def minimum(); end
|
|
12
|
+
def minimum=(str_); end
|
|
13
|
+
def maximum(); end
|
|
14
|
+
def maximum=(str_); end
|
|
15
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
# typed: true
|
|
4
|
+
# frozen_string_literal: true
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Moov
|
|
8
|
+
module Models
|
|
9
|
+
module Components
|
|
10
|
+
|
|
11
|
+
class AmountDecimalRangeUpdate
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# Minimum amount allowed in the range
|
|
16
|
+
field :minimum, Crystalline::Nilable.new(Models::Components::AmountDecimalUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('minimum') } }
|
|
17
|
+
# Maximum amount allowed in the range
|
|
18
|
+
field :maximum, Crystalline::Nilable.new(Models::Components::AmountDecimalUpdate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('maximum') } }
|
|
19
|
+
|
|
20
|
+
sig { params(minimum: T.nilable(Models::Components::AmountDecimalUpdate), maximum: T.nilable(Models::Components::AmountDecimalUpdate)).void }
|
|
21
|
+
def initialize(minimum: nil, maximum: nil)
|
|
22
|
+
@minimum = minimum
|
|
23
|
+
@maximum = maximum
|
|
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 @minimum == other.minimum
|
|
30
|
+
return false unless @maximum == other.maximum
|
|
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::AmountDecimalRangeUpdate
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AmountDecimalRangeUpdate
|
|
11
|
+
def minimum(); end
|
|
12
|
+
def minimum=(str_); end
|
|
13
|
+
def maximum(); end
|
|
14
|
+
def maximum=(str_); end
|
|
15
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
2
|
+
|
|
3
|
+
# typed: true
|
|
4
|
+
# frozen_string_literal: true
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
module Moov
|
|
8
|
+
module Models
|
|
9
|
+
module Components
|
|
10
|
+
# Fields for identifying an authorized individual.
|
|
11
|
+
class AuthorizedUser
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
field :first_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('firstName'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :last_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastName'), required: true } }
|
|
19
|
+
|
|
20
|
+
sig { params(first_name: ::String, last_name: ::String).void }
|
|
21
|
+
def initialize(first_name:, last_name:)
|
|
22
|
+
@first_name = first_name
|
|
23
|
+
@last_name = last_name
|
|
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 @first_name == other.first_name
|
|
30
|
+
return false unless @last_name == other.last_name
|
|
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::AuthorizedUser
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AuthorizedUser
|
|
11
|
+
def first_name(); end
|
|
12
|
+
def first_name=(str_); end
|
|
13
|
+
def last_name(); end
|
|
14
|
+
def last_name=(str_); end
|
|
15
|
+
end
|
|
@@ -14,13 +14,7 @@ module Moov
|
|
|
14
14
|
|
|
15
15
|
# Moov account capabilities.
|
|
16
16
|
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
# The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
20
|
-
#
|
|
21
|
-
# Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
22
|
-
#
|
|
23
|
-
# The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
17
|
+
# The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
|
|
24
18
|
field :capability, Models::Components::CapabilityID, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capability'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CapabilityID, false) } }
|
|
25
19
|
|
|
26
20
|
field :account_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('accountID'), required: true } }
|
|
@@ -9,13 +9,7 @@ module Moov
|
|
|
9
9
|
module Components
|
|
10
10
|
# CapabilityID - Moov account capabilities.
|
|
11
11
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
# The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
15
|
-
#
|
|
16
|
-
# Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
17
|
-
#
|
|
18
|
-
# The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
12
|
+
# The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in your list. These are read-only capabilities that Moov requests and uses for account verification purposes. These capabilities remains active with your account and require no additional action.
|
|
19
13
|
class CapabilityID < T::Enum
|
|
20
14
|
enums do
|
|
21
15
|
TRANSFERS = new('transfers')
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
# Metadata describing a card.
|
|
11
|
+
class CardMetadata
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# The first six to eight digits of the card number, which identifies the financial institution that issued the card.
|
|
16
|
+
field :bin, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bin'), required: true } }
|
|
17
|
+
# The card brand.
|
|
18
|
+
field :brand, Models::Components::CardBrand, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('brand'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardBrand, false) } }
|
|
19
|
+
# The type of the card.
|
|
20
|
+
field :card_type, Models::Components::CardType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardType'), required: true, 'decoder': ::Moov::Utils.enum_from_string(Models::Components::CardType, false) } }
|
|
21
|
+
# The category or level of the card defined by the issuer.
|
|
22
|
+
# Examples include, but not limited to, "REWARDS", "TRADITIONAL REWARDS", "CLASSIC", and "CORPORATE PURCHASING".
|
|
23
|
+
field :card_category, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardCategory') } }
|
|
24
|
+
# If true, the card is for commercial use, or associated with a business.
|
|
25
|
+
# If false, the card is associated with a general consumer.
|
|
26
|
+
field :commercial, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('commercial') } }
|
|
27
|
+
# If true, the card issuing bank is regulated, and the scheme fees for debit transactions will be limited based on the Durbin Amendment.
|
|
28
|
+
# If false, the card issuing bank is not regulated, and the scheme fees will not be limited.
|
|
29
|
+
field :regulated, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('regulated') } }
|
|
30
|
+
# Financial institution that issued the card.
|
|
31
|
+
field :issuer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuer') } }
|
|
32
|
+
# Country where the card was issued.
|
|
33
|
+
field :issuer_country, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerCountry') } }
|
|
34
|
+
# Phone number of the issuer.
|
|
35
|
+
field :issuer_phone, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerPhone') } }
|
|
36
|
+
# URL of the issuer.
|
|
37
|
+
field :issuer_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('issuerURL') } }
|
|
38
|
+
# Indicates if the card supports domestic pull-from-card transfer.
|
|
39
|
+
field :domestic_pull_from_card, Crystalline::Nilable.new(Models::Components::DomesticPullFromCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPullFromCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPullFromCard, true) } }
|
|
40
|
+
# Indicates which level of domestic push-to-card transfer is supported by the card, if any.
|
|
41
|
+
field :domestic_push_to_card, Crystalline::Nilable.new(Models::Components::DomesticPushToCard), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('domesticPushToCard'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::DomesticPushToCard, true) } }
|
|
42
|
+
|
|
43
|
+
sig { params(bin: ::String, brand: Models::Components::CardBrand, card_type: Models::Components::CardType, card_category: T.nilable(::String), commercial: T.nilable(T::Boolean), regulated: T.nilable(T::Boolean), issuer: T.nilable(::String), issuer_country: T.nilable(::String), issuer_phone: T.nilable(::String), issuer_url: T.nilable(::String), domestic_pull_from_card: T.nilable(Models::Components::DomesticPullFromCard), domestic_push_to_card: T.nilable(Models::Components::DomesticPushToCard)).void }
|
|
44
|
+
def initialize(bin:, brand:, card_type:, card_category: nil, commercial: nil, regulated: nil, issuer: nil, issuer_country: nil, issuer_phone: nil, issuer_url: nil, domestic_pull_from_card: nil, domestic_push_to_card: nil)
|
|
45
|
+
@bin = bin
|
|
46
|
+
@brand = brand
|
|
47
|
+
@card_type = card_type
|
|
48
|
+
@card_category = card_category
|
|
49
|
+
@commercial = commercial
|
|
50
|
+
@regulated = regulated
|
|
51
|
+
@issuer = issuer
|
|
52
|
+
@issuer_country = issuer_country
|
|
53
|
+
@issuer_phone = issuer_phone
|
|
54
|
+
@issuer_url = issuer_url
|
|
55
|
+
@domestic_pull_from_card = domestic_pull_from_card
|
|
56
|
+
@domestic_push_to_card = domestic_push_to_card
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
60
|
+
def ==(other)
|
|
61
|
+
return false unless other.is_a? self.class
|
|
62
|
+
return false unless @bin == other.bin
|
|
63
|
+
return false unless @brand == other.brand
|
|
64
|
+
return false unless @card_type == other.card_type
|
|
65
|
+
return false unless @card_category == other.card_category
|
|
66
|
+
return false unless @commercial == other.commercial
|
|
67
|
+
return false unless @regulated == other.regulated
|
|
68
|
+
return false unless @issuer == other.issuer
|
|
69
|
+
return false unless @issuer_country == other.issuer_country
|
|
70
|
+
return false unless @issuer_phone == other.issuer_phone
|
|
71
|
+
return false unless @issuer_url == other.issuer_url
|
|
72
|
+
return false unless @domestic_pull_from_card == other.domestic_pull_from_card
|
|
73
|
+
return false unless @domestic_push_to_card == other.domestic_push_to_card
|
|
74
|
+
true
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::CardMetadata
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::CardMetadata
|
|
11
|
+
def bin(); end
|
|
12
|
+
def bin=(str_); end
|
|
13
|
+
def brand(); end
|
|
14
|
+
def brand=(str_); end
|
|
15
|
+
def card_type(); end
|
|
16
|
+
def card_type=(str_); end
|
|
17
|
+
def card_category(); end
|
|
18
|
+
def card_category=(str_); end
|
|
19
|
+
def commercial(); end
|
|
20
|
+
def commercial=(str_); end
|
|
21
|
+
def regulated(); end
|
|
22
|
+
def regulated=(str_); end
|
|
23
|
+
def issuer(); end
|
|
24
|
+
def issuer=(str_); end
|
|
25
|
+
def issuer_country(); end
|
|
26
|
+
def issuer_country=(str_); end
|
|
27
|
+
def issuer_phone(); end
|
|
28
|
+
def issuer_phone=(str_); end
|
|
29
|
+
def issuer_url(); end
|
|
30
|
+
def issuer_url=(str_); end
|
|
31
|
+
def domestic_pull_from_card(); end
|
|
32
|
+
def domestic_pull_from_card=(str_); end
|
|
33
|
+
def domestic_push_to_card(); end
|
|
34
|
+
def domestic_push_to_card=(str_); end
|
|
35
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
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 CardMetadataRequest
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# Wraps a compact-serialized JSON Web Encryption (JWE) token used for secure transmission of sensitive data (e.g., PCI information) through intermediaries.
|
|
16
|
+
# This token is encrypted using the public key from /end-to-end-keys and wraps an AES key. For details and examples, refer to our
|
|
17
|
+
# [GitHub repository](https://github.com/moovfinancial/moov-go/blob/main/examples/e2ee/e2ee_test.go).
|
|
18
|
+
field :e2ee, Crystalline::Nilable.new(Models::Components::E2EEToken), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('e2ee') } }
|
|
19
|
+
# The full card number (PAN).
|
|
20
|
+
field :card_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('cardNumber') } }
|
|
21
|
+
|
|
22
|
+
sig { params(e2ee: T.nilable(Models::Components::E2EEToken), card_number: T.nilable(::String)).void }
|
|
23
|
+
def initialize(e2ee: nil, card_number: nil)
|
|
24
|
+
@e2ee = e2ee
|
|
25
|
+
@card_number = card_number
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
sig { params(other: T.untyped).returns(T::Boolean) }
|
|
29
|
+
def ==(other)
|
|
30
|
+
return false unless other.is_a? self.class
|
|
31
|
+
return false unless @e2ee == other.e2ee
|
|
32
|
+
return false unless @card_number == other.card_number
|
|
33
|
+
true
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::CardMetadataRequest
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::CardMetadataRequest
|
|
11
|
+
def e2ee(); end
|
|
12
|
+
def e2ee=(str_); end
|
|
13
|
+
def card_number(); end
|
|
14
|
+
def card_number=(str_); end
|
|
15
|
+
end
|
|
@@ -27,11 +27,7 @@ module Moov
|
|
|
27
27
|
field :customer_support, Crystalline::Nilable.new(Models::Components::CustomerSupport), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('customerSupport') } }
|
|
28
28
|
# User provided settings to manage an account.
|
|
29
29
|
field :settings, Crystalline::Nilable.new(Models::Components::Settings), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('settings') } }
|
|
30
|
-
|
|
31
|
-
#
|
|
32
|
-
# Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
33
|
-
#
|
|
34
|
-
# The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
30
|
+
|
|
35
31
|
field :capabilities, Crystalline::Nilable.new(Crystalline::Array.new(Models::Components::CapabilityID)), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('capabilities') } }
|
|
36
32
|
# The operating mode for an account.
|
|
37
33
|
field :mode, Crystalline::Nilable.new(Models::Components::Mode), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('mode'), 'decoder': ::Moov::Utils.enum_from_string(Models::Components::Mode, true) } }
|
|
@@ -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
|
+
# Fields for identifying an authorized individual.
|
|
11
|
+
class CreateAuthorizedUser
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
field :first_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('firstName'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :last_name, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastName'), required: true } }
|
|
19
|
+
|
|
20
|
+
field :birth_date, Crystalline::Nilable.new(Models::Components::BirthDate), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('birthDate') } }
|
|
21
|
+
|
|
22
|
+
sig { params(first_name: ::String, last_name: ::String, birth_date: T.nilable(Models::Components::BirthDate)).void }
|
|
23
|
+
def initialize(first_name:, last_name:, birth_date: nil)
|
|
24
|
+
@first_name = first_name
|
|
25
|
+
@last_name = last_name
|
|
26
|
+
@birth_date = birth_date
|
|
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 @first_name == other.first_name
|
|
33
|
+
return false unless @last_name == other.last_name
|
|
34
|
+
return false unless @birth_date == other.birth_date
|
|
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::CreateAuthorizedUser
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::CreateAuthorizedUser
|
|
11
|
+
def first_name(); end
|
|
12
|
+
def first_name=(str_); end
|
|
13
|
+
def last_name(); end
|
|
14
|
+
def last_name=(str_); end
|
|
15
|
+
def birth_date(); end
|
|
16
|
+
def birth_date=(str_); end
|
|
17
|
+
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 CreateAuthorizedUserError
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
field :first_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('firstName') } }
|
|
17
|
+
|
|
18
|
+
field :last_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('lastName') } }
|
|
19
|
+
|
|
20
|
+
field :birth_date, Crystalline::Nilable.new(Models::Components::BirthDateError), { 'format_json': { 'letter_case': ::Moov::Utils.field_name('birthDate') } }
|
|
21
|
+
|
|
22
|
+
sig { params(first_name: T.nilable(::String), last_name: T.nilable(::String), birth_date: T.nilable(Models::Components::BirthDateError)).void }
|
|
23
|
+
def initialize(first_name: nil, last_name: nil, birth_date: nil)
|
|
24
|
+
@first_name = first_name
|
|
25
|
+
@last_name = last_name
|
|
26
|
+
@birth_date = birth_date
|
|
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 @first_name == other.first_name
|
|
33
|
+
return false unless @last_name == other.last_name
|
|
34
|
+
return false unless @birth_date == other.birth_date
|
|
35
|
+
true
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|