moov_ruby 26.4.0.pre.dev.3 → 26.4.0.pre.dev.5
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/crystalline/metadata_fields.rb +17 -11
- data/lib/crystalline/module.rb +94 -10
- data/lib/crystalline/types.rb +52 -0
- data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/applepaytransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/applepaytransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/cardpresentpaymenttransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/generatedby.rb +6 -2
- data/lib/moov/models/components/generatedby.rbi +2 -0
- data/lib/moov/models/components/instantbankcredittransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/instantbankcredittransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/instantbankcredittransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/instantbankcredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/moovwallettransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/moovwallettransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/pushtocardtransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/pushtocardtransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/rtpcredittransferpaymentmethod.rb +40 -0
- data/lib/moov/models/components/rtpcredittransferpaymentmethod.rbi +17 -0
- data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rb +18 -0
- data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/transferdestination.rb +5 -5
- data/lib/moov/models/components/transferentrymode.rb +18 -0
- data/lib/moov/models/components/transferentrymode.rbi +11 -0
- data/lib/moov/models/components/transferoptions.rb +3 -3
- data/lib/moov/models/components/transferpaymentmethod.rb +27 -0
- data/lib/moov/models/components/transferpaymentmethod.rbi +11 -0
- data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +70 -0
- data/lib/moov/models/components/transferpaymentmethodsbankaccount.rbi +31 -0
- data/lib/moov/models/components/transferpaymentmethodscard.rb +98 -0
- data/lib/moov/models/components/transferpaymentmethodscard.rbi +45 -0
- data/lib/moov/models/components/transferpaymentmethodswallet.rb +42 -0
- data/lib/moov/models/components/transferpaymentmethodswallet.rbi +17 -0
- data/lib/moov/models/components/transferpaymentmethodtype.rb +29 -0
- data/lib/moov/models/components/transferpaymentmethodtype.rbi +11 -0
- data/lib/moov/models/components/transfersource.rb +6 -6
- data/lib/moov/models/components/transferterminalcard.rb +78 -0
- data/lib/moov/models/components/transferterminalcard.rbi +35 -0
- data/lib/moov/models/components.rb +31 -0
- data/lib/moov/sdkconfiguration.rb +3 -3
- metadata +66 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 68bbb5341c1f289dcf0f8ce2c3c8234e0735cea33170fcd597b77811cf7ce079
|
|
4
|
+
data.tar.gz: 6c1b113a0179e18639998f4d8008a9143ff8ff4559576cbcc6d00b152803a77a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3b3ca4b06ecbb5ef8eaa40476cf44681c4f89cb225d46b8899e789eed886c4821f6d57be71bd223572a6848839b841d9726e201c7109c12f8dbc2aedf9419ac5
|
|
7
|
+
data.tar.gz: 325752e89ac699624805819cfc3cb2833eaca7f02a77840d88e1055ed28414b438cb91050ad6adb21345f1da122f9d4b5c9d62e2bc36338b66b2683a2e3a1e85
|
|
@@ -84,7 +84,9 @@ module Crystalline
|
|
|
84
84
|
# If field is nilable, and the value is not in the dict, just move to the next field
|
|
85
85
|
next if value.nil?
|
|
86
86
|
|
|
87
|
-
if Crystalline::
|
|
87
|
+
if field_type.is_a?(Crystalline::DiscriminatedUnion)
|
|
88
|
+
to_build[key] = field_type.parse(value)
|
|
89
|
+
elsif Crystalline::Utils.arr? field_type
|
|
88
90
|
inner_type = Crystalline::Utils.arr_of(field_type)
|
|
89
91
|
unmarshalled_array = value.map { |f| unmarshal_single(inner_type, f, format_metadata) }
|
|
90
92
|
to_build[key] = unmarshalled_array
|
|
@@ -112,17 +114,21 @@ module Crystalline
|
|
|
112
114
|
union_types = Crystalline::Utils.get_union_types(field_type)
|
|
113
115
|
union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
|
|
114
116
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
117
|
+
if Crystalline.union_strategy == :populated_fields
|
|
118
|
+
to_build[key] = Crystalline.unmarshal_union_populated_fields(value, union_types)
|
|
119
|
+
else
|
|
120
|
+
union_types.each do |union_type|
|
|
121
|
+
begin
|
|
122
|
+
to_build[key] = Crystalline.unmarshal_json(value, union_type)
|
|
123
|
+
rescue TypeError
|
|
124
|
+
next
|
|
125
|
+
rescue NoMethodError
|
|
126
|
+
next
|
|
127
|
+
rescue KeyError
|
|
128
|
+
next
|
|
129
|
+
end
|
|
130
|
+
break
|
|
124
131
|
end
|
|
125
|
-
break
|
|
126
132
|
end
|
|
127
133
|
end
|
|
128
134
|
elsif field_type.instance_of?(Class) && field_type.include?(::Crystalline::MetadataFields)
|
data/lib/crystalline/module.rb
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
# frozen_string_literal: true
|
|
5
5
|
|
|
6
6
|
module Crystalline
|
|
7
|
+
@union_strategy = :left_to_right
|
|
8
|
+
|
|
9
|
+
class << self
|
|
10
|
+
attr_accessor :union_strategy
|
|
11
|
+
end
|
|
7
12
|
|
|
8
13
|
def self.to_dict(complex)
|
|
9
14
|
if complex.is_a? Array
|
|
@@ -29,21 +34,18 @@ module Crystalline
|
|
|
29
34
|
if Crystalline::Utils.nilable? type
|
|
30
35
|
type = Crystalline::Utils.nilable_of type
|
|
31
36
|
end
|
|
32
|
-
if type.
|
|
37
|
+
if type.is_a?(Crystalline::DiscriminatedUnion)
|
|
38
|
+
type.parse(data)
|
|
39
|
+
elsif type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
|
|
33
40
|
type.from_dict(data)
|
|
34
41
|
elsif Crystalline::Utils.union? type
|
|
35
42
|
union_types = Crystalline::Utils.get_union_types(type)
|
|
36
43
|
union_types = union_types.sort_by { |klass| Crystalline.non_nilable_attr_count(klass) }
|
|
37
44
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
next
|
|
43
|
-
rescue NoMethodError
|
|
44
|
-
next
|
|
45
|
-
rescue KeyError
|
|
46
|
-
next
|
|
45
|
+
if Crystalline.union_strategy == :populated_fields
|
|
46
|
+
Crystalline.unmarshal_union_populated_fields(data, union_types)
|
|
47
|
+
else
|
|
48
|
+
Crystalline.unmarshal_union_left_to_right(data, union_types)
|
|
47
49
|
end
|
|
48
50
|
elsif Crystalline::Utils.arr? type
|
|
49
51
|
data.map { |v| Crystalline.unmarshal_json(v, Crystalline::Utils.arr_of(type)) }
|
|
@@ -76,6 +78,88 @@ module Crystalline
|
|
|
76
78
|
end
|
|
77
79
|
end
|
|
78
80
|
|
|
81
|
+
def self.unmarshal_union_left_to_right(data, union_types)
|
|
82
|
+
union_types.each do |union_type|
|
|
83
|
+
return Crystalline.unmarshal_json(data, union_type)
|
|
84
|
+
rescue TypeError
|
|
85
|
+
next
|
|
86
|
+
rescue NoMethodError
|
|
87
|
+
next
|
|
88
|
+
rescue KeyError
|
|
89
|
+
next
|
|
90
|
+
end
|
|
91
|
+
nil
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def self.unmarshal_union_populated_fields(data, union_types)
|
|
95
|
+
best_value = nil
|
|
96
|
+
best_matched = -1
|
|
97
|
+
best_inexact = 0
|
|
98
|
+
best_unmatched = 0
|
|
99
|
+
|
|
100
|
+
union_types.each do |union_type|
|
|
101
|
+
value = Crystalline.unmarshal_json(data, union_type)
|
|
102
|
+
matched, inexact, unmatched = count_matched_fields(value, data)
|
|
103
|
+
|
|
104
|
+
if best_value.nil? ||
|
|
105
|
+
matched > best_matched ||
|
|
106
|
+
(matched == best_matched && inexact < best_inexact) ||
|
|
107
|
+
(matched == best_matched && inexact == best_inexact && unmatched < best_unmatched)
|
|
108
|
+
best_value = value
|
|
109
|
+
best_matched = matched
|
|
110
|
+
best_inexact = inexact
|
|
111
|
+
best_unmatched = unmatched
|
|
112
|
+
end
|
|
113
|
+
rescue TypeError
|
|
114
|
+
next
|
|
115
|
+
rescue NoMethodError
|
|
116
|
+
next
|
|
117
|
+
rescue KeyError
|
|
118
|
+
next
|
|
119
|
+
end
|
|
120
|
+
best_value
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
def self.count_matched_fields(value, raw_data)
|
|
124
|
+
matched = 0
|
|
125
|
+
inexact = 0
|
|
126
|
+
unmatched = 0
|
|
127
|
+
|
|
128
|
+
if value.is_a?(Crystalline::Unknown)
|
|
129
|
+
return [0, 0, 0]
|
|
130
|
+
elsif value.class.include?(::Crystalline::MetadataFields)
|
|
131
|
+
value.fields.each do |field|
|
|
132
|
+
format_metadata = field.metadata.fetch(:format_json, {})
|
|
133
|
+
lookup = format_metadata.fetch(:letter_case, nil)&.call
|
|
134
|
+
field_val = value.send(field.name)
|
|
135
|
+
|
|
136
|
+
if raw_data.is_a?(::Hash) && lookup && raw_data.key?(lookup)
|
|
137
|
+
if field_val.class.include?(::Crystalline::MetadataFields) && raw_data[lookup].is_a?(::Hash)
|
|
138
|
+
nested_matched, nested_inexact, nested_unmatched = count_matched_fields(field_val, raw_data[lookup])
|
|
139
|
+
matched += nested_matched
|
|
140
|
+
inexact += nested_inexact
|
|
141
|
+
unmatched += nested_unmatched
|
|
142
|
+
else
|
|
143
|
+
matched += 1
|
|
144
|
+
if field_val.respond_to?(:known?) && !field_val.known?
|
|
145
|
+
inexact += 1
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
elsif !::Crystalline::Utils.nilable?(field.type)
|
|
149
|
+
unmatched += 1
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
elsif value.is_a?(::Array)
|
|
153
|
+
matched = value.length
|
|
154
|
+
elsif value.is_a?(::Hash)
|
|
155
|
+
matched = value.length
|
|
156
|
+
else
|
|
157
|
+
matched = 1
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
[matched, inexact, unmatched]
|
|
161
|
+
end
|
|
162
|
+
|
|
79
163
|
def self.non_nilable_attr_count(klass)
|
|
80
164
|
# somewhat sane sort ordering for Union deserialization.
|
|
81
165
|
# All Crystalline objects return the number of non-nilable fields
|
data/lib/crystalline/types.rb
CHANGED
|
@@ -40,6 +40,58 @@ module Crystalline
|
|
|
40
40
|
class Boolean
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
# Wraps an unrecognized payload from an open discriminated union.
|
|
44
|
+
# Produced when the discriminator value is missing, unknown, or schema validation fails.
|
|
45
|
+
class Unknown
|
|
46
|
+
attr_reader :raw
|
|
47
|
+
|
|
48
|
+
def initialize(raw:)
|
|
49
|
+
@raw = raw
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def unknown?
|
|
53
|
+
true
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Forward-compatible discriminated union parser.
|
|
58
|
+
# Known discriminator values are deserialized to their mapped types.
|
|
59
|
+
# Unknown or invalid payloads are captured as Crystalline::Unknown.
|
|
60
|
+
class DiscriminatedUnion
|
|
61
|
+
attr_reader :discriminator, :variants
|
|
62
|
+
|
|
63
|
+
def initialize(discriminator, variants)
|
|
64
|
+
@discriminator = discriminator
|
|
65
|
+
@variants = variants
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def parse(payload)
|
|
69
|
+
unless payload.is_a?(::Hash)
|
|
70
|
+
return Unknown.new(raw: payload)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
disc_value = payload[@discriminator]
|
|
74
|
+
unless disc_value.is_a?(::String)
|
|
75
|
+
return Unknown.new(raw: payload)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
variant_type = @variants[disc_value]
|
|
79
|
+
unless variant_type
|
|
80
|
+
return Unknown.new(raw: payload)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
begin
|
|
84
|
+
Crystalline.unmarshal_json(payload, variant_type)
|
|
85
|
+
rescue StandardError
|
|
86
|
+
Unknown.new(raw: payload)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def self.unknown?(value)
|
|
92
|
+
value.is_a?(Unknown)
|
|
93
|
+
end
|
|
94
|
+
|
|
43
95
|
module Enum
|
|
44
96
|
def self.included(base)
|
|
45
97
|
base.extend(ClassMethods)
|
|
@@ -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 AchCreditSameDayTransferPaymentMethod
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the payment method.
|
|
16
|
+
field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :payment_method_type, Models::Components::AchCreditSameDayTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::AchCreditSameDayTransferPaymentMethodPaymentMethodType, false) } }
|
|
19
|
+
# A bank account as contained within a payment method.
|
|
20
|
+
field :bank_account, Models::Components::TransferPaymentMethodsBankAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount'), required: true } }
|
|
21
|
+
|
|
22
|
+
sig { params(payment_method_id: ::String, payment_method_type: Models::Components::AchCreditSameDayTransferPaymentMethodPaymentMethodType, bank_account: Models::Components::TransferPaymentMethodsBankAccount).void }
|
|
23
|
+
def initialize(payment_method_id:, payment_method_type:, bank_account:)
|
|
24
|
+
@payment_method_id = payment_method_id
|
|
25
|
+
@payment_method_type = payment_method_type
|
|
26
|
+
@bank_account = bank_account
|
|
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 @payment_method_id == other.payment_method_id
|
|
33
|
+
return false unless @payment_method_type == other.payment_method_type
|
|
34
|
+
return false unless @bank_account == other.bank_account
|
|
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::AchCreditSameDayTransferPaymentMethod
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchCreditSameDayTransferPaymentMethod
|
|
11
|
+
def payment_method_id(); end
|
|
12
|
+
def payment_method_id=(str_); end
|
|
13
|
+
def payment_method_type(); end
|
|
14
|
+
def payment_method_type=(str_); end
|
|
15
|
+
def bank_account(); end
|
|
16
|
+
def bank_account=(str_); end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
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 AchCreditSameDayTransferPaymentMethodPaymentMethodType < T::Enum
|
|
12
|
+
enums do
|
|
13
|
+
ACH_CREDIT_SAME_DAY = new('ach-credit-same-day')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::AchCreditSameDayTransferPaymentMethodPaymentMethodType
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchCreditSameDayTransferPaymentMethodPaymentMethodType
|
|
11
|
+
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 AchCreditStandardTransferPaymentMethod
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the payment method.
|
|
16
|
+
field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :payment_method_type, Models::Components::AchCreditStandardTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::AchCreditStandardTransferPaymentMethodPaymentMethodType, false) } }
|
|
19
|
+
# A bank account as contained within a payment method.
|
|
20
|
+
field :bank_account, Models::Components::TransferPaymentMethodsBankAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount'), required: true } }
|
|
21
|
+
|
|
22
|
+
sig { params(payment_method_id: ::String, payment_method_type: Models::Components::AchCreditStandardTransferPaymentMethodPaymentMethodType, bank_account: Models::Components::TransferPaymentMethodsBankAccount).void }
|
|
23
|
+
def initialize(payment_method_id:, payment_method_type:, bank_account:)
|
|
24
|
+
@payment_method_id = payment_method_id
|
|
25
|
+
@payment_method_type = payment_method_type
|
|
26
|
+
@bank_account = bank_account
|
|
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 @payment_method_id == other.payment_method_id
|
|
33
|
+
return false unless @payment_method_type == other.payment_method_type
|
|
34
|
+
return false unless @bank_account == other.bank_account
|
|
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::AchCreditStandardTransferPaymentMethod
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchCreditStandardTransferPaymentMethod
|
|
11
|
+
def payment_method_id(); end
|
|
12
|
+
def payment_method_id=(str_); end
|
|
13
|
+
def payment_method_type(); end
|
|
14
|
+
def payment_method_type=(str_); end
|
|
15
|
+
def bank_account(); end
|
|
16
|
+
def bank_account=(str_); end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
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 AchCreditStandardTransferPaymentMethodPaymentMethodType < T::Enum
|
|
12
|
+
enums do
|
|
13
|
+
ACH_CREDIT_STANDARD = new('ach-credit-standard')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::AchCreditStandardTransferPaymentMethodPaymentMethodType
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchCreditStandardTransferPaymentMethodPaymentMethodType
|
|
11
|
+
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 AchDebitCollectTransferPaymentMethod
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the payment method.
|
|
16
|
+
field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :payment_method_type, Models::Components::AchDebitCollectTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::AchDebitCollectTransferPaymentMethodPaymentMethodType, false) } }
|
|
19
|
+
# A bank account as contained within a payment method.
|
|
20
|
+
field :bank_account, Models::Components::TransferPaymentMethodsBankAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount'), required: true } }
|
|
21
|
+
|
|
22
|
+
sig { params(payment_method_id: ::String, payment_method_type: Models::Components::AchDebitCollectTransferPaymentMethodPaymentMethodType, bank_account: Models::Components::TransferPaymentMethodsBankAccount).void }
|
|
23
|
+
def initialize(payment_method_id:, payment_method_type:, bank_account:)
|
|
24
|
+
@payment_method_id = payment_method_id
|
|
25
|
+
@payment_method_type = payment_method_type
|
|
26
|
+
@bank_account = bank_account
|
|
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 @payment_method_id == other.payment_method_id
|
|
33
|
+
return false unless @payment_method_type == other.payment_method_type
|
|
34
|
+
return false unless @bank_account == other.bank_account
|
|
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::AchDebitCollectTransferPaymentMethod
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchDebitCollectTransferPaymentMethod
|
|
11
|
+
def payment_method_id(); end
|
|
12
|
+
def payment_method_id=(str_); end
|
|
13
|
+
def payment_method_type(); end
|
|
14
|
+
def payment_method_type=(str_); end
|
|
15
|
+
def bank_account(); end
|
|
16
|
+
def bank_account=(str_); end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
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 AchDebitCollectTransferPaymentMethodPaymentMethodType < T::Enum
|
|
12
|
+
enums do
|
|
13
|
+
ACH_DEBIT_COLLECT = new('ach-debit-collect')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::AchDebitCollectTransferPaymentMethodPaymentMethodType
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchDebitCollectTransferPaymentMethodPaymentMethodType
|
|
11
|
+
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 AchDebitFundTransferPaymentMethod
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the payment method.
|
|
16
|
+
field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :payment_method_type, Models::Components::AchDebitFundTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::AchDebitFundTransferPaymentMethodPaymentMethodType, false) } }
|
|
19
|
+
# A bank account as contained within a payment method.
|
|
20
|
+
field :bank_account, Models::Components::TransferPaymentMethodsBankAccount, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('bankAccount'), required: true } }
|
|
21
|
+
|
|
22
|
+
sig { params(payment_method_id: ::String, payment_method_type: Models::Components::AchDebitFundTransferPaymentMethodPaymentMethodType, bank_account: Models::Components::TransferPaymentMethodsBankAccount).void }
|
|
23
|
+
def initialize(payment_method_id:, payment_method_type:, bank_account:)
|
|
24
|
+
@payment_method_id = payment_method_id
|
|
25
|
+
@payment_method_type = payment_method_type
|
|
26
|
+
@bank_account = bank_account
|
|
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 @payment_method_id == other.payment_method_id
|
|
33
|
+
return false unless @payment_method_type == other.payment_method_type
|
|
34
|
+
return false unless @bank_account == other.bank_account
|
|
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::AchDebitFundTransferPaymentMethod
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchDebitFundTransferPaymentMethod
|
|
11
|
+
def payment_method_id(); end
|
|
12
|
+
def payment_method_id=(str_); end
|
|
13
|
+
def payment_method_type(); end
|
|
14
|
+
def payment_method_type=(str_); end
|
|
15
|
+
def bank_account(); end
|
|
16
|
+
def bank_account=(str_); end
|
|
17
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
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 AchDebitFundTransferPaymentMethodPaymentMethodType < T::Enum
|
|
12
|
+
enums do
|
|
13
|
+
ACH_DEBIT_FUND = new('ach-debit-fund')
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# typed: true
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class Moov::Models::Components::AchDebitFundTransferPaymentMethodPaymentMethodType
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::AchDebitFundTransferPaymentMethodPaymentMethodType
|
|
11
|
+
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 ApplePayTransferPaymentMethod
|
|
12
|
+
extend T::Sig
|
|
13
|
+
include Crystalline::MetadataFields
|
|
14
|
+
|
|
15
|
+
# ID of the payment method.
|
|
16
|
+
field :payment_method_id, ::String, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodID'), required: true } }
|
|
17
|
+
|
|
18
|
+
field :payment_method_type, Models::Components::ApplePayTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::ApplePayTransferPaymentMethodPaymentMethodType, false) } }
|
|
19
|
+
# Describes an Apple Pay token on a Moov account.
|
|
20
|
+
field :apple_pay, Models::Components::ApplePayResponse, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('applePay'), required: true } }
|
|
21
|
+
|
|
22
|
+
sig { params(payment_method_id: ::String, payment_method_type: Models::Components::ApplePayTransferPaymentMethodPaymentMethodType, apple_pay: Models::Components::ApplePayResponse).void }
|
|
23
|
+
def initialize(payment_method_id:, payment_method_type:, apple_pay:)
|
|
24
|
+
@payment_method_id = payment_method_id
|
|
25
|
+
@payment_method_type = payment_method_type
|
|
26
|
+
@apple_pay = apple_pay
|
|
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 @payment_method_id == other.payment_method_id
|
|
33
|
+
return false unless @payment_method_type == other.payment_method_type
|
|
34
|
+
return false unless @apple_pay == other.apple_pay
|
|
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::ApplePayTransferPaymentMethod
|
|
6
|
+
extend ::Crystalline::MetadataFields::ClassMethods
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Moov::Models::Components::ApplePayTransferPaymentMethod
|
|
11
|
+
def payment_method_id(); end
|
|
12
|
+
def payment_method_id=(str_); end
|
|
13
|
+
def payment_method_type(); end
|
|
14
|
+
def payment_method_type=(str_); end
|
|
15
|
+
def apple_pay(); end
|
|
16
|
+
def apple_pay=(str_); end
|
|
17
|
+
end
|