seam 2.142.0 → 2.145.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +11 -7
  4. data/lib/seam/base_resource.rb +24 -3
  5. data/lib/seam/resources/access_code.rb +682 -43
  6. data/lib/seam/resources/access_grant.rb +189 -25
  7. data/lib/seam/resources/access_method.rb +105 -3
  8. data/lib/seam/resources/acs_access_group.rb +52 -0
  9. data/lib/seam/resources/acs_credential.rb +153 -6
  10. data/lib/seam/resources/acs_encoder.rb +2 -0
  11. data/lib/seam/resources/acs_entrance.rb +105 -0
  12. data/lib/seam/resources/acs_system.rb +278 -6
  13. data/lib/seam/resources/acs_user.rb +201 -0
  14. data/lib/seam/resources/action_attempt.rb +1457 -279
  15. data/lib/seam/resources/connect_webview.rb +15 -1
  16. data/lib/seam/resources/connected_account.rb +285 -41
  17. data/lib/seam/resources/device.rb +929 -14
  18. data/lib/seam/resources/device_provider.rb +74 -0
  19. data/lib/seam/resources/event.rb +5205 -316
  20. data/lib/seam/resources/phone.rb +4 -1
  21. data/lib/seam/resources/unmanaged_access_code.rb +677 -43
  22. data/lib/seam/resources/unmanaged_access_grant.rb +189 -25
  23. data/lib/seam/resources/unmanaged_access_method.rb +105 -3
  24. data/lib/seam/resources/unmanaged_device.rb +827 -14
  25. data/lib/seam/resources/unmanaged_user_identity.rb +67 -0
  26. data/lib/seam/resources/user_identity.rb +67 -0
  27. data/lib/seam/resources/workspace.rb +3 -0
  28. data/lib/seam/routes/access_codes.rb +1 -1
  29. data/lib/seam/routes/access_grants.rb +2 -2
  30. data/lib/seam/routes/access_methods.rb +1 -1
  31. data/lib/seam/routes/acs_encoders.rb +1 -1
  32. data/lib/seam/routes/acs_entrances.rb +2 -2
  33. data/lib/seam/routes/action_attempts.rb +1 -1
  34. data/lib/seam/routes/connect_webviews.rb +3 -3
  35. data/lib/seam/routes/connected_accounts.rb +3 -3
  36. data/lib/seam/routes/customers.rb +1 -1
  37. data/lib/seam/routes/devices.rb +3 -3
  38. data/lib/seam/routes/devices_unmanaged.rb +2 -2
  39. data/lib/seam/routes/events.rb +1 -1
  40. data/lib/seam/routes/locks.rb +1 -1
  41. data/lib/seam/routes/noise_sensors.rb +1 -1
  42. data/lib/seam/routes/spaces.rb +3 -3
  43. data/lib/seam/routes/thermostats.rb +1 -1
  44. data/lib/seam/routes/user_identities.rb +1 -1
  45. data/lib/seam/version.rb +1 -1
  46. data/lib/seam/webhook.rb +5 -2
  47. metadata +1 -1
@@ -53,6 +53,9 @@ module Seam
53
53
  attr_accessor :auto_join
54
54
  # Card function type in the Visionline access system.
55
55
  # @return [String, nil]
56
+ # Known values:
57
+ # - `guest`
58
+ # - `staff`
56
59
  attr_accessor :card_function_type
57
60
  # ID of the card in the Visionline access system.
58
61
  # @return [String, nil]
@@ -74,22 +77,146 @@ module Seam
74
77
  attr_accessor :joiner_acs_credential_ids
75
78
  end
76
79
 
80
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
77
81
  class Warnings < BaseResource
