seam 2.143.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 +14 -0
  16. data/lib/seam/resources/connected_account.rb +284 -40
  17. data/lib/seam/resources/device.rb +928 -13
  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 +3 -0
  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 +826 -13
  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 +1 -1
  35. data/lib/seam/routes/connected_accounts.rb +1 -1
  36. data/lib/seam/routes/customers.rb +1 -1
  37. data/lib/seam/routes/devices.rb +1 -1
  38. data/lib/seam/routes/devices_unmanaged.rb +1 -1
  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
@@ -4,23 +4,316 @@ module Seam
4
4
  module Resources
5
5
  # Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).
6
6
  class UnmanagedDevice < BaseResource
7
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
7
8
  class Errors < BaseResource
9
+ # Indicates that the account is disconnected.
10
+ class AccountDisconnected < Errors
11
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
12
+ # @return [String]
13
+ # Known values:
14
+ # - `account_disconnected`
15
+ attr_accessor :error_code
16
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
17
+ # @return [TrueClass]
18
+ attr_accessor :is_connected_account_error
19
+ # Indicates that the error is not a device error.
20
+ # @return [FalseClass]
21
+ attr_accessor :is_device_error
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 Salto site user limit has been reached.
31
+ class SaltoKsSubscriptionLimitExceeded < Errors
32
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
33
+ # @return [String]
34
+ # Known values:
35
+ # - `salto_ks_subscription_limit_exceeded`
36
+ attr_accessor :error_code
37
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
38
+ # @return [TrueClass]
39
+ attr_accessor :is_connected_account_error
40
+ # Indicates that the error is not a device error.
41
+ # @return [FalseClass]
42
+ attr_accessor :is_device_error
43
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
44
+ # @return [String]
45
+ attr_accessor :message
46
+ # Date and time at which Seam created the error.
47
+ # @return [Time]
48
+ date_accessor :created_at
49
+ end
50
+
51
+ # Indicates that Seam's integration user does not have sufficient permissions on the provider's system to which this device belongs, so Seam cannot manage access codes or unlock the device. 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.
52
+ class InsufficientPermissions < Errors
53
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
54
+ # @return [String]
55
+ # Known values:
56
+ # - `insufficient_permissions`
57
+ attr_accessor :error_code
58
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
59
+ # @return [TrueClass]
60
+ attr_accessor :is_connected_account_error
61
+ # Indicates that the error is not a device error.
62
+ # @return [FalseClass]
63
+ attr_accessor :is_device_error
64
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
65
+ # @return [String]
66
+ attr_accessor :message
67
+ # Date and time at which Seam created the error.
68
+ # @return [Time]
69
+ date_accessor :created_at
70
+ end
71
+
72
+ # Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support.
73
+ class DormakabaSitesDisconnected < Errors
74
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
75
+ # @return [String]
76
+ # Known values:
77
+ # - `dormakaba_sites_disconnected`
78
+ attr_accessor :error_code
79
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
80
+ # @return [TrueClass]
81
+ attr_accessor :is_connected_account_error
82
+ # Indicates that the error is not a device error.
83
+ # @return [FalseClass]
84
+ attr_accessor :is_device_error
85
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
86
+ # @return [String]
87
+ attr_accessor :message
88
+ # Date and time at which Seam created the error.
89
+ # @return [Time]
90
+ date_accessor :created_at
91
+ end
92
+
93
+ # Indicates that the device is offline.
94
+ class DeviceOffline < Errors
95
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
96
+ # @return [String]
97
+ # Known values:
98
+ # - `device_offline`
99
+ attr_accessor :error_code
100
+ # Indicates that the error is a device error.
101
+ # @return [TrueClass]
102
+ attr_accessor :is_device_error
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 device has been removed.
112
+ class DeviceRemoved < Errors
113
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
114
+ # @return [String]
115
+ # Known values:
116
+ # - `device_removed`
117
+ attr_accessor :error_code
118
+ # Indicates that the error is a device error.
119
+ # @return [TrueClass]
120
+ attr_accessor :is_device_error
121
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
122
+ # @return [String]
123
+ attr_accessor :message
124
+ # Date and time at which Seam created the error.
125
+ # @return [Time]
126
+ date_accessor :created_at
127
+ end
128
+
129
+ # Indicates that the hub is disconnected.
130
+ class HubDisconnected < Errors
131
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
132
+ # @return [String]
133
+ # Known values:
134
+ # - `hub_disconnected`
135
+ attr_accessor :error_code
136
+ # Indicates that the error is a device error.
137
+ # @return [TrueClass]
138
+ attr_accessor :is_device_error
139
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
140
+ # @return [String]
141
+ attr_accessor :message
142
+ # Date and time at which Seam created the error.
143
+ # @return [Time]
144
+ date_accessor :created_at
145
+ end
146
+
147
+ # Indicates that the device is disconnected.
148
+ class DeviceDisconnected < Errors
149
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
150
+ # @return [String]
151
+ # Known values:
152
+ # - `device_disconnected`
153
+ attr_accessor :error_code
154
+ # Indicates that the error is a device error.
155
+ # @return [TrueClass]
156
+ attr_accessor :is_device_error
157
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
158
+ # @return [String]
159
+ attr_accessor :message
160
+ # Date and time at which Seam created the error.
161
+ # @return [Time]
162
+ date_accessor :created_at
163
+ end
164
+
165
+ # Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty.
166
+ class EmptyBackupAccessCodePool < Errors
167
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
168
+ # @return [String]
169
+ # Known values:
170
+ # - `empty_backup_access_code_pool`
171
+ attr_accessor :error_code
172
+ # Indicates that the error is a device error.
173
+ # @return [TrueClass]
174
+ attr_accessor :is_device_error
175
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
176
+ # @return [String]
177
+ attr_accessor :message
178
+ # Date and time at which Seam created the error.
179
+ # @return [Time]
180
+ date_accessor :created_at
181
+ end
182
+
183
+ # Indicates that the user is not authorized to use the August lock.
184
+ class AugustLockNotAuthorized < Errors
185
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
186
+ # @return [String]
187
+ # Known values:
188
+ # - `august_lock_not_authorized`
189
+ attr_accessor :error_code
190
+ # Indicates that the error is a device error.
191
+ # @return [TrueClass]
192
+ attr_accessor :is_device_error
193
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
194
+ # @return [String]
195
+ attr_accessor :message
196
+ # Date and time at which Seam created the error.
197
+ # @return [Time]
198
+ date_accessor :created_at
199
+ end
200
+
201
+ # Indicates that device credentials are missing.
202
+ class MissingDeviceCredentials < Errors
203
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
204
+ # @return [String]
205
+ # Known values:
206
+ # - `missing_device_credentials`
207
+ attr_accessor :error_code
208
+ # Indicates that the error is a device error.
209
+ # @return [TrueClass]
210
+ attr_accessor :is_device_error
211
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
212
+ # @return [String]
213
+ attr_accessor :message
214
+ # Date and time at which Seam created the error.
215
+ # @return [Time]
216
+ date_accessor :created_at
217
+ end
218
+
219
+ # Indicates that the auxiliary heat is running.
220
+ class AuxiliaryHeatRunning < Errors
221
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
222
+ # @return [String]
223
+ # Known values:
224
+ # - `auxiliary_heat_running`
225
+ attr_accessor :error_code
226
+ # Indicates that the error is a device error.
227
+ # @return [TrueClass]
228
+ attr_accessor :is_device_error
229
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
230
+ # @return [String]
231
+ attr_accessor :message
232
+ # Date and time at which Seam created the error.
233
+ # @return [Time]
234
+ date_accessor :created_at
235
+ end
236
+
237
+ # Indicates that a subscription is required to connect.
238
+ class SubscriptionRequired < Errors
239
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
240
+ # @return [String]
241
+ # Known values:
242
+ # - `subscription_required`
243
+ attr_accessor :error_code
244
+ # Indicates that the error is a device error.
245
+ # @return [TrueClass]
246
+ attr_accessor :is_device_error
247
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
248
+ # @return [String]
249
+ attr_accessor :message
250
+ # Date and time at which Seam created the error.
251
+ # @return [Time]
252
+ date_accessor :created_at
253
+ end
254
+
255
+ # Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. 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).
256
+ class BridgeDisconnected < Errors
257
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
258
+ # @return [String]
259
+ # Known values:
260
+ # - `bridge_disconnected`
261
+ attr_accessor :error_code
262
+ # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
263
+ # @return [Boolean, nil]
264
+ attr_accessor :is_bridge_error
265
+ # Indicates whether the error is related specifically to the connected account.
266
+ # @return [Boolean, nil]
267
+ attr_accessor :is_connected_account_error
268
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
269
+ # @return [String]
270
+ attr_accessor :message
271
+ # Date and time at which Seam created the error.
272
+ # @return [Time]
273
+ date_accessor :created_at
274
+ end
275
+
8
276
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
9
277
  # @return [String]
