finch-api 0.1.0.pre.alpha.26 → 0.1.0.pre.alpha.28

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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/finch_api/internal/transport/pooled_net_requester.rb +1 -9
  5. data/lib/finch_api/internal/type/base_model.rb +1 -8
  6. data/lib/finch_api/internal/util.rb +1 -1
  7. data/lib/finch_api/models/access_token_create_params.rb +21 -13
  8. data/lib/finch_api/models/account_update_event.rb +28 -84
  9. data/lib/finch_api/models/create_access_token_response.rb +42 -42
  10. data/lib/finch_api/models/hris/benefit_create_params.rb +1 -3
  11. data/lib/finch_api/models/hris/benefits/individual_enroll_many_params.rb +6 -18
  12. data/lib/finch_api/models/hris/company/pay_statement_item/rule_create_params.rb +3 -10
  13. data/lib/finch_api/models/hris/company/pay_statement_item_list_params.rb +1 -3
  14. data/lib/finch_api/models/hris/company_benefit.rb +1 -3
  15. data/lib/finch_api/models/hris/document_list_params.rb +1 -4
  16. data/lib/finch_api/models/hris/employment_retrieve_many_params.rb +1 -3
  17. data/lib/finch_api/models/hris/individual_retrieve_many_params.rb +1 -3
  18. data/lib/finch_api/models/hris/pay_statement.rb +1 -4
  19. data/lib/finch_api/models/hris/pay_statement_retrieve_many_params.rb +1 -3
  20. data/lib/finch_api/models/introspection.rb +180 -137
  21. data/lib/finch_api/models/provider.rb +19 -68
  22. data/lib/finch_api/models/sandbox/connection_create_params.rb +1 -4
  23. data/lib/finch_api/models/sandbox/directory_create_params.rb +1 -4
  24. data/lib/finch_api/models/sandbox/payment_create_params.rb +7 -22
  25. data/lib/finch_api/resources/access_tokens.rb +9 -5
  26. data/lib/finch_api/version.rb +1 -1
  27. data/rbi/finch_api/errors.rbi +2 -2
  28. data/rbi/finch_api/models/access_token_create_params.rbi +17 -15
  29. data/rbi/finch_api/models/create_access_token_response.rbi +54 -51
  30. data/rbi/finch_api/models/introspection.rbi +309 -236
  31. data/rbi/finch_api/resources/access_tokens.rbi +7 -3
  32. data/sig/finch_api/models/access_token_create_params.rbs +7 -11
  33. data/sig/finch_api/models/create_access_token_response.rbs +25 -23
  34. data/sig/finch_api/models/introspection.rbs +139 -117
  35. data/sig/finch_api/resources/access_tokens.rbs +2 -2
  36. metadata +2 -2
@@ -14,18 +14,13 @@ module FinchAPI
14
14
  # Specifies the fields to be applied when the condition is met.
15
15
  #
16
16
  # @return [FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateParams::Attributes, nil]
17
- optional :attributes,
18
- -> {
19
- FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Attributes
20
- }
17
+ optional :attributes, -> { FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Attributes }
21
18
 
22
19
  # @!attribute conditions
23
20
  #
24
21
  # @return [Array<FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateParams::Condition>, nil]
25
22
  optional :conditions,
26
- -> {
27
- FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Condition]
28
- }
23
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Condition] }
29
24
 
30
25
  # @!attribute effective_end_date
31
26
  # Specifies when the rules should stop applying rules based on the date.
@@ -89,9 +84,7 @@ module FinchAPI
89
84
  #
90
85
  # @return [Symbol, FinchAPI::Models::HRIS::Company::PayStatementItem::RuleCreateParams::Condition::Operator, nil]
91
86
  optional :operator,
92
- enum: -> {
93
- FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Condition::Operator
94
- }
87
+ enum: -> { FinchAPI::HRIS::Company::PayStatementItem::RuleCreateParams::Condition::Operator }
95
88
 
96
89
  # @!attribute value
97
90
  # The value of the field to be checked in the rule.
@@ -15,9 +15,7 @@ module FinchAPI
15
15
  #
16
16
  # @return [Array<Symbol, FinchAPI::Models::HRIS::Company::PayStatementItemListParams::Category>, nil]
17
17
  optional :categories,
18
- -> {
19
- FinchAPI::Internal::Type::ArrayOf[enum: FinchAPI::HRIS::Company::PayStatementItemListParams::Category]
20
- }
18
+ -> { FinchAPI::Internal::Type::ArrayOf[enum: FinchAPI::HRIS::Company::PayStatementItemListParams::Category] }
21
19
 
