lithic 0.5.0 → 0.6.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.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/lithic/models/account_holders/account_holder_entity.rb +183 -0
  5. data/lib/lithic/models/account_holders/entity_create_params.rb +159 -0
  6. data/lib/lithic/models/account_holders/entity_create_response.rb +113 -0
  7. data/lib/lithic/models/account_holders/entity_delete_params.rb +22 -0
  8. data/lib/lithic/models/auth_rules/auth_rule.rb +6 -2
  9. data/lib/lithic/models/auth_rules/conditional_block_parameters.rb +3 -0
  10. data/lib/lithic/models/auth_rules/v2_create_params.rb +5 -2
  11. data/lib/lithic/models/auth_rules/v2_draft_params.rb +1 -0
  12. data/lib/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rb +9 -9
  13. data/lib/lithic/models/financial_account.rb +1 -0
  14. data/lib/lithic/models/financial_account_update_status_params.rb +1 -0
  15. data/lib/lithic/models/financial_accounts/category_tier.rb +28 -0
  16. data/lib/lithic/models/financial_accounts/interest_tier_schedule.rb +50 -0
  17. data/lib/lithic/models/financial_accounts/interest_tier_schedule_create_params.rb +16 -0
  18. data/lib/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rb +22 -0
  19. data/lib/lithic/models/financial_accounts/interest_tier_schedule_list_params.rb +40 -0
  20. data/lib/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rb +22 -0
  21. data/lib/lithic/models/financial_accounts/interest_tier_schedule_update_params.rb +44 -0
  22. data/lib/lithic/models/financial_accounts/loan_tape.rb +1 -0
  23. data/lib/lithic/models/financial_accounts/loan_tape_configuration.rb +63 -0
  24. data/lib/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rb +16 -0
  25. data/lib/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rb +36 -0
  26. data/lib/lithic/models/financial_accounts/statement.rb +1 -0
  27. data/lib/lithic/models/{digital_wallet_token_metadata.rb → token_metadata.rb} +18 -19
  28. data/lib/lithic/models/tokenization_approval_request_webhook_event.rb +9 -9
  29. data/lib/lithic/models/tokenization_decisioning_request_webhook_event.rb +9 -9
  30. data/lib/lithic/models.rb +4 -2
  31. data/lib/lithic/resources/account_holders/entities.rb +89 -0
  32. data/lib/lithic/resources/account_holders.rb +4 -0
  33. data/lib/lithic/resources/financial_accounts/interest_tier_schedule.rb +205 -0
  34. data/lib/lithic/resources/financial_accounts/loan_tape_configuration.rb +36 -0
  35. data/lib/lithic/resources/financial_accounts.rb +9 -0
  36. data/lib/lithic/version.rb +1 -1
  37. data/lib/lithic.rb +18 -1
  38. data/rbi/lithic/models/account_holders/account_holder_entity.rbi +296 -0
  39. data/rbi/lithic/models/account_holders/entity_create_params.rbi +242 -0
  40. data/rbi/lithic/models/account_holders/entity_create_response.rbi +292 -0
  41. data/rbi/lithic/models/account_holders/entity_delete_params.rbi +43 -0
  42. data/rbi/lithic/models/auth_rules/auth_rule.rbi +6 -3
  43. data/rbi/lithic/models/auth_rules/conditional_block_parameters.rbi +1 -0
  44. data/rbi/lithic/models/auth_rules/v2_create_params.rbi +6 -3
  45. data/rbi/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbi +15 -17
  46. data/rbi/lithic/models/financial_account.rbi +5 -0
  47. data/rbi/lithic/models/financial_account_update_status_params.rbi +5 -0
  48. data/rbi/lithic/models/financial_accounts/category_tier.rbi +45 -0
  49. data/rbi/lithic/models/financial_accounts/interest_tier_schedule.rbi +75 -0
  50. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbi +32 -0
  51. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbi +43 -0
  52. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbi +73 -0
  53. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbi +43 -0
  54. data/rbi/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbi +70 -0
  55. data/rbi/lithic/models/financial_accounts/loan_tape.rbi +5 -0
  56. data/rbi/lithic/models/financial_accounts/loan_tape_configuration.rbi +99 -0
  57. data/rbi/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbi +32 -0
  58. data/rbi/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbi +65 -0
  59. data/rbi/lithic/models/financial_accounts/statement.rbi +5 -0
  60. data/rbi/lithic/models/{digital_wallet_token_metadata.rbi → token_metadata.rbi} +34 -41
  61. data/rbi/lithic/models/tokenization_approval_request_webhook_event.rbi +11 -17
  62. data/rbi/lithic/models/tokenization_decisioning_request_webhook_event.rbi +15 -17
  63. data/rbi/lithic/models.rbi +4 -2
  64. data/rbi/lithic/resources/account_holders/entities.rbi +80 -0
  65. data/rbi/lithic/resources/account_holders.rbi +3 -0
  66. data/rbi/lithic/resources/auth_rules/v2.rbi +2 -1
  67. data/rbi/lithic/resources/financial_accounts/interest_tier_schedule.rbi +156 -0
  68. data/rbi/lithic/resources/financial_accounts/loan_tape_configuration.rbi +30 -0
  69. data/rbi/lithic/resources/financial_accounts.rbi +10 -0
  70. data/sig/lithic/models/account_holders/account_holder_entity.rbs +137 -0
  71. data/sig/lithic/models/account_holders/entity_create_params.rbs +118 -0
  72. data/sig/lithic/models/account_holders/entity_create_response.rbs +117 -0
  73. data/sig/lithic/models/account_holders/entity_delete_params.rbs +26 -0
  74. data/sig/lithic/models/digital_wallet_tokenization_approval_request_webhook_event.rbs +5 -9
  75. data/sig/lithic/models/financial_account.rbs +2 -0
  76. data/sig/lithic/models/financial_account_update_status_params.rbs +2 -0
  77. data/sig/lithic/models/financial_accounts/category_tier.rbs +21 -0
  78. data/sig/lithic/models/financial_accounts/interest_tier_schedule.rbs +41 -0
  79. data/sig/lithic/models/financial_accounts/interest_tier_schedule_create_params.rbs +17 -0
  80. data/sig/lithic/models/financial_accounts/interest_tier_schedule_delete_params.rbs +26 -0
  81. data/sig/lithic/models/financial_accounts/interest_tier_schedule_list_params.rbs +40 -0
  82. data/sig/lithic/models/financial_accounts/interest_tier_schedule_retrieve_params.rbs +26 -0
  83. data/sig/lithic/models/financial_accounts/interest_tier_schedule_update_params.rbs +38 -0
  84. data/sig/lithic/models/financial_accounts/loan_tape.rbs +2 -0
  85. data/sig/lithic/models/financial_accounts/loan_tape_configuration.rbs +60 -0
  86. data/sig/lithic/models/financial_accounts/loan_tape_configuration_retrieve_params.rbs +17 -0
  87. data/sig/lithic/models/financial_accounts/loan_tape_rebuild_configuration.rbs +32 -0
  88. data/sig/lithic/models/financial_accounts/statement.rbs +2 -0
  89. data/sig/lithic/models/{digital_wallet_token_metadata.rbs → token_metadata.rbs} +19 -17
  90. data/sig/lithic/models/tokenization_approval_request_webhook_event.rbs +5 -9
  91. data/sig/lithic/models/tokenization_decisioning_request_webhook_event.rbs +5 -9
  92. data/sig/lithic/models.rbs +4 -2
  93. data/sig/lithic/resources/account_holders/entities.rbs +28 -0
  94. data/sig/lithic/resources/account_holders.rbs +2 -0
  95. data/sig/lithic/resources/financial_accounts/interest_tier_schedule.rbs +46 -0
  96. data/sig/lithic/resources/financial_accounts/loan_tape_configuration.rbs +14 -0
  97. data/sig/lithic/resources/financial_accounts.rbs +4 -0
  98. metadata +56 -5