82
+ # Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is waiting to be issued.
83
+ class WaitingToBeIssued < Warnings
84
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
85
+ # @return [String]
86
+ attr_accessor :message
87
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
88
+ # @return [String]
89
+ # Known values:
90
+ # - `waiting_to_be_issued`
91
+ attr_accessor :warning_code
92
+ # Date and time at which Seam created the warning.
93
+ # @return [Time]
94
+ date_accessor :created_at
95
+ end
96
+
97
+ # Indicates that the schedule of one of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials)'s children was modified externally.
98
+ class ScheduleExternallyModified < Warnings
99
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
100
+ # @return [String]
101
+ attr_accessor :message
102
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
103
+ # @return [String]
104
+ # Known values:
105
+ # - `schedule_externally_modified`
106
+ attr_accessor :warning_code
107
+ # Date and time at which Seam created the warning.
108
+ # @return [Time]
109
+ date_accessor :created_at
110
+ end
111
+
112
+ # Indicates that the schedule of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was modified to avoid creating a credential with a start date in the past.
113
+ class ScheduleModified < Warnings
114
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
115
+ # @return [String]
116
+ attr_accessor :message
117
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
118
+ # @return [String]
119
+ # Known values:
120
+ # - `schedule_modified`
121
+ attr_accessor :warning_code
122
+ # Date and time at which Seam created the warning.
123
+ # @return [Time]
124
+ date_accessor :created_at
125
+ end
126
+
127
+ # Indicates that the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) is being deleted.
128
+ class BeingDeleted < Warnings
129
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
130
+ # @return [String]
131
+ attr_accessor :message
132
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
133
+ # @return [String]
134
+ # Known values:
135
+ # - `being_deleted`
136
+ attr_accessor :warning_code
137
+ # Date and time at which Seam created the warning.
138
+ # @return [Time]
139
+ date_accessor :created_at
140
+ end
141
+
142
+ # An unknown issue occurred while syncing the state of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) with the provider. This issue may affect the proper functioning of the credential.
143
+ class UnknownIssueWithAcsCredential < Warnings
144
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
145
+ # @return [String]
146
+ attr_accessor :message
147
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
148
+ # @return [String]
149
+ # Known values:
150
+ # - `unknown_issue_with_acs_credential`
151
+ attr_accessor :warning_code
152
+ # Date and time at which Seam created the warning.
153
+ # @return [Time]
154
+ date_accessor :created_at
155
+ end
156
+
157
+ # Access permissions for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) have changed. [Reissue](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners/creating-and-encoding-card-based-credentials) (re-encode) the credential. This issue may affect the proper functioning of the credential.
158
+ class NeedsToBeReissued < Warnings
159
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
160
+ # @return [String]
161
+ attr_accessor :message
162
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
163
+ # @return [String]
164
+ # Known values:
165
+ # - `needs_to_be_reissued`
166
+ attr_accessor :warning_code
167
+ # Date and time at which Seam created the warning.
168
+ # @return [Time]
169
+ date_accessor :created_at
170
+ end
171
+
172
+ # Indicates that the requested PIN code could not be used, so the access system assigned a different code. Give the guest the assigned code.
173
+ class RequestedCodeUnavailable < Warnings
174
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
175
+ # @return [String]
176
+ attr_accessor :message
177
+ # The PIN code that was assigned instead.
178
+ # @return [String]
179
+ attr_accessor :new_code
180
+ # The originally requested PIN code that could not be used.
181
+ # @return [String]
182
+ attr_accessor :original_code
183
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
184
+ # @return [String]
185
+ # Known values:
186
+ # - `requested_code_unavailable`
187
+ attr_accessor :warning_code
188
+ # Date and time at which Seam created the warning.
189
+ # @return [Time]
190
+ date_accessor :created_at
191
+ end
192
+
78
193
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
79
194
  # @return [String]
80
195
  attr_accessor :message
81
- # The PIN code that was assigned instead.
82
- # @return [String]
83
- attr_accessor :new_code
84
- # The originally requested PIN code that could not be used.
85
- # @return [String]
86
- attr_accessor :original_code
87
196
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
88
197
  # @return [String]
198
+ # Known values:
199
+ # - `waiting_to_be_issued`
200
+ # - `schedule_externally_modified`
201
+ # - `schedule_modified`
202
+ # - `being_deleted`
203
+ # - `unknown_issue_with_acs_credential`
204
+ # - `needs_to_be_reissued`
205
+ # - `requested_code_unavailable`
89
206
  attr_accessor :warning_code
90
207
  # Date and time at which Seam created the warning.
91
208
  # @return [Time]
92
209
  date_accessor :created_at