22
20
  # @!attribute end_date
23
21
  # The end date to retrieve pay statement items by via their last seen pay date in
@@ -51,9 +51,7 @@ module FinchAPI
51
51
  #
52
52
  # @return [Array<FinchAPI::Models::HRIS::CompanyBenefit::CompanyContribution::Tier>]
53
53
  required :tiers,
54
- -> {
55
- FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::CompanyBenefit::CompanyContribution::Tier]
56
- }
54
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::CompanyBenefit::CompanyContribution::Tier] }
57
55
 
58
56
  # @!attribute type
59
57
  #
@@ -32,10 +32,7 @@ module FinchAPI
32
32
  # types
33
33
  #
34
34
  # @return [Array<Symbol, FinchAPI::Models::HRIS::DocumentListParams::Type>, nil]
35
- optional :types,
36
- -> {
37
- FinchAPI::Internal::Type::ArrayOf[enum: FinchAPI::HRIS::DocumentListParams::Type]
38
- }
35
+ optional :types, -> { FinchAPI::Internal::Type::ArrayOf[enum: FinchAPI::HRIS::DocumentListParams::Type] }
39
36
 
40
37
  # @!method initialize(individual_ids: nil, limit: nil, offset: nil, types: nil, request_options: {})
41
38
  # Some parameter documentations has been truncated, see
@@ -13,9 +13,7 @@ module FinchAPI
13
13
  #
14
14
  # @return [Array<FinchAPI::Models::HRIS::EmploymentRetrieveManyParams::Request>]
15
15
  required :requests,
16
- -> {
17
- FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::EmploymentRetrieveManyParams::Request]
18
- }
16
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::EmploymentRetrieveManyParams::Request] }
19
17
 
20
18
  # @!method initialize(requests:, request_options: {})
21
19
  # @param requests [Array<FinchAPI::Models::HRIS::EmploymentRetrieveManyParams::Request>] The array of batch requests.
@@ -17,9 +17,7 @@ module FinchAPI
17
17
  #
18
18
  # @return [Array<FinchAPI::Models::HRIS::IndividualRetrieveManyParams::Request>, nil]
19
19
  optional :requests,
20
- -> {
21
- FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::IndividualRetrieveManyParams::Request]
22
- }
20
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::IndividualRetrieveManyParams::Request] }
23
21
 
24
22
  # @!method initialize(options: nil, requests: nil, request_options: {})
25
23
  # @param options [FinchAPI::Models::HRIS::IndividualRetrieveManyParams::Options, nil]
@@ -334,10 +334,7 @@ module FinchAPI
334
334
  # @!attribute metadata
335
335
  #
336
336
  # @return [FinchAPI::Models::HRIS::PayStatement::EmployerContribution::Attributes::Metadata]
337
- required :metadata,
338
- -> {
339
- FinchAPI::HRIS::PayStatement::EmployerContribution::Attributes::Metadata
340
- }
337
+ required :metadata, -> { FinchAPI::HRIS::PayStatement::EmployerContribution::Attributes::Metadata }
341
338
 
342
339
  # @!method initialize(metadata:)
343
340
  # @param metadata [FinchAPI::Models::HRIS::PayStatement::EmployerContribution::Attributes::Metadata]
@@ -13,9 +13,7 @@ module FinchAPI
13
13
  #
14
14
  # @return [Array<FinchAPI::Models::HRIS::PayStatementRetrieveManyParams::Request>]
15
15
  required :requests,
16
- -> {
17
- FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::PayStatementRetrieveManyParams::Request]
18
- }
16
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::HRIS::PayStatementRetrieveManyParams::Request] }
19
17
 
20
18
  # @!method initialize(requests:, request_options: {})
21
19
  # @param requests [Array<FinchAPI::Models::HRIS::PayStatementRetrieveManyParams::Request>] The array of batch requests.
@@ -5,28 +5,13 @@ module FinchAPI
5
5
  # @see FinchAPI::Resources::Account#introspect
6
6
  class Introspection < FinchAPI::Internal::Type::BaseModel
7
7
  # @!attribute id
8
- # The Finch UUID of the token being introspected.
8
+ # The Finch UUID of the token being introspected
9
9
  #
10
10
  # @return [String]
11
11
  required :id, String
12
12
 