@@ -0,0 +1,296 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ AccountHolderEntity = AccountHolders::AccountHolderEntity
6
+
7
+ module AccountHolders
8
+ class AccountHolderEntity < Lithic::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Lithic::AccountHolders::AccountHolderEntity,
13
+ Lithic::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Globally unique identifier for the entity
18
+ sig { returns(String) }
19
+ attr_accessor :token
20
+
21
+ # Globally unique identifier for the account holder
22
+ sig { returns(String) }
23
+ attr_accessor :account_holder_token
24
+
25
+ # Individual's current address
26
+ sig { returns(Lithic::AccountHolders::AccountHolderEntity::Address) }
27
+ attr_reader :address
28
+
29
+ sig do
30
+ params(
31
+ address:
32
+ Lithic::AccountHolders::AccountHolderEntity::Address::OrHash
33
+ ).void
34
+ end
35
+ attr_writer :address
36
+
37
+ # Individual's date of birth, as an RFC 3339 date
38
+ sig { returns(T.nilable(String)) }
39
+ attr_accessor :dob
40
+
41
+ # Individual's email address
42
+ sig { returns(T.nilable(String)) }
43
+ attr_accessor :email
44
+
45
+ # Individual's first name, as it appears on government-issued identity documents
46
+ sig { returns(T.nilable(String)) }
47
+ attr_accessor :first_name
48
+
49
+ # Individual's last name, as it appears on government-issued identity documents
50
+ sig { returns(T.nilable(String)) }
51
+ attr_accessor :last_name
52
+
53
+ # Individual's phone number, entered in E.164 format
54
+ sig { returns(T.nilable(String)) }
55
+ attr_accessor :phone_number
56
+
57
+ # The status of the entity
58
+ sig do
59
+ returns(
60
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
61
+ )
62
+ end
63
+ attr_accessor :status
64
+
65
+ # The type of entity
66
+ sig do
67
+ returns(
68
+ Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol
69
+ )
70
+ end
71
+ attr_accessor :type
72
+
73
+ # Information about an entity associated with an account holder
74
+ sig do
75
+ params(
76
+ token: String,
77
+ account_holder_token: String,
78
+ address:
79
+ Lithic::AccountHolders::AccountHolderEntity::Address::OrHash,
80
+ dob: T.nilable(String),
81
+ email: T.nilable(String),
82
+ first_name: T.nilable(String),
83
+ last_name: T.nilable(String),
84
+ phone_number: T.nilable(String),
85
+ status:
86
+ Lithic::AccountHolders::AccountHolderEntity::Status::OrSymbol,
87
+ type: Lithic::AccountHolders::AccountHolderEntity::Type::OrSymbol
88
+ ).returns(T.attached_class)
89
+ end
90
+ def self.new(
91
+ # Globally unique identifier for the entity
92
+ token:,
93
+ # Globally unique identifier for the account holder
94
+ account_holder_token:,
95
+ # Individual's current address
96
+ address:,
97
+ # Individual's date of birth, as an RFC 3339 date
98
+ dob:,
99
+ # Individual's email address
100
+ email:,
101
+ # Individual's first name, as it appears on government-issued identity documents
102
+ first_name:,
103
+ # Individual's last name, as it appears on government-issued identity documents
104
+ last_name:,
105
+ # Individual's phone number, entered in E.164 format
106
+ phone_number:,
107
+ # The status of the entity
108
+ status:,
109
+ # The type of entity
110
+ type:
111
+ )
112
+ end
113
+
114
+ sig do
115
+ override.returns(
116
+ {
117
+ token: String,
118
+ account_holder_token: String,
119
+ address: Lithic::AccountHolders::AccountHolderEntity::Address,
120
+ dob: T.nilable(String),
121
+ email: T.nilable(String),
122
+ first_name: T.nilable(String),
123
+ last_name: T.nilable(String),
124
+ phone_number: T.nilable(String),
125
+ status:
126
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol,
127
+ type:
128
+ Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol
129
+ }
130
+ )
131
+ end
132
+ def to_hash
133
+ end
134
+
135
+ class Address < Lithic::Internal::Type::BaseModel
136
+ OrHash =
137
+ T.type_alias do
138
+ T.any(
139
+ Lithic::AccountHolders::AccountHolderEntity::Address,
140
+ Lithic::Internal::AnyHash
141
+ )
142
+ end
143
+
144
+ # Valid deliverable address (no PO boxes).
145
+ sig { returns(String) }
146
+ attr_accessor :address1
147
+
148
+ # Name of city.
149
+ sig { returns(String) }
150
+ attr_accessor :city
151
+
152
+ # Valid country code. Only USA is currently supported, entered in uppercase ISO
153
+ # 3166-1 alpha-3 three-character format.
154
+ sig { returns(String) }
155
+ attr_accessor :country
156
+
157
+ # Valid postal code. Only USA ZIP codes are currently supported, entered as a
158
+ # five-digit ZIP or nine-digit ZIP+4.
159
+ sig { returns(String) }
160
+ attr_accessor :postal_code
161
+
162
+ # Valid state code. Only USA state codes are currently supported, entered in
163
+ # uppercase ISO 3166-2 two-character format.
164
+ sig { returns(String) }
165
+ attr_accessor :state
166
+
167
+ # Unit or apartment number (if applicable).
168
+ sig { returns(T.nilable(String)) }
169
+ attr_reader :address2
170
+
171
+ sig { params(address2: String).void }
172
+ attr_writer :address2
173
+
174
+ # Individual's current address
175
+ sig do
176
+ params(
177
+ address1: String,
178
+ city: String,
179
+ country: String,
180
+ postal_code: String,
181
+ state: String,
182
+ address2: String
183
+ ).returns(T.attached_class)
184
+ end
185
+ def self.new(
186
+ # Valid deliverable address (no PO boxes).
187
+ address1:,
188
+ # Name of city.
189
+ city:,
190
+ # Valid country code. Only USA is currently supported, entered in uppercase ISO
191
+ # 3166-1 alpha-3 three-character format.
192
+ country:,
193
+ # Valid postal code. Only USA ZIP codes are currently supported, entered as a
194
+ # five-digit ZIP or nine-digit ZIP+4.
195
+ postal_code:,
196
+ # Valid state code. Only USA state codes are currently supported, entered in
197
+ # uppercase ISO 3166-2 two-character format.
198
+ state:,
199
+ # Unit or apartment number (if applicable).
200
+ address2: nil
201
+ )
202
+ end
203
+
204
+ sig do
205
+ override.returns(
206
+ {
207
+ address1: String,
208
+ city: String,
209
+ country: String,
210
+ postal_code: String,
211
+ state: String,
212
+ address2: String
213
+ }
214
+ )
215
+ end
216
+ def to_hash
217
+ end
218
+ end
219
+
220
+ # The status of the entity
221
+ module Status
222
+ extend Lithic::Internal::Type::Enum
223
+
224
+ TaggedSymbol =
225
+ T.type_alias do
226
+ T.all(Symbol, Lithic::AccountHolders::AccountHolderEntity::Status)
227
+ end
228
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
229
+
230
+ ACCEPTED =
231
+ T.let(
232
+ :ACCEPTED,
233
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
234
+ )
235
+ INACTIVE =
236
+ T.let(
237
+ :INACTIVE,
238
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
239
+ )
240
+ PENDING_REVIEW =
241
+ T.let(
242
+ :PENDING_REVIEW,
243
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
244
+ )
245
+ REJECTED =
246
+ T.let(
247
+ :REJECTED,
248
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
249
+ )
250
+
251
+ sig do
252
+ override.returns(
253
+ T::Array[
254
+ Lithic::AccountHolders::AccountHolderEntity::Status::TaggedSymbol
255
+ ]
256
+ )
257
+ end
258
+ def self.values
259
+ end
260
+ end
261
+
262
+ # The type of entity
263
+ module Type
264
+ extend Lithic::Internal::Type::Enum
265
+
266
+ TaggedSymbol =
267
+ T.type_alias do
268
+ T.all(Symbol, Lithic::AccountHolders::AccountHolderEntity::Type)
269
+ end
270
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
271
+
272
+ BENEFICIAL_OWNER_INDIVIDUAL =
273
+ T.let(
274
+ :BENEFICIAL_OWNER_INDIVIDUAL,
275
+ Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol
276
+ )
277
+ CONTROL_PERSON =
278
+ T.let(
279
+ :CONTROL_PERSON,
280
+ Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol
281
+ )
282
+
283
+ sig do
284
+ override.returns(
285
+ T::Array[
286
+ Lithic::AccountHolders::AccountHolderEntity::Type::TaggedSymbol
287
+ ]
288
+ )
289
+ end
290
+ def self.values
291
+ end
292
+ end
293
+ end
294
+ end
295
+ end
296
+ end
@@ -0,0 +1,242 @@
1
+ # typed: strong
2
+
3
+ module Lithic
4
+ module Models
5
+ module AccountHolders
6
+ class EntityCreateParams < Lithic::Internal::Type::BaseModel
7
+ extend Lithic::Internal::Type::RequestParameters::Converter
8
+ include Lithic::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Lithic::AccountHolders::EntityCreateParams,
14
+ Lithic::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Individual's current address - PO boxes, UPS drops, and FedEx drops are not
19
+ # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
20
+ sig { returns(Lithic::AccountHolders::EntityCreateParams::Address) }
21
+ attr_reader :address
22
+
23
+ sig do
24
+ params(
25
+ address: Lithic::AccountHolders::EntityCreateParams::Address::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :address
29
+
30
+ # Individual's date of birth, as an RFC 3339 date.
31
+ sig { returns(String) }
32
+ attr_accessor :dob
33
+
34
+ # Individual's email address. If utilizing Lithic for chargeback processing, this
35
+ # customer email address may be used to communicate dispute status and resolution.
36
+ sig { returns(String) }
37
+ attr_accessor :email
38
+
39
+ # Individual's first name, as it appears on government-issued identity documents.
40
+ sig { returns(String) }
41
+ attr_accessor :first_name
42
+
43
+ # Government-issued identification number (required for identity verification and
44
+ # compliance with banking regulations). Social Security Numbers (SSN) and
45
+ # Individual Taxpayer Identification Numbers (ITIN) are currently supported,
46
+ # entered as full nine-digits, with or without hyphens
47
+ sig { returns(String) }
48
+ attr_accessor :government_id
49
+
50
+ # Individual's last name, as it appears on government-issued identity documents.
51
+ sig { returns(String) }
52
+ attr_accessor :last_name
53
+
54
+ # Individual's phone number, entered in E.164 format.
55
+ sig { returns(String) }
56
+ attr_accessor :phone_number
57
+
58
+ # The type of entity to create on the account holder
59
+ sig do
60
+ returns(Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol)
61
+ end
62
+ attr_accessor :type
63
+
64
+ sig do
65
+ params(
66
+ address:
67
+ Lithic::AccountHolders::EntityCreateParams::Address::OrHash,
68
+ dob: String,
69
+ email: String,
70
+ first_name: String,
71
+ government_id: String,
72
+ last_name: String,
73
+ phone_number: String,
74
+ type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol,
75
+ request_options: Lithic::RequestOptions::OrHash
76
+ ).returns(T.attached_class)
77
+ end
78
+ def self.new(
79
+ # Individual's current address - PO boxes, UPS drops, and FedEx drops are not
80
+ # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
81
+ address:,
82
+ # Individual's date of birth, as an RFC 3339 date.
83
+ dob:,
84
+ # Individual's email address. If utilizing Lithic for chargeback processing, this
85
+ # customer email address may be used to communicate dispute status and resolution.
86
+ email:,
87
+ # Individual's first name, as it appears on government-issued identity documents.
88
+ first_name:,
89
+ # Government-issued identification number (required for identity verification and
90
+ # compliance with banking regulations). Social Security Numbers (SSN) and
91
+ # Individual Taxpayer Identification Numbers (ITIN) are currently supported,
92
+ # entered as full nine-digits, with or without hyphens
93
+ government_id:,
94
+ # Individual's last name, as it appears on government-issued identity documents.
95
+ last_name:,
96
+ # Individual's phone number, entered in E.164 format.
97
+ phone_number:,
98
+ # The type of entity to create on the account holder
99
+ type:,
100
+ request_options: {}
101
+ )
102
+ end
103
+
104
+ sig do
105
+ override.returns(
106
+ {
107
+ address: Lithic::AccountHolders::EntityCreateParams::Address,
108
+ dob: String,
109
+ email: String,
110
+ first_name: String,
111
+ government_id: String,
112
+ last_name: String,
113
+ phone_number: String,
114
+ type: Lithic::AccountHolders::EntityCreateParams::Type::OrSymbol,
115
+ request_options: Lithic::RequestOptions
116
+ }
117
+ )
118
+ end
119
+ def to_hash
120
+ end
121
+
122
+ class Address < Lithic::Internal::Type::BaseModel
123
+ OrHash =
124
+ T.type_alias do
125
+ T.any(
126
+ Lithic::AccountHolders::EntityCreateParams::Address,
127
+ Lithic::Internal::AnyHash
128
+ )
129
+ end
130
+
131
+ # Valid deliverable address (no PO boxes).
132
+ sig { returns(String) }
133
+ attr_accessor :address1
134
+
135
+ # Name of city.
136
+ sig { returns(String) }
137
+ attr_accessor :city
138
+
139
+ # Valid country code. Only USA is currently supported, entered in uppercase ISO
140
+ # 3166-1 alpha-3 three-character format.
141
+ sig { returns(String) }
142
+ attr_accessor :country
143
+
144
+ # Valid postal code. Only USA ZIP codes are currently supported, entered as a
145
+ # five-digit ZIP or nine-digit ZIP+4.
146
+ sig { returns(String) }
147
+ attr_accessor :postal_code
148
+
149
+ # Valid state code. Only USA state codes are currently supported, entered in
150
+ # uppercase ISO 3166-2 two-character format.
151
+ sig { returns(String) }
152
+ attr_accessor :state
153
+
154
+ # Unit or apartment number (if applicable).
155
+ sig { returns(T.nilable(String)) }
156
+ attr_reader :address2
157
+
158
+ sig { params(address2: String).void }
159
+ attr_writer :address2
160
+
161
+ # Individual's current address - PO boxes, UPS drops, and FedEx drops are not
162
+ # acceptable; APO/FPO are acceptable. Only USA addresses are currently supported.
163
+ sig do
164
+ params(
165
+ address1: String,
166
+ city: String,
167
+ country: String,
168
+ postal_code: String,
169
+ state: String,
170
+ address2: String
171
+ ).returns(T.attached_class)
172
+ end
173
+ def self.new(
174
+ # Valid deliverable address (no PO boxes).
175
+ address1:,
176
+ # Name of city.
177
+ city:,
178
+ # Valid country code. Only USA is currently supported, entered in uppercase ISO
179
+ # 3166-1 alpha-3 three-character format.
180
+ country:,
181
+ # Valid postal code. Only USA ZIP codes are currently supported, entered as a
182
+ # five-digit ZIP or nine-digit ZIP+4.
183
+ postal_code:,
184
+ # Valid state code. Only USA state codes are currently supported, entered in
185
+ # uppercase ISO 3166-2 two-character format.
186
+ state:,
187
+ # Unit or apartment number (if applicable).
188
+ address2: nil
189
+ )
190
+ end
191
+
192
+ sig do
193
+ override.returns(
194
+ {
195
+ address1: String,
196
+ city: String,
197
+ country: String,
198
+ postal_code: String,
199
+ state: String,
200
+ address2: String
201
+ }
202
+ )
203
+ end
204
+ def to_hash
205
+ end
206
+ end
207
+
208
+ # The type of entity to create on the account holder
209
+ module Type
210
+ extend Lithic::Internal::Type::Enum
211
+
212
+ TaggedSymbol =
213
+ T.type_alias do
214
+ T.all(Symbol, Lithic::AccountHolders::EntityCreateParams::Type)
215
+ end
216
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
217
+
218
+ BENEFICIAL_OWNER_INDIVIDUAL =
219
+ T.let(
220
+ :BENEFICIAL_OWNER_INDIVIDUAL,
221
+ Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol
222
+ )
223
+ CONTROL_PERSON =
224
+ T.let(
225
+ :CONTROL_PERSON,
226
+ Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol
227
+ )
228
+
229
+ sig do
230
+ override.returns(
231
+ T::Array[
232
+ Lithic::AccountHolders::EntityCreateParams::Type::TaggedSymbol
233
+ ]
234
+ )
235
+ end
236
+ def self.values
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
242
+ end