210
+
211
+ discriminated_by :warning_code, {
212
+ "waiting_to_be_issued" => WaitingToBeIssued,
213
+ "schedule_externally_modified" => ScheduleExternallyModified,
214
+ "schedule_modified" => ScheduleModified,
215
+ "being_deleted" => BeingDeleted,
216
+ "unknown_issue_with_acs_credential" => UnknownIssueWithAcsCredential,
217
+ "needs_to_be_reissued" => NeedsToBeReissued,
218
+ "requested_code_unavailable" => RequestedCodeUnavailable
219
+ }.freeze
93
220
  end
94
221
 
95
222
  # Akiles-specific metadata for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
@@ -109,6 +236,11 @@ module Seam
109
236
  resource_list_accessor :warnings, Warnings
110
237
  # Access method for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials). Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
111
238
  # @return [String]
239
+ # Known values:
240
+ # - `code`
241
+ # - `card`
242
+ # - `mobile_key`
243
+ # - `cloud_key`
112
244
  attr_accessor :access_method
113
245
  # ID of the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
114
246
  # @return [String]
@@ -139,6 +271,21 @@ module Seam
139
271
  attr_accessor :ends_at
140
272
  # Brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type. Supported values: `pti_card`, `brivo_credential`, `hid_credential`, `visionline_card`.
141
273
  # @return [String, nil]
274
+ # Known values:
275
+ # - `pti_card`
276
+ # - `brivo_credential`
277
+ # - `hid_credential`
278
+ # - `visionline_card`
279
+ # - `salto_ks_credential`
280
+ # - `assa_abloy_vostio_key`
281
+ # - `salto_space_key`
282
+ # - `latch_access`
283
+ # - `dormakaba_ambiance_credential`
284
+ # - `hotek_card`
285
+ # - `salto_ks_tag`
286
+ # - `avigilon_alta_credential`
287
+ # - `kisi_credential`
288
+ # - `akiles_credential`
142
289
  attr_accessor :external_type
143
290
  # Display name that corresponds to the brand-specific terminology for the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) type.
144
291
  # @return [String, nil]
@@ -20,6 +20,8 @@ module Seam
20
20
  class Errors < BaseResource
21
21
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
22
22
  # @return [String]
23
+ # Known values:
24
+ # - `acs_encoder_removed`
23
25
  attr_accessor :error_code
24
26
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
25
27
  # @return [String]
@@ -39,6 +39,11 @@ module Seam
39
39
  attr_accessor :door_number
40
40
  # Type of the door in the Vostio access system.
41
41
  # @return [String, nil]
42
+ # Known values:
43
+ # - `CommonDoor`
44
+ # - `EntranceDoor`
45
+ # - `GuestDoor`
46
+ # - `Elevator`
42
47
  attr_accessor :door_type
43
48
  # PMS ID of the door in the Vostio access system.
44
49
  # @return [String, nil]
@@ -190,6 +195,10 @@ module Seam
190
195
  attr_accessor :visionline_door_profile_id
191
196
  # Door profile type in the Visionline access system.
192
197
  # @return [String, nil]
198
+ # Known values:
199
+ # - `BLE`
200
+ # - `commonDoor`
201
+ # - `touch`
193
202
  attr_accessor :visionline_door_profile_type
194
203
  end
195
204
 
@@ -198,22 +207,118 @@ module Seam
198
207
  resource_list_accessor :profiles, Profiles
199
208
  # Category of the door in the Visionline access system.
200
209
  # @return [String, nil]
210
+ # Known values:
211
+ # - `entrance`
212
+ # - `guest`
213
+ # - `elevator reader`
214
+ # - `common`
215
+ # - `common (PMS)`
201
216
  attr_accessor :door_category
202
217
  # Name of the door in the Visionline access system.
203
218
  # @return [String, nil]
204
219
  attr_accessor :door_name
205
220
  end
206
221
 
222
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
207
223
  class Warnings < BaseResource