13
- # @!attribute account_id
14
- # @deprecated
15
- #
16
- # [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection
17
- # instead of this account ID.
18
- #
19
- # @return [String]
20
- required :account_id, String
21
-
22
- # @!attribute authentication_methods
23
- #
24
- # @return [Array<FinchAPI::Models::Introspection::AuthenticationMethod>]
25
- required :authentication_methods,
26
- -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::Introspection::AuthenticationMethod] }
27
-
28
13
  # @!attribute client_id
29
- # The client ID of the application associated with the `access_token`.
14
+ # The client ID of the application associated with the `access_token`
30
15
  #
31
16
  # @return [String]
32
17
  required :client_id, String
@@ -37,17 +22,8 @@ module FinchAPI
37
22
  # @return [Symbol, FinchAPI::Models::Introspection::ClientType]
38
23
  required :client_type, enum: -> { FinchAPI::Introspection::ClientType }
39
24
 
40
- # @!attribute company_id
41
- # @deprecated
42
- #
43
- # [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection
44
- # instead of this company ID.
45
- #
46
- # @return [String]
47
- required :company_id, String
48
-
49
25
  # @!attribute connection_id
50
- # The Finch UUID of the connection associated with the `access_token`.
26
+ # The Finch UUID of the connection associated with the `access_token`
51
27
  #
52
28
  # @return [String]
53
29
  required :connection_id, String
@@ -66,34 +42,70 @@ module FinchAPI
66
42
  # @return [Symbol, FinchAPI::Models::Introspection::ConnectionType]
67
43
  required :connection_type, enum: -> { FinchAPI::Introspection::ConnectionType }
68
44
 
45
+ # @!attribute products
46
+ # An array of the authorized products associated with the `access_token`.
47
+ #
48
+ # @return [Array<String>]
49
+ required :products, FinchAPI::Internal::Type::ArrayOf[String]
50
+
51
+ # @!attribute provider_id
52
+ # The ID of the provider associated with the `access_token`.
53
+ #
54
+ # @return [String]
55
+ required :provider_id, String
56
+
57
+ # @!attribute account_id
58
+ # @deprecated
59
+ #
60
+ # [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection
61
+ # instead of this account ID
62
+ #
63
+ # @return [String, nil]
64
+ optional :account_id, String
65
+
66
+ # @!attribute authentication_methods
67
+ #
68
+ # @return [Array<FinchAPI::Models::Introspection::AuthenticationMethod>, nil]
69
+ optional :authentication_methods,
70
+ -> { FinchAPI::Internal::Type::ArrayOf[FinchAPI::Introspection::AuthenticationMethod] }
71
+
72
+ # @!attribute company_id
73
+ # @deprecated
74
+ #
75
+ # [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection
76
+ # instead of this company ID
77
+ #
78
+ # @return [String, nil]
79
+ optional :company_id, String
80
+
69
81
  # @!attribute customer_email
70
82
  # The email of your customer you provided to Finch when a connect session was
71
- # created for this connection.
83
+ # created for this connection
72
84
  #
73
85
  # @return [String, nil]
74
- required :customer_email, String, nil?: true
86
+ optional :customer_email, String, nil?: true
75
87
 
76
88
  # @!attribute customer_id
77
89
  # The ID of your customer you provided to Finch when a connect session was created
78
- # for this connection.
90
+ # for this connection
79
91
  #
80
92
  # @return [String, nil]
81
- required :customer_id, String, nil?: true
93
+ optional :customer_id, String, nil?: true
82
94
 
83
95
  # @!attribute customer_name
84
96
  # The name of your customer you provided to Finch when a connect session was
85
- # created for this connection.
97
+ # created for this connection
86
98
  #
87
99
  # @return [String, nil]
88
- required :customer_name, String, nil?: true
100
+ optional :customer_name, String, nil?: true
89
101
 
90
102
  # @!attribute manual
91
103
  # Whether the connection associated with the `access_token` uses the Assisted
92
104
  # Connect Flow. (`true` if using Assisted Connect, `false` if connection is
93
105
  # automated)
94
106
  #
95
- # @return [Boolean]
96
- required :manual, FinchAPI::Internal::Type::Boolean
107
+ # @return [Boolean, nil]
108
+ optional :manual, FinchAPI::Internal::Type::Boolean
97
109
 
98
110
  # @!attribute payroll_provider_id
99
111
  # @deprecated
@@ -101,49 +113,41 @@ module FinchAPI
101
113
  # [DEPRECATED] Use `provider_id` to identify the provider instead of this payroll
102
114
  # provider ID.
103
115
  #