278
+ # Known values:
279
+ # - `account_disconnected`
280
+ # - `salto_ks_subscription_limit_exceeded`
281
+ # - `insufficient_permissions`
282
+ # - `dormakaba_sites_disconnected`
283
+ # - `device_offline`
284
+ # - `device_removed`
285
+ # - `hub_disconnected`
286
+ # - `device_disconnected`
287
+ # - `empty_backup_access_code_pool`
288
+ # - `august_lock_not_authorized`
289
+ # - `missing_device_credentials`
290
+ # - `auxiliary_heat_running`
291
+ # - `subscription_required`
292
+ # - `bridge_disconnected`
10
293
  attr_accessor :error_code
11
- # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
12
- # @return [Boolean, nil]
13
- attr_accessor :is_bridge_error
14
- # @return [Boolean, nil]
15
- attr_accessor :is_connected_account_error
16
- # @return [Boolean]
17
- attr_accessor :is_device_error
18
294
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
19
295
  # @return [String]
20
296
  attr_accessor :message
21
297
  # Date and time at which Seam created the error.
22
298
  # @return [Time]
23
299
  date_accessor :created_at
300
+
301
+ discriminated_by :error_code, {
302
+ "account_disconnected" => AccountDisconnected,
303
+ "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
304
+ "insufficient_permissions" => InsufficientPermissions,
305
+ "dormakaba_sites_disconnected" => DormakabaSitesDisconnected,
306
+ "device_offline" => DeviceOffline,
307
+ "device_removed" => DeviceRemoved,
308
+ "hub_disconnected" => HubDisconnected,
309
+ "device_disconnected" => DeviceDisconnected,
310
+ "empty_backup_access_code_pool" => EmptyBackupAccessCodePool,
311
+ "august_lock_not_authorized" => AugustLockNotAuthorized,
312
+ "missing_device_credentials" => MissingDeviceCredentials,
313
+ "auxiliary_heat_running" => AuxiliaryHeatRunning,
314
+ "subscription_required" => SubscriptionRequired,
315
+ "bridge_disconnected" => BridgeDisconnected
316
+ }.freeze
24
317
  end