224
+ # Indicates that a change in the reported device model has been detected for this Salto KS entrance, which may occur after an IQ hub reset. Access code support may be affected. See https://help.getseam.com/articles/5098842588-salto-ks-lock-loses-access-code-support for troubleshooting steps.
225
+ class SaltoKsEntranceAccessCodeSupportRemoved < Warnings
226
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
227
+ # @return [String]
228
+ attr_accessor :message
229
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
230
+ # @return [String]
231
+ # Known values:
232
+ # - `salto_ks_entrance_access_code_support_removed`
233
+ attr_accessor :warning_code
234
+ # Date and time at which Seam created the warning.
235
+ # @return [Time]
236
+ date_accessor :created_at
237
+ end
238
+
239
+ # Indicates that this entrance shares a zone with other entrances in Avigilon Alta and cannot be added to an access group individually.
240
+ class EntranceSharesZone < Warnings
241
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
242
+ # @return [String]
243
+ attr_accessor :message
244
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
245
+ # @return [String]
246
+ # Known values:
247
+ # - `entrance_shares_zone`
248
+ attr_accessor :warning_code
249
+ # Date and time at which Seam created the warning.
250
+ # @return [Time]
251
+ date_accessor :created_at
252
+ end
253
+
254
+ # Indicates that this entrance requires additional configuration in the access control system before Seam can fully manage it.
255
+ class EntranceSetupRequired < Warnings
256
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
257
+ # @return [String]
258
+ attr_accessor :message
259
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
260
+ # @return [String]
261
+ # Known values:
262
+ # - `entrance_setup_required`
263
+ attr_accessor :warning_code
264
+ # Date and time at which Seam created the warning.
265
+ # @return [Time]
266
+ date_accessor :created_at
267
+ end
268
+
269
+ # Indicates that this entrance is in privacy mode. When privacy mode is enabled, access codes, mobile keys, and remote unlocks will not work unless the user has admin access.
270
+ class SaltoKsPrivacyMode < Warnings
271
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
272
+ # @return [String]
273
+ attr_accessor :message
274
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
275
+ # @return [String]
276
+ # Known values:
277
+ # - `salto_ks_privacy_mode`
278
+ attr_accessor :warning_code
279
+ # Date and time at which Seam created the warning.
280
+ # @return [Time]
281
+ date_accessor :created_at
282
+ end
283
+
284
+ # Indicates that this entrance is in privacy mode. When privacy mode is enabled, access codes, mobile keys, and remote unlocks will not work unless the user has admin access.
285
+ class PrivacyMode < Warnings
286
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
287
+ # @return [String]
288
+ attr_accessor :message
289
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
290
+ # @return [String]
291
+ # Known values:
292
+ # - `privacy_mode`
293
+ attr_accessor :warning_code
294
+ # Date and time at which Seam created the warning.
295
+ # @return [Time]
296
+ date_accessor :created_at
297
+ end
298
+
208
299
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
209
300
  # @return [String]
210
301
  attr_accessor :message
211
302
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
212
303
  # @return [String]
304
+ # Known values:
305
+ # - `salto_ks_entrance_access_code_support_removed`
306
+ # - `entrance_shares_zone`
307
+ # - `entrance_setup_required`
308
+ # - `salto_ks_privacy_mode`
309
+ # - `privacy_mode`
213
310
  attr_accessor :warning_code
214
311
  # Date and time at which Seam created the warning.
215
312
  # @return [Time]
216
313
  date_accessor :created_at
314
+
315
+ discriminated_by :warning_code, {
316
+ "salto_ks_entrance_access_code_support_removed" => SaltoKsEntranceAccessCodeSupportRemoved,
317
+ "entrance_shares_zone" => EntranceSharesZone,
318
+ "entrance_setup_required" => EntranceSetupRequired,
319
+ "salto_ks_privacy_mode" => SaltoKsPrivacyMode,
320
+ "privacy_mode" => PrivacyMode
321
+ }.freeze
217
322
  end
218
323
 
219
324
  # Akiles-specific metadata associated with the [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).
@@ -8,19 +8,182 @@ module Seam
8
8
  #
9
9
  # For details about the resources associated with an access control system, see the [access control systems namespace](https://docs.seam.co/api/acs).
10
10
  class AcsSystem < BaseResource
11
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
11
12
  class Errors < BaseResource