104
- # @return [String]
105
- required :payroll_provider_id, String
106
-
107
- # @!attribute products
108
- # An array of the authorized products associated with the `access_token`.
109
- #
110
- # @return [Array<String>]
111
- required :products, FinchAPI::Internal::Type::ArrayOf[String]
112
-
113
- # @!attribute provider_id
114
- # The ID of the provider associated with the `access_token`.
115
- #
116
- # @return [String]
117
- required :provider_id, String
116
+ # @return [String, nil]
117
+ optional :payroll_provider_id, String
118
118
 
119
119
  # @!attribute username
120
120
  # The account username used for login associated with the `access_token`.
121
121
  #
122
- # @return [String]
123
- required :username, String
122
+ # @return [String, nil]
123
+ optional :username, String, nil?: true
124
124
 
125
- # @!method initialize(id:, account_id:, authentication_methods:, client_id:, client_type:, company_id:, connection_id:, connection_status:, connection_type:, customer_email:, customer_id:, customer_name:, manual:, payroll_provider_id:, products:, provider_id:, username:)
125
+ # @!method initialize(id:, client_id:, client_type:, connection_id:, connection_status:, connection_type:, products:, provider_id:, account_id: nil, authentication_methods: nil, company_id: nil, customer_email: nil, customer_id: nil, customer_name: nil, manual: nil, payroll_provider_id: nil, username: nil)
126
126
  # Some parameter documentations has been truncated, see
127
127
  # {FinchAPI::Models::Introspection} for more details.
128
128
  #
129
- # @param id [String] The Finch UUID of the token being introspected.
130
- #
131
- # @param account_id [String] [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection ins
132
- #
133
- # @param authentication_methods [Array<FinchAPI::Models::Introspection::AuthenticationMethod>]
129
+ # @param id [String] The Finch UUID of the token being introspected
134
130
  #
135
- # @param client_id [String] The client ID of the application associated with the `access_token`.
131
+ # @param client_id [String] The client ID of the application associated with the `access_token`
136
132
  #
137
133
  # @param client_type [Symbol, FinchAPI::Models::Introspection::ClientType] The type of application associated with a token.
138
134
  #
139
- # @param company_id [String] [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection ins
140
- #
141
- # @param connection_id [String] The Finch UUID of the connection associated with the `access_token`.
135
+ # @param connection_id [String] The Finch UUID of the connection associated with the `access_token`
142
136
  #
143
137
  # @param connection_status [FinchAPI::Models::Introspection::ConnectionStatus]
144
138
  #
145
139
  # @param connection_type [Symbol, FinchAPI::Models::Introspection::ConnectionType] The type of the connection associated with the token.
146
140
  #
141
+ # @param products [Array<String>] An array of the authorized products associated with the `access_token`.
142
+ #
143
+ # @param provider_id [String] The ID of the provider associated with the `access_token`.
144
+ #
145
+ # @param account_id [String] [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection ins
146
+ #
147
+ # @param authentication_methods [Array<FinchAPI::Models::Introspection::AuthenticationMethod>]
148
+ #
149
+ # @param company_id [String] [DEPRECATED] Use `connection_id` to associate tokens with a Finch connection ins
150
+ #
147
151
  # @param customer_email [String, nil] The email of your customer you provided to Finch when a connect session was crea
148
152
  #
149
153
  # @param customer_id [String, nil] The ID of your customer you provided to Finch when a connect session was created
@@ -154,70 +158,7 @@ module FinchAPI
154
158
  #
155
159
  # @param payroll_provider_id [String] [DEPRECATED] Use `provider_id` to identify the provider instead of this payroll
156
160
  #