25
318
 
26
319
  class Location < BaseResource
@@ -60,6 +353,11 @@ module Seam
60
353
  attr_accessor :level
61
354
  # Represents the current status of the battery charge level. Values are `critical`, which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; `low`, which signifies that the battery is under the preferred threshold and should be charged soon; `good`, which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and `full`, which represents a battery that is fully charged, providing the maximum duration of usage.
62
355
  # @return [String]
356
+ # Known values:
357
+ # - `critical`
358
+ # - `low`
359
+ # - `good`
360
+ # - `full`
63
361
  attr_accessor :status
64
362
  end
65
363
 
@@ -125,22 +423,486 @@ module Seam
125
423
  attr_accessor :online_access_codes_enabled
126
424
  end
127
425
 
426
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
128
427
  class Warnings < BaseResource
129
- # Number of active access codes on the device when the warning was set.
130
- # @return [Integer]
131
- attr_accessor :active_access_code_count
132
- # Maximum number of active access codes supported by the device.
133
- # @return [Integer]
134
- attr_accessor :max_active_access_code_count
428
+ # Indicates that the backup access code is unhealthy.
429
+ class PartialBackupAccessCodePool < Warnings
430
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
431
+ # @return [String]
432
+ attr_accessor :message
433
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
434
+ # @return [String]
435
+ # Known values:
436
+ # - `partial_backup_access_code_pool`
437
+ attr_accessor :warning_code
438
+ # Date and time at which Seam created the warning.
439
+ # @return [Time]
440
+ date_accessor :created_at
441
+ end
442
+
443
+ # Indicates that there are too many backup codes.
444
+ class ManyActiveBackupCodes < Warnings
445
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
446
+ # @return [String]
447
+ attr_accessor :message
448
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
449
+ # @return [String]
450
+ # Known values:
451
+ # - `many_active_backup_codes`
452
+ attr_accessor :warning_code
453
+ # Date and time at which Seam created the warning.
454
+ # @return [Time]
455
+ date_accessor :created_at
456
+ end
457
+
458
+ # Indicates that a third-party integration has been detected.
459
+ class ThirdPartyIntegrationDetected < Warnings
460
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
461
+ # @return [String]
462
+ attr_accessor :message
463
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
464
+ # @return [String]
465
+ # Known values:
466
+ # - `third_party_integration_detected`
467
+ attr_accessor :warning_code
468
+ # Date and time at which Seam created the warning.
469
+ # @return [Time]
470
+ date_accessor :created_at
471
+ end
472
+
473
+ # Indicates that the Remote Unlock feature is not enabled in the settings."
474
+ class TtlockLockGatewayUnlockingNotEnabled < Warnings
475
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
476
+ # @return [String]
477
+ attr_accessor :message
478
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
479
+ # @return [String]
480
+ # Known values:
481
+ # - `ttlock_lock_gateway_unlocking_not_enabled`
482
+ attr_accessor :warning_code
483
+ # Date and time at which Seam created the warning.
484
+ # @return [Time]
485
+ date_accessor :created_at
486
+ end
487
+
488
+ # Indicates that the gateway signal is weak.
489
+ class TtlockWeakGatewaySignal < Warnings
490
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
491
+ # @return [String]
492
+ attr_accessor :message
493
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
494
+ # @return [String]
495
+ # Known values:
496
+ # - `ttlock_weak_gateway_signal`
497
+ attr_accessor :warning_code
498
+ # Date and time at which Seam created the warning.
499
+ # @return [Time]
500
+ date_accessor :created_at
501
+ end
502
+
503
+ # Indicates that the device is in power saving mode and may have limited functionality.
504
+ class PowerSavingMode < Warnings
505
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
506
+ # @return [String]
507
+ attr_accessor :message
508
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
509
+ # @return [String]
510
+ # Known values:
511
+ # - `power_saving_mode`
512
+ attr_accessor :warning_code
513
+ # Date and time at which Seam created the warning.
514
+ # @return [Time]
515
+ date_accessor :created_at
516
+ end
517
+
518
+ # Indicates that the temperature threshold has been exceeded.
519
+ class TemperatureThresholdExceeded < Warnings
520
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
521
+ # @return [String]
522
+ attr_accessor :message
523
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
524
+ # @return [String]
525
+ # Known values:
526
+ # - `temperature_threshold_exceeded`
527
+ attr_accessor :warning_code
528
+ # Date and time at which Seam created the warning.
529
+ # @return [Time]
530
+ date_accessor :created_at
531
+ end
532
+
533
+ # Indicates that the device appears to be unresponsive.
534
+ class DeviceCommunicationDegraded < Warnings
535
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
536
+ # @return [String]
537
+ attr_accessor :message
538
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
539
+ # @return [String]
540
+ # Known values:
541
+ # - `device_communication_degraded`
542
+ attr_accessor :warning_code
543
+ # Date and time at which Seam created the warning.
544
+ # @return [Time]
545
+ date_accessor :created_at
546
+ end
547
+
548
+ # Indicates that a scheduled maintenance window has been detected.
549
+ class ScheduledMaintenanceWindow < Warnings
550
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
551
+ # @return [String]
552
+ attr_accessor :message
553
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
554
+ # @return [String]
555
+ # Known values:
556
+ # - `scheduled_maintenance_window`
557
+ attr_accessor :warning_code
558
+ # Date and time at which Seam created the warning.
559
+ # @return [Time]
560
+ date_accessor :created_at
561
+ end
562
+
563
+ # Indicates that the device has a flaky connection.
564
+ class DeviceHasFlakyConnection < Warnings
565
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
566
+ # @return [String]
567
+ attr_accessor :message
568
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
569
+ # @return [String]
570
+ # Known values:
571
+ # - `device_has_flaky_connection`
572
+ attr_accessor :warning_code
573
+ # Date and time at which Seam created the warning.
574
+ # @return [Time]
575
+ date_accessor :created_at
576
+ end
577
+
578
+ # Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors.
579
+ class SaltoKsOfficeMode < Warnings
580
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
581
+ # @return [String]
582
+ attr_accessor :message
583
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
584
+ # @return [String]
585
+ # Known values:
586
+ # - `salto_ks_office_mode`
587
+ attr_accessor :warning_code
588
+ # Date and time at which Seam created the warning.
589
+ # @return [Time]
590
+ date_accessor :created_at
591
+ end
592
+
593
+ # Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors.
594
+ class SaltoKsPrivacyMode < Warnings
595
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
596
+ # @return [String]
597
+ attr_accessor :message
598
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
599
+ # @return [String]
600
+ # Known values:
601
+ # - `salto_ks_privacy_mode`
602
+ attr_accessor :warning_code
603
+ # Date and time at which Seam created the warning.
604
+ # @return [Time]
605
+ date_accessor :created_at
606
+ end
607
+
608
+ # Indicates that the lock is in Privacy Mode. Access codes and remote unlock are blocked until Privacy Mode is disabled.
609
+ class PrivacyMode < Warnings
610
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
611
+ # @return [String]
612
+ attr_accessor :message
613
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
614
+ # @return [String]
615
+ # Known values:
616
+ # - `privacy_mode`
617
+ attr_accessor :warning_code
618
+ # Date and time at which Seam created the warning.
619
+ # @return [Time]
620
+ date_accessor :created_at
621
+ end
622
+
623
+ # 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.
624
+ class SaltoKsSubscriptionLimitAlmostReached < Warnings
625
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
626
+ # @return [String]
627
+ attr_accessor :message
628
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
629
+ # @return [String]
630
+ # Known values:
631
+ # - `salto_ks_subscription_limit_almost_reached`
632
+ attr_accessor :warning_code
633
+ # Date and time at which Seam created the warning.
634
+ # @return [Time]
635
+ date_accessor :created_at
636
+ end
637
+
638
+ # Indicates that a change in the reported device model has been detected for this Salto KS lock, 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.
639
+ class SaltoKsLockAccessCodeSupportRemoved < Warnings
640
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
641
+ # @return [String]
642
+ attr_accessor :message
643
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
644
+ # @return [String]
645
+ # Known values:
646
+ # - `salto_ks_lock_access_code_support_removed`
647
+ attr_accessor :warning_code
648
+ # Date and time at which Seam created the warning.
649
+ # @return [Time]
650
+ date_accessor :created_at
651
+ end
652
+
653
+ # Indicates that an unknown issue occurred while syncing the state of the phone with the provider. This issue may affect the proper functioning of the phone.
654
+ class UnknownIssueWithPhone < Warnings
655
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
656
+ # @return [String]
657
+ attr_accessor :message
658
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
659
+ # @return [String]
660
+ # Known values:
661
+ # - `unknown_issue_with_phone`
662
+ attr_accessor :warning_code
663
+ # Date and time at which Seam created the warning.
664
+ # @return [Time]
665
+ date_accessor :created_at
666
+ end
667
+
668
+ # Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected.
669
+ class LocklyTimeZoneNotConfigured < Warnings
670
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
671
+ # @return [String]
672
+ attr_accessor :message
673
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
674
+ # @return [String]
675
+ # Known values:
676
+ # - `lockly_time_zone_not_configured`
677
+ attr_accessor :warning_code
678
+ # Date and time at which Seam created the warning.
679
+ # @return [Time]
680
+ date_accessor :created_at
681
+ end
682
+
683
+ # Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes.
684
+ class UltraloqTimeZoneUnknown < Warnings
685
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
686
+ # @return [String]
687
+ attr_accessor :message
688
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
689
+ # @return [String]
690
+ # Known values:
691
+ # - `ultraloq_time_zone_unknown`
692
+ attr_accessor :warning_code
693
+ # Date and time at which Seam created the warning.
694
+ # @return [Time]
695
+ date_accessor :created_at
696
+ end
697
+
698
+ # Indicates that Seam does not know the device's time zone. Set a time zone to enable time-bound access codes.
699
+ class TimeZoneUnknown < Warnings
700
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
701
+ # @return [String]
702
+ attr_accessor :message
703
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
704
+ # @return [String]
705
+ # Known values:
706
+ # - `time_zone_unknown`
707
+ attr_accessor :warning_code
708
+ # Date and time at which Seam created the warning.
709
+ # @return [Time]
710
+ date_accessor :created_at
711
+ end
712
+
713
+ # Indicates that the device's configured time zone does not match its hardware UTC offset. Time-bound access codes may activate at the wrong local time.
714
+ class TimeZoneMismatch < Warnings
715
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
716
+ # @return [String]
717
+ attr_accessor :message
718
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
719
+ # @return [String]
720
+ # Known values:
721
+ # - `time_zone_mismatch`
722
+ attr_accessor :warning_code
723
+ # Date and time at which Seam created the warning.
724
+ # @return [Time]
725
+ date_accessor :created_at
726
+ end
727
+
728
+ # Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes.
729
+ class TwoNDeviceMissingTimezone < Warnings
730
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
731
+ # @return [String]
732
+ attr_accessor :message
733
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
734
+ # @return [String]
735
+ # Known values:
736
+ # - `two_n_device_missing_timezone`
737
+ attr_accessor :warning_code
738
+ # Date and time at which Seam created the warning.
739
+ # @return [Time]
740
+ date_accessor :created_at
741
+ end
742
+
743
+ # Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock.
744
+ class HubRequiredForAdditionalCapabilities < Warnings
745
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
746
+ # @return [String]
747
+ attr_accessor :message
748
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
749
+ # @return [String]
750
+ # Known values:
751
+ # - `hub_required_for_additional_capabilities`
752
+ attr_accessor :warning_code
753
+ # Date and time at which Seam created the warning.
754
+ # @return [Time]
755
+ date_accessor :created_at
756
+ end
757
+
758
+ # Indicates a provider-specific issue that may affect device functionality.
759
+ class ProviderIssue < Warnings
760
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
761
+ # @return [String]
762
+ attr_accessor :message
763
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
764
+ # @return [String]
765
+ # Known values:
766
+ # - `provider_issue`
767
+ attr_accessor :warning_code
768
+ # Date and time at which Seam created the warning.
769
+ # @return [Time]
770
+ date_accessor :created_at
771
+ end
772
+
773
+ # Indicates that the key is in a locker that does not support the access codes API.
774
+ class KeynestUnsupportedLocker < Warnings
775
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
776
+ # @return [String]
777
+ attr_accessor :message
778
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
779
+ # @return [String]
780
+ # Known values:
781
+ # - `keynest_unsupported_locker`
782
+ attr_accessor :warning_code
783
+ # Date and time at which Seam created the warning.
784
+ # @return [Time]
785
+ date_accessor :created_at
786
+ end
787
+
788
+ # Indicates that the accessory keypad exists, but is not linked to the Igloohome Bridge. Online access code programming will fail until the keypad is linked to the Igloohome Bridge in the Igloohome app.
789
+ class AccessoryKeypadSetupRequired < Warnings
790
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
791
+ # @return [String]
792
+ attr_accessor :message
793
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
794
+ # @return [String]
795
+ # Known values:
796
+ # - `accessory_keypad_setup_required`
797
+ attr_accessor :warning_code
798
+ # Date and time at which Seam created the warning.
799
+ # @return [Time]
800
+ date_accessor :created_at
801
+ end
802
+
803
+ # Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status.
804
+ class UnreliableOnlineStatus < Warnings
805
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
806
+ # @return [String]
807
+ attr_accessor :message
808
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
809
+ # @return [String]
810
+ # Known values:
811
+ # - `unreliable_online_status`
812
+ attr_accessor :warning_code
813
+ # Date and time at which Seam created the warning.
814
+ # @return [Time]
815
+ date_accessor :created_at
816
+ end
817
+
818
+ # Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones.
819
+ class MaxAccessCodesReached < Warnings
820
+ # Number of active access codes on the device when the warning was set.
821
+ # @return [Integer]
822
+ attr_accessor :active_access_code_count
823
+ # Maximum number of active access codes supported by the device.
824
+ # @return [Integer]
825
+ attr_accessor :max_active_access_code_count
826
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
827
+ # @return [String]
828
+ attr_accessor :message
829
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
830
+ # @return [String]
831
+ # Known values:
832
+ # - `max_access_codes_reached`
833
+ attr_accessor :warning_code
834
+ # Date and time at which Seam created the warning.
835
+ # @return [Time]
836
+ date_accessor :created_at
837
+ end
838
+
135
839
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
136
840
  # @return [String]
