moov_ruby 24.1.4 → 24.1.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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/metadata_fields.rb +3 -1
  3. data/lib/crystalline/module.rb +6 -2
  4. data/lib/crystalline/types.rb +52 -0
  5. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rb +40 -0
  6. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod.rbi +17 -0
  7. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  8. data/lib/moov/models/components/achcreditsamedaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  9. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rb +40 -0
  10. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod.rbi +17 -0
  11. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  12. data/lib/moov/models/components/achcreditstandardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  13. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rb +40 -0
  14. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod.rbi +17 -0
  15. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rb +18 -0
  16. data/lib/moov/models/components/achdebitcollecttransferpaymentmethod_paymentmethodtype.rbi +11 -0
  17. data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rb +40 -0
  18. data/lib/moov/models/components/achdebitfundtransferpaymentmethod.rbi +17 -0
  19. data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rb +18 -0
  20. data/lib/moov/models/components/achdebitfundtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  21. data/lib/moov/models/components/applepaytransferpaymentmethod.rb +40 -0
  22. data/lib/moov/models/components/applepaytransferpaymentmethod.rbi +17 -0
  23. data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rb +18 -0
  24. data/lib/moov/models/components/applepaytransferpaymentmethod_paymentmethodtype.rbi +11 -0
  25. data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rb +40 -0
  26. data/lib/moov/models/components/cardpaymenttransferpaymentmethod.rbi +17 -0
  27. data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rb +18 -0
  28. data/lib/moov/models/components/cardpaymenttransferpaymentmethod_paymentmethodtype.rbi +11 -0
  29. data/lib/moov/models/components/moovwallettransferpaymentmethod.rb +40 -0
  30. data/lib/moov/models/components/moovwallettransferpaymentmethod.rbi +17 -0
  31. data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rb +18 -0
  32. data/lib/moov/models/components/moovwallettransferpaymentmethod_paymentmethodtype.rbi +11 -0
  33. data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rb +40 -0
  34. data/lib/moov/models/components/pullfromcardtransferpaymentmethod.rbi +17 -0
  35. data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  36. data/lib/moov/models/components/pullfromcardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  37. data/lib/moov/models/components/pushtocardtransferpaymentmethod.rb +40 -0
  38. data/lib/moov/models/components/pushtocardtransferpaymentmethod.rbi +17 -0
  39. data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rb +18 -0
  40. data/lib/moov/models/components/pushtocardtransferpaymentmethod_paymentmethodtype.rbi +11 -0
  41. data/lib/moov/models/components/rtpcredittransferpaymentmethod.rb +40 -0
  42. data/lib/moov/models/components/rtpcredittransferpaymentmethod.rbi +17 -0
  43. data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rb +18 -0
  44. data/lib/moov/models/components/rtpcredittransferpaymentmethod_paymentmethodtype.rbi +11 -0
  45. data/lib/moov/models/components/transferdestination.rb +5 -5
  46. data/lib/moov/models/components/transferoptions.rb +3 -3
  47. data/lib/moov/models/components/transferpaymentmethod.rb +27 -0
  48. data/lib/moov/models/components/transferpaymentmethod.rbi +11 -0
  49. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rb +70 -0
  50. data/lib/moov/models/components/transferpaymentmethodsbankaccount.rbi +31 -0
  51. data/lib/moov/models/components/transferpaymentmethodscard.rb +98 -0
  52. data/lib/moov/models/components/transferpaymentmethodscard.rbi +45 -0
  53. data/lib/moov/models/components/transferpaymentmethodswallet.rb +42 -0
  54. data/lib/moov/models/components/transferpaymentmethodswallet.rbi +17 -0
  55. data/lib/moov/models/components/transferpaymentmethodtype.rb +27 -0
  56. data/lib/moov/models/components/transferpaymentmethodtype.rbi +11 -0
  57. data/lib/moov/models/components/transfersource.rb +5 -5
  58. data/lib/moov/models/components.rb +25 -0
  59. data/lib/moov/sdkconfiguration.rb +3 -3
  60. metadata +52 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d04dd24662ff1ed6c5b7d4b30bc3d556f1e5953efc7bf0aee74026115fd61d3