157
- # @param products [Array<String>] An array of the authorized products associated with the `access_token`.
158
- #
159
- # @param provider_id [String] The ID of the provider associated with the `access_token`.
160
- #
161
- # @param username [String] The account username used for login associated with the `access_token`.
162
-
163
- class AuthenticationMethod < FinchAPI::Internal::Type::BaseModel
164
- # @!attribute connection_status
165
- #
166
- # @return [FinchAPI::Models::Introspection::AuthenticationMethod::ConnectionStatus, nil]
167
- optional :connection_status, -> { FinchAPI::Introspection::AuthenticationMethod::ConnectionStatus }
168
-
169
- # @!attribute products
170
- # An array of the authorized products associated with the `access_token`.
171
- #
172
- # @return [Array<String>, nil]
173
- optional :products, FinchAPI::Internal::Type::ArrayOf[String]
174
-
175
- # @!attribute type
176
- # The type of authentication method.
177
- #
178
- # @return [Symbol, FinchAPI::Models::Introspection::AuthenticationMethod::Type, nil]
179
- optional :type, enum: -> { FinchAPI::Introspection::AuthenticationMethod::Type }
180
-
181
- # @!method initialize(connection_status: nil, products: nil, type: nil)
182
- # @param connection_status [FinchAPI::Models::Introspection::AuthenticationMethod::ConnectionStatus]
183
- #
184
- # @param products [Array<String>] An array of the authorized products associated with the `access_token`.
185
- #
186
- # @param type [Symbol, FinchAPI::Models::Introspection::AuthenticationMethod::Type] The type of authentication method.
187
-
188
- # @see FinchAPI::Models::Introspection::AuthenticationMethod#connection_status
189
- class ConnectionStatus < FinchAPI::Internal::Type::BaseModel
190
- # @!attribute message
191
- #
192
- # @return [String, nil]
193
- optional :message, String
194
-
195
- # @!attribute status
196
- #
197
- # @return [Symbol, FinchAPI::Models::ConnectionStatusType, nil]
198
- optional :status, enum: -> { FinchAPI::ConnectionStatusType }
199
-
200
- # @!method initialize(message: nil, status: nil)
201
- # @param message [String]
202
- # @param status [Symbol, FinchAPI::Models::ConnectionStatusType]
203
- end
204
-
205
- # The type of authentication method.
206
- #
207
- # @see FinchAPI::Models::Introspection::AuthenticationMethod#type
208
- module Type
209
- extend FinchAPI::Internal::Type::Enum
210
-
211
- ASSISTED = :assisted
212
- CREDENTIAL = :credential
213
- API_TOKEN = :api_token
214
- API_CREDENTIAL = :api_credential
215
- OAUTH = :oauth
216
-
217
- # @!method self.values
218
- # @return [Array<Symbol>]
219
- end
220
- end
161
+ # @param username [String, nil] The account username used for login associated with the `access_token`.
221
162
 
222
163
  # The type of application associated with a token.
223
164
  #
@@ -225,8 +166,8 @@ module FinchAPI
225
166
  module ClientType
226
167
  extend FinchAPI::Internal::Type::Enum
227
168
 
228
- PRODUCTION = :production
229
169
  DEVELOPMENT = :development
170
+ PRODUCTION = :production
230
171
  SANDBOX = :sandbox
231
172
 
232
173
  # @!method self.values
@@ -235,28 +176,44 @@ module FinchAPI
235
176
 
236
177
  # @see FinchAPI::Models::Introspection#connection_status
237
178
  class ConnectionStatus < FinchAPI::Internal::Type::BaseModel
179
+ # @!attribute status
180
+ #
181
+ # @return [Symbol, FinchAPI::Models::ConnectionStatusType]
182
+ required :status, enum: -> { FinchAPI::ConnectionStatusType }
183
+
238
184
  # @!attribute last_successful_sync
239
- # The datetime when the connection was last successfully synced.
185
+ # The datetime when the connection was last successfully synced
240
186
  #
241
- # @return [Time, nil]
242
- optional :last_successful_sync, Time
187
+ # @return [Time, String, nil]
188
+ optional :last_successful_sync,
189
+ union: -> { FinchAPI::Introspection::ConnectionStatus::LastSuccessfulSync },
190
+ nil?: true
243
191
 
244
192
  # @!attribute message
245
193
  #
246
194
  # @return [String, nil]
247
195
  optional :message, String
248
196
 
249
- # @!attribute status
197
+ # @!method initialize(status:, last_successful_sync: nil, message: nil)
198
+ # @param status [Symbol, FinchAPI::Models::ConnectionStatusType]
250
199
  #
251
- # @return [Symbol, FinchAPI::Models::ConnectionStatusType, nil]
252
- optional :status, enum: -> { FinchAPI::ConnectionStatusType }
253
-
254
- # @!method initialize(last_successful_sync: nil, message: nil, status: nil)
255
- # @param last_successful_sync [Time] The datetime when the connection was last successfully synced.
200
+ # @param last_successful_sync [Time, String, nil] The datetime when the connection was last successfully synced
256
201
  #
257
202
  # @param message [String]
203
+
204
+ # The datetime when the connection was last successfully synced
258
205
  #