137
841
  attr_accessor :message
138
842
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
139
843
  # @return [String]
844
+ # Known values:
845
+ # - `partial_backup_access_code_pool`
846
+ # - `many_active_backup_codes`
847
+ # - `third_party_integration_detected`
848
+ # - `ttlock_lock_gateway_unlocking_not_enabled`
849
+ # - `ttlock_weak_gateway_signal`
850
+ # - `power_saving_mode`
851
+ # - `temperature_threshold_exceeded`
852
+ # - `device_communication_degraded`
853
+ # - `scheduled_maintenance_window`
854
+ # - `device_has_flaky_connection`
855
+ # - `salto_ks_office_mode`
856
+ # - `salto_ks_privacy_mode`
857
+ # - `privacy_mode`
858
+ # - `salto_ks_subscription_limit_almost_reached`
859
+ # - `salto_ks_lock_access_code_support_removed`
860
+ # - `unknown_issue_with_phone`
861
+ # - `lockly_time_zone_not_configured`
862
+ # - `ultraloq_time_zone_unknown`
863
+ # - `time_zone_unknown`
864
+ # - `time_zone_mismatch`
865
+ # - `two_n_device_missing_timezone`
866
+ # - `hub_required_for_additional_capabilities`
867
+ # - `provider_issue`
868
+ # - `keynest_unsupported_locker`
869
+ # - `accessory_keypad_setup_required`
870
+ # - `unreliable_online_status`
871
+ # - `max_access_codes_reached`
140
872
  attr_accessor :warning_code