13
+ # Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
14
+ # This error might also occur if Seam Bridge is connected to the wrong [workspace](https://docs.seam.co/core-concepts/workspaces).
15
+ # See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).
16
+ class SeamBridgeDisconnected < Errors
17
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
18
+ # @return [String]
19
+ # Known values:
20
+ # - `seam_bridge_disconnected`
21
+ attr_accessor :error_code
22
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
23
+ # @return [String]
24
+ attr_accessor :message
25
+ # Date and time at which Seam created the error.
26
+ # @return [Time]
27
+ date_accessor :created_at
28
+ end
29
+
30
+ # Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
31
+ # See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).
32
+ class BridgeDisconnected < Errors
33
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
34
+ # @return [String]
35
+ # Known values:
36
+ # - `bridge_disconnected`
37
+ attr_accessor :error_code
38
+ # Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
39
+ # @return [Boolean, nil]
40
+ attr_accessor :is_bridge_error
41
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
42
+ # @return [String]
43
+ attr_accessor :message
44
+ # Date and time at which Seam created the error.
45
+ # @return [Time]
46
+ date_accessor :created_at
47
+ end
48
+
49
+ # Indicates that [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) is functioning correctly and the Seam API can communicate with Seam Bridge, but the Seam API cannot connect to the on-premises [Visionline access control system](https://docs.seam.co/device-and-system-integration-guides/assa-abloy-visionline-access-control-system).
50
+ # For example, the IP address of the on-premises access control system may be set incorrectly within the Seam [workspace](https://docs.seam.co/core-concepts/workspaces).
51
+ # See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-visionline_instance_unreachable).
52
+ class VisionlineInstanceUnreachable < Errors
53
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
54
+ # @return [String]
55
+ # Known values:
56
+ # - `visionline_instance_unreachable`
57
+ attr_accessor :error_code
58
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
59
+ # @return [String]
60
+ attr_accessor :message
61
+ # Date and time at which Seam created the error.
62
+ # @return [Time]
63
+ date_accessor :created_at
64
+ end
65
+
66
+ # Indicates that the maximum number of users allowed for the site has been reached. This means that new access codes cannot be created. Contact Salto support to increase the user limit.
67
+ class SaltoKsSubscriptionLimitExceeded < Errors
68
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
69
+ # @return [String]
70
+ # Known values:
71
+ # - `salto_ks_subscription_limit_exceeded`
72
+ attr_accessor :error_code
73
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
74
+ # @return [String]
75
+ attr_accessor :message
76
+ # Date and time at which Seam created the error.
77
+ # @return [Time]
78
+ date_accessor :created_at
79
+ end
80
+
81
+ # Indicates that Seam's integration user does not have sufficient permissions on the provider's system backing this [access control system](https://docs.seam.co/low-level-apis/access-systems). Access cannot be managed until permissions are restored. See the error message for specifics, then either reauthorize the connected account in Seam or grant the integration user the required permissions in the provider's system.
82
+ class InsufficientPermissions < Errors
83
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
84
+ # @return [String]
85
+ # Known values:
86
+ # - `insufficient_permissions`
87
+ attr_accessor :error_code
88
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
89
+ # @return [String]
90
+ attr_accessor :message
91
+ # Date and time at which Seam created the error.
92
+ # @return [Time]
93
+ date_accessor :created_at
94
+ end
95
+
96
+ # Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has been disconnected. See [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system) to resolve the issue.
97
+ class AcsSystemDisconnected < Errors
98
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
99
+ # @return [String]
100
+ # Known values:
101
+ # - `acs_system_disconnected`
102
+ attr_accessor :error_code
103
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
104
+ # @return [String]
105
+ attr_accessor :message
106
+ # Date and time at which Seam created the error.
107
+ # @return [Time]
108
+ date_accessor :created_at
109
+ end
110
+
111
+ # Indicates that the login credentials are invalid. Reconnect the account using a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) to restore access.
112
+ class AccountDisconnected < Errors
113
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
114
+ # @return [String]
115
+ # Known values:
116
+ # - `account_disconnected`
117
+ attr_accessor :error_code
118
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
119
+ # @return [String]
120
+ attr_accessor :message
121
+ # Date and time at which Seam created the error.
122
+ # @return [Time]
123
+ date_accessor :created_at
124
+ end
125
+
126
+ # Indicates that the [access control system](https://docs.seam.co/low-level-apis/access-systems) has lost its Salto KS certification. Contact [support](mailto:support@seam.co) to regain access.
127
+ class SaltoKsCertificationExpired < Errors
128
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
129
+ # @return [String]
130
+ # Known values:
131
+ # - `salto_ks_certification_expired`
132
+ attr_accessor :error_code
133
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
134
+ # @return [String]
135
+ attr_accessor :message
136
+ # Date and time at which Seam created the error.
137
+ # @return [Time]
138
+ date_accessor :created_at
139
+ end
140
+
141
+ # Indicates that the access control system provider's service is temporarily unavailable. Seam will automatically retry and reconnect when the service becomes available again.
142
+ class ProviderServiceUnavailable < Errors
143
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
144
+ # @return [String]
145
+ # Known values:
146
+ # - `provider_service_unavailable`
147
+ attr_accessor :error_code
148
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
149
+ # @return [String]
150
+ attr_accessor :message
151
+ # Date and time at which Seam created the error.
152
+ # @return [Time]
153
+ date_accessor :created_at
154
+ end
155
+
12
156
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
13
157
  # @return [String]