259
- # @param status [Symbol, FinchAPI::Models::ConnectionStatusType]
206
+ # @see FinchAPI::Models::Introspection::ConnectionStatus#last_successful_sync
207
+ module LastSuccessfulSync
208
+ extend FinchAPI::Internal::Type::Union
209
+
210
+ variant Time
211
+
212
+ variant String
213
+
214
+ # @!method self.variants
215
+ # @return [Array(Time, String)]
216
+ end
260
217
  end
261
218
 
262
219
  # The type of the connection associated with the token.
@@ -268,12 +225,98 @@ module FinchAPI
268
225
  module ConnectionType
269
226
  extend FinchAPI::Internal::Type::Enum
270
227
 
271
- PROVIDER = :provider
272
228
  FINCH = :finch
229
+ PROVIDER = :provider
273
230
 
274
231
  # @!method self.values
275
232
  # @return [Array<Symbol>]
276
233
  end
234
+
235
+ class AuthenticationMethod < FinchAPI::Internal::Type::BaseModel
236
+ # @!attribute type
237
+ # The type of authentication method
238
+ #
239
+ # @return [Symbol, FinchAPI::Models::Introspection::AuthenticationMethod::Type]
240
+ required :type, enum: -> { FinchAPI::Introspection::AuthenticationMethod::Type }
241
+
242
+ # @!attribute connection_status
243
+ #
244
+ # @return [FinchAPI::Models::Introspection::AuthenticationMethod::ConnectionStatus, nil]
245
+ optional :connection_status, -> { FinchAPI::Introspection::AuthenticationMethod::ConnectionStatus }
246
+
247
+ # @!attribute products
248
+ # An array of the authorized products associated with the `access_token`
249
+ #
250
+ # @return [Array<String>, nil]
251
+ optional :products, FinchAPI::Internal::Type::ArrayOf[String]
252
+
253
+ # @!method initialize(type:, connection_status: nil, products: nil)
254
+ # @param type [Symbol, FinchAPI::Models::Introspection::AuthenticationMethod::Type] The type of authentication method
255
+ #
256
+ # @param connection_status [FinchAPI::Models::Introspection::AuthenticationMethod::ConnectionStatus]
257
+ #
258
+ # @param products [Array<String>] An array of the authorized products associated with the `access_token`
259
+
260
+ # The type of authentication method
261
+ #
262
+ # @see FinchAPI::Models::Introspection::AuthenticationMethod#type
263
+ module Type
264
+ extend FinchAPI::Internal::Type::Enum
265
+
266
+ ASSISTED = :assisted
267
+ CREDENTIAL = :credential
268
+ API_TOKEN = :api_token
269
+ API_CREDENTIAL = :api_credential
270
+ OAUTH = :oauth
271
+
272
+ # @!method self.values
273
+ # @return [Array<Symbol>]
274
+ end
275
+
276
+ # @see FinchAPI::Models::Introspection::AuthenticationMethod#connection_status
277
+ class ConnectionStatus < FinchAPI::Internal::Type::BaseModel
278
+ # @!attribute status
279
+ #
280
+ # @return [Symbol, FinchAPI::Models::ConnectionStatusType]
281
+ required :status, enum: -> { FinchAPI::ConnectionStatusType }
282
+
283
+ # @!attribute last_successful_sync
284
+ # The datetime when the connection was last successfully synced
285
+ #
286
+ # @return [Time, String, nil]
287
+ optional :last_successful_sync,
288
+ union: -> {
289
+ FinchAPI::Introspection::AuthenticationMethod::ConnectionStatus::LastSuccessfulSync
290
+ },
291
+ nil?: true
292
+
293
+ # @!attribute message
294
+ #
295
+ # @return [String, nil]
296
+ optional :message, String
297
+
298
+ # @!method initialize(status:, last_successful_sync: nil, message: nil)
299
+ # @param status [Symbol, FinchAPI::Models::ConnectionStatusType]
300
+ #
301
+ # @param last_successful_sync [Time, String, nil] The datetime when the connection was last successfully synced
302
+ #
303
+ # @param message [String]
304
+
305
+ # The datetime when the connection was last successfully synced
306
+ #
307
+ # @see FinchAPI::Models::Introspection::AuthenticationMethod::ConnectionStatus#last_successful_sync
308
+ module LastSuccessfulSync
309
+ extend FinchAPI::Internal::Type::Union
310
+
311
+ variant Time
312
+
313
+ variant String
314
+
315
+ # @!method self.variants
316
+ # @return [Array(Time, String)]
317
+ end
318
+ end
319
+ end
277
320
  end
278
321
  end
279
322
  end