4
- data.tar.gz: 9f995df5d1d94bd9dcf4b04b0c1d3acea56beb14409ea6a7feed4884ff9ca0bc
3
+ metadata.gz: 787cbc8b85b285e928d8bd968b36df05f7625069b4004432d6a59466d180692a
4
+ data.tar.gz: 3281dc528bd3d636b2a522cd03b193bdac8a28a149290493d23be1e2df5c3486
5
5
  SHA512:
6
- metadata.gz: 96227c98fe59a9f2b666d85e8ddb8c47ee81643b7bceba0a71f6a7b954e46518a5f38ad82ad5570aea7cf1fca1841c8274548457a322cb62a730b77f760df17a
7
- data.tar.gz: ddab128368faec6738b11165e67e663b2b5588f7cfaca4a966e9fbbd46eb9e16f94fb8b51526d63b17942b644e35955310d902f687a039ccad9b6ed13ba49879
6
+ metadata.gz: 0ac8485978cb2d7a7fe279e8e6865d7347656bfd57e6059e6445018855c756aead488fc4c954dd8aadf650e6839a30960a2b36e7c2031f40def07f7907d1ca77
7
+ data.tar.gz: 92273d509345a1c0d854d474c1841dea99381b496f15046a87acf543fe413758eb3c36be46b002e0dfa8c3b5ec247d696bde40fe3705e99935a1aedb956327bb
@@ -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::Utils.arr? field_type
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
@@ -34,7 +34,9 @@ module Crystalline
34
34
  if Crystalline::Utils.nilable? type
35
35
  type = Crystalline::Utils.nilable_of type
36
36
  end
37
- if type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
37
+ if type.is_a?(Crystalline::DiscriminatedUnion)
38
+ type.parse(data)
39
+ elsif type.instance_of?(Class) && type.include?(::Crystalline::MetadataFields)
38
40
  type.from_dict(data)
39
41
  elsif Crystalline::Utils.union? type
40
42
  union_types = Crystalline::Utils.get_union_types(type)
@@ -123,7 +125,9 @@ module Crystalline
123
125
  inexact = 0
124
126
  unmatched = 0
125
127
 
126
- if value.class.include?(::Crystalline::MetadataFields)
128
+ if value.is_a?(Crystalline::Unknown)
129
+ return [0, 0, 0]
130
+ elsif value.class.include?(::Crystalline::MetadataFields)
127
131
  value.fields.each do |field|
128
132
  format_metadata = field.metadata.fetch(:format_json, {})
129
133
  lookup = format_metadata.fetch(:letter_case, nil)&.call
@@ -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
@@ -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 ApplePayTransferPaymentMethodPaymentMethodType < T::Enum
12
+ enums do
13
+ APPLE_PAY = new('apple-pay')
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::ApplePayTransferPaymentMethodPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::ApplePayTransferPaymentMethodPaymentMethodType
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 CardPaymentTransferPaymentMethod
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::CardPaymentTransferPaymentMethodPaymentMethodType, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('paymentMethodType'), required: true, 'decoder': Utils.enum_from_string(Models::Components::CardPaymentTransferPaymentMethodPaymentMethodType, false) } }
19
+ # A card as contained within a payment method.
20
+ field :card, Models::Components::TransferPaymentMethodsCard, { 'format_json': { 'letter_case': ::Moov::Utils.field_name('card'), required: true } }
21
+
22
+ sig { params(payment_method_id: ::String, payment_method_type: Models::Components::CardPaymentTransferPaymentMethodPaymentMethodType, card: Models::Components::TransferPaymentMethodsCard).void }
23
+ def initialize(payment_method_id:, payment_method_type:, card:)
24
+ @payment_method_id = payment_method_id
25
+ @payment_method_type = payment_method_type
26
+ @card = card
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 @card == other.card
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::CardPaymentTransferPaymentMethod
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardPaymentTransferPaymentMethod
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 card(); end
16
+ def card=(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 CardPaymentTransferPaymentMethodPaymentMethodType < T::Enum
12
+ enums do
13
+ CARD_PAYMENT = new('card-payment')
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::CardPaymentTransferPaymentMethodPaymentMethodType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Moov::Models::Components::CardPaymentTransferPaymentMethodPaymentMethodType
11
+ end