158
+ # Known values:
159
+ # - `seam_bridge_disconnected`
160
+ # - `bridge_disconnected`
161
+ # - `visionline_instance_unreachable`
162
+ # - `salto_ks_subscription_limit_exceeded`
163
+ # - `insufficient_permissions`
164
+ # - `acs_system_disconnected`
165
+ # - `account_disconnected`
166
+ # - `salto_ks_certification_expired`
167
+ # - `provider_service_unavailable`
14
168
  attr_accessor :error_code
15
- # Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
16
- # @return [Boolean, nil]
17
- attr_accessor :is_bridge_error
18
169
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
19
170
  # @return [String]
20
171
  attr_accessor :message
21
172
  # Date and time at which Seam created the error.
22
173
  # @return [Time]
23
174
  date_accessor :created_at
175
+
176
+ discriminated_by :error_code, {
177
+ "seam_bridge_disconnected" => SeamBridgeDisconnected,
178
+ "bridge_disconnected" => BridgeDisconnected,
179
+ "visionline_instance_unreachable" => VisionlineInstanceUnreachable,
180
+ "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
181
+ "insufficient_permissions" => InsufficientPermissions,
182
+ "acs_system_disconnected" => AcsSystemDisconnected,
183
+ "account_disconnected" => AccountDisconnected,
184
+ "salto_ks_certification_expired" => SaltoKsCertificationExpired,
185
+ "provider_service_unavailable" => ProviderServiceUnavailable
186
+ }.freeze
24
187
  end
25
188
 
26
189
  class Location < BaseResource
@@ -41,19 +204,92 @@ module Seam
41
204
  attr_accessor :system_id
42
205
  end
43
206
 
207
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
44
208
  class Warnings < BaseResource
209
+ # Indicates that the Salto KS site has exceeded 80% of the maximum number of allowed users. Increase your subscription limit or delete some users from your site to rectify the issue.
210
+ class SaltoKsSubscriptionLimitAlmostReached < Warnings
211
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
212
+ # @return [String]
213
+ attr_accessor :message
214
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
215
+ # @return [String]
216
+ # Known values:
217
+ # - `salto_ks_subscription_limit_almost_reached`
218
+ attr_accessor :warning_code
219
+ # Date and time at which Seam created the warning.
220
+ # @return [Time]
221
+ date_accessor :created_at
222
+ end
223
+
224
+ # Indicates the [access control system](https://docs.seam.co/low-level-apis/access-systems) time zone could not be determined because the reported physical location does not match the time zone configured on the physical [ACS entrances](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).
225
+ class TimeZoneDoesNotMatchLocation < Warnings
226
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
227
+ # @return [String]
228
+ attr_accessor :message
229
+ # @return [Array<String>]
230
+ # @deprecated this field is deprecated.
231
+ attr_accessor :misconfigured_acs_entrance_ids
232
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
233
+ # @return [String]
234
+ # Known values:
235
+ # - `time_zone_does_not_match_location`
236
+ attr_accessor :warning_code
237
+ # Date and time at which Seam created the warning.
238
+ # @return [Time]
239
+ date_accessor :created_at
240
+ end
241
+
242
+ # Indicates that the access control system requires additional setup before it can be fully operational. Follow the instructions in the warning message to complete the setup.
243
+ class SetupRequired < Warnings
244
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
245
+ # @return [String]
246
+ attr_accessor :message
247
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
248
+ # @return [String]
249
+ # Known values:
250
+ # - `setup_required`
251
+ attr_accessor :warning_code
252
+ # Date and time at which Seam created the warning.
253
+ # @return [Time]
254
+ date_accessor :created_at
255
+ end
256
+
257
+ # Indicates that Seam encountered an unexpected error while syncing this [access control system](https://docs.seam.co/low-level-apis/access-systems), so its users, credentials, and access groups may be out of date. Seam retries on every sync cycle and clears this warning once a sync succeeds; if it persists, contact [support](mailto:support@seam.co).
258
+ class UnknownIssueWithAcsSystem < Warnings
259
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
260
+ # @return [String]
261
+ attr_accessor :message
262
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
263
+ # @return [String]
264
+ # Known values:
265
+ # - `unknown_issue_with_acs_system`
266
+ attr_accessor :warning_code
267
+ # Date and time at which Seam created the warning.
268
+ # @return [Time]
269
+ date_accessor :created_at
270
+ end
271
+
45
272
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
46
273
  # @return [String]