141
873
  # Date and time at which Seam created the warning.
142
874
  # @return [Time]
143
875
  date_accessor :created_at
876
+
877
+ discriminated_by :warning_code, {
878
+ "partial_backup_access_code_pool" => PartialBackupAccessCodePool,
879
+ "many_active_backup_codes" => ManyActiveBackupCodes,
880
+ "third_party_integration_detected" => ThirdPartyIntegrationDetected,
881
+ "ttlock_lock_gateway_unlocking_not_enabled" => TtlockLockGatewayUnlockingNotEnabled,
882
+ "ttlock_weak_gateway_signal" => TtlockWeakGatewaySignal,
883
+ "power_saving_mode" => PowerSavingMode,
884
+ "temperature_threshold_exceeded" => TemperatureThresholdExceeded,
885
+ "device_communication_degraded" => DeviceCommunicationDegraded,
886
+ "scheduled_maintenance_window" => ScheduledMaintenanceWindow,
887
+ "device_has_flaky_connection" => DeviceHasFlakyConnection,
888
+ "salto_ks_office_mode" => SaltoKsOfficeMode,
889
+ "salto_ks_privacy_mode" => SaltoKsPrivacyMode,
890
+ "privacy_mode" => PrivacyMode,
891
+ "salto_ks_subscription_limit_almost_reached" => SaltoKsSubscriptionLimitAlmostReached,
892
+ "salto_ks_lock_access_code_support_removed" => SaltoKsLockAccessCodeSupportRemoved,
893
+ "unknown_issue_with_phone" => UnknownIssueWithPhone,
894
+ "lockly_time_zone_not_configured" => LocklyTimeZoneNotConfigured,
895
+ "ultraloq_time_zone_unknown" => UltraloqTimeZoneUnknown,
896
+ "time_zone_unknown" => TimeZoneUnknown,
897
+ "time_zone_mismatch" => TimeZoneMismatch,
898
+ "two_n_device_missing_timezone" => TwoNDeviceMissingTimezone,
899
+ "hub_required_for_additional_capabilities" => HubRequiredForAdditionalCapabilities,
900
+ "provider_issue" => ProviderIssue,
901
+ "keynest_unsupported_locker" => KeynestUnsupportedLocker,
902
+ "accessory_keypad_setup_required" => AccessoryKeypadSetupRequired,
903
+ "unreliable_online_status" => UnreliableOnlineStatus,
904
+ "max_access_codes_reached" => MaxAccessCodesReached
905
+ }.freeze
144
906
  end
145
907
 
146
908
  # Location information for the device.
@@ -217,6 +979,13 @@ module Seam
217
979
  attr_accessor :can_unlock_with_code
218
980
  # Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).
219
981
  # @return [Array<String>]
982
+ # Known values:
983
+ # - `access_code`
984
+ # - `lock`
985
+ # - `noise_detection`
986
+ # - `thermostat`
987
+ # - `battery`
988
+ # - `phone`
220
989
  attr_accessor :capabilities_supported
221
990
  # Unique identifier for the account associated with the device.
222
991
  # @return [String]
@@ -229,6 +998,50 @@ module Seam
229
998
  attr_accessor :device_id
230
999
  # Type of the device.
231
1000
  # @return [String]
1001
+ # Known values:
1002
+ # - `akuvox_lock`
1003
+ # - `august_lock`
1004
+ # - `brivo_access_point`
1005
+ # - `butterflymx_panel`
1006
+ # - `avigilon_alta_entry`
1007
+ # - `doorking_lock`
1008
+ # - `genie_door`
1009
+ # - `igloo_lock`
1010
+ # - `linear_lock`
1011
+ # - `lockly_lock`
1012
+ # - `kwikset_lock`
1013
+ # - `nuki_lock`
1014
+ # - `salto_lock`
1015
+ # - `schlage_lock`
1016
+ # - `smartthings_lock`
1017
+ # - `wyze_lock`
1018
+ # - `yale_lock`
1019
+ # - `two_n_intercom`
1020
+ # - `controlbyweb_device`
1021
+ # - `ttlock_lock`
1022
+ # - `igloohome_lock`
1023
+ # - `four_suites_door`
1024
+ # - `dormakaba_oracode_door`
1025
+ # - `tedee_lock`
1026
+ # - `akiles_lock`
1027
+ # - `ultraloq_lock`
1028
+ # - `yacan_lock`
1029
+ # - `keyincode_lock`
1030
+ # - `omnitec_lock`
1031
+ # - `kisi_lock`
1032
+ # - `aqara_lock`
1033
+ # - `keynest_key`
1034
+ # - `noiseaware_activity_zone`
1035
+ # - `minut_sensor`
1036
+ # - `ecobee_thermostat`
1037
+ # - `nest_thermostat`
1038
+ # - `honeywell_resideo_thermostat`
1039
+ # - `tado_thermostat`
1040
+ # - `sensi_thermostat`
1041
+ # - `smartthings_thermostat`
1042
+ # - `ios_phone`
1043
+ # - `android_phone`
1044
+ # - `ring_camera`
232
1045
  attr_accessor :device_type
233
1046
  # Indicates that Seam does not manage the device.
234
1047
  # @return [FalseClass]