47
274
  attr_accessor :message
48
- # @return [Array<String>]
49
- # @deprecated this field is deprecated.
50
- attr_accessor :misconfigured_acs_entrance_ids
51
275
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
52
276
  # @return [String]
277
+ # Known values:
278
+ # - `salto_ks_subscription_limit_almost_reached`
279
+ # - `time_zone_does_not_match_location`
280
+ # - `setup_required`
281
+ # - `unknown_issue_with_acs_system`
53
282
  attr_accessor :warning_code
54
283
  # Date and time at which Seam created the warning.
55
284
  # @return [Time]
56
285
  date_accessor :created_at
286
+
287
+ discriminated_by :warning_code, {
288
+ "salto_ks_subscription_limit_almost_reached" => SaltoKsSubscriptionLimitAlmostReached,
289
+ "time_zone_does_not_match_location" => TimeZoneDoesNotMatchLocation,
290
+ "setup_required" => SetupRequired,
291
+ "unknown_issue_with_acs_system" => UnknownIssueWithAcsSystem
292
+ }.freeze
57
293
  end
58
294
 
59
295
  # Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems).
@@ -89,6 +325,24 @@ module Seam
89
325
  attr_accessor :default_credential_manager_acs_system_id
90
326
  # Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.
91
327
  # @return [String, nil]
328
+ # Known values:
329
+ # - `pti_site`
330
+ # - `avigilon_alta_org`
331
+ # - `salto_ks_site`
332
+ # - `salto_space_system`
333
+ # - `brivo_account`
334
+ # - `hid_credential_manager_organization`
335
+ # - `visionline_system`
336
+ # - `assa_abloy_credential_service`
337
+ # - `latch_building`
338
+ # - `dormakaba_community_site`
339
+ # - `dormakaba_ambiance_site`
340
+ # - `legic_connect_credential_service`
341
+ # - `assa_abloy_vostio`
342
+ # - `assa_abloy_vostio_credential_service`
343
+ # - `hotek_site`
344
+ # - `kisi_organization`
345
+ # - `akiles_organization`
92
346
  attr_accessor :external_type
93
347
  # Display name that corresponds to the brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.
94
348
  # @return [String, nil]
@@ -106,6 +360,24 @@ module Seam
106
360
  # @return [String]
107
361
  attr_accessor :name
108
362
  # @return [String, nil]
363
+ # Known values:
364
+ # - `pti_site`
365
+ # - `avigilon_alta_org`
366
+ # - `salto_ks_site`
367
+ # - `salto_space_system`
368
+ # - `brivo_account`
369
+ # - `hid_credential_manager_organization`
370
+ # - `visionline_system`
371
+ # - `assa_abloy_credential_service`
372
+ # - `latch_building`
373
+ # - `dormakaba_community_site`
374
+ # - `dormakaba_ambiance_site`
375
+ # - `legic_connect_credential_service`
376
+ # - `assa_abloy_vostio`
377
+ # - `assa_abloy_vostio_credential_service`
378
+ # - `hotek_site`
379
+ # - `kisi_organization`
380
+ # - `akiles_organization`
109
381
  # @deprecated Use `external_type`.
110
382
  attr_accessor :system_type
111
383
  # @return [String, nil]