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
@@ -31,23 +31,316 @@ module Seam
31
31
  attr_accessor :provider_category
32
32
  end
33
33
 
34
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
34
35
  class Errors < BaseResource
36
+ # Indicates that the account is disconnected.
37
+ class AccountDisconnected < Errors
38
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
39
+ # @return [String]
40
+ # Known values:
41
+ # - `account_disconnected`
42
+ attr_accessor :error_code
43
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
44
+ # @return [TrueClass]
45
+ attr_accessor :is_connected_account_error
46
+ # Indicates that the error is not a device error.
47
+ # @return [FalseClass]
48
+ attr_accessor :is_device_error
49
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
50
+ # @return [String]
51
+ attr_accessor :message
52
+ # Date and time at which Seam created the error.
53
+ # @return [Time]
54
+ date_accessor :created_at
55
+ end
56
+
57
+ # Indicates that the Salto site user limit has been reached.
58
+ class SaltoKsSubscriptionLimitExceeded < Errors
59
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
60
+ # @return [String]
61
+ # Known values:
62
+ # - `salto_ks_subscription_limit_exceeded`
63
+ attr_accessor :error_code
64
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
65
+ # @return [TrueClass]
66
+ attr_accessor :is_connected_account_error
67
+ # Indicates that the error is not a device error.
68
+ # @return [FalseClass]
69
+ attr_accessor :is_device_error
70
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
71
+ # @return [String]
72
+ attr_accessor :message
73
+ # Date and time at which Seam created the error.
74
+ # @return [Time]
75
+ date_accessor :created_at
76
+ end
77
+
78
+ # 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.
79
+ class InsufficientPermissions < Errors
80
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
81
+ # @return [String]
82
+ # Known values:
83
+ # - `insufficient_permissions`
84
+ attr_accessor :error_code
85
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
86
+ # @return [TrueClass]
87
+ attr_accessor :is_connected_account_error
88
+ # Indicates that the error is not a device error.
89
+ # @return [FalseClass]
90
+ attr_accessor :is_device_error
91
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
92
+ # @return [String]
93
+ attr_accessor :message
94
+ # Date and time at which Seam created the error.
95
+ # @return [Time]
96
+ date_accessor :created_at
97
+ end
98
+
99
+ # Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support.
100
+ class DormakabaSitesDisconnected < Errors
101
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
102
+ # @return [String]
103
+ # Known values:
104
+ # - `dormakaba_sites_disconnected`
105
+ attr_accessor :error_code
106
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
107
+ # @return [TrueClass]
108
+ attr_accessor :is_connected_account_error
109
+ # Indicates that the error is not a device error.
110
+ # @return [FalseClass]
111
+ attr_accessor :is_device_error
112
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
113
+ # @return [String]
114
+ attr_accessor :message
115
+ # Date and time at which Seam created the error.
116
+ # @return [Time]
117
+ date_accessor :created_at
118
+ end
119
+
120
+ # Indicates that the device is offline.
121
+ class DeviceOffline < Errors
122
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
123
+ # @return [String]
124
+ # Known values:
125
+ # - `device_offline`
126
+ attr_accessor :error_code
127
+ # Indicates that the error is a device error.
128
+ # @return [TrueClass]
129
+ attr_accessor :is_device_error
130
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
131
+ # @return [String]
132
+ attr_accessor :message
133
+ # Date and time at which Seam created the error.
134
+ # @return [Time]
135
+ date_accessor :created_at
136
+ end
137
+
138
+ # Indicates that the device has been removed.
139
+ class DeviceRemoved < Errors
140
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
141
+ # @return [String]
142
+ # Known values:
143
+ # - `device_removed`
144
+ attr_accessor :error_code
145
+ # Indicates that the error is a device error.
146
+ # @return [TrueClass]
147
+ attr_accessor :is_device_error
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
+
156
+ # Indicates that the hub is disconnected.
157
+ class HubDisconnected < Errors
158
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
159
+ # @return [String]
160
+ # Known values:
161
+ # - `hub_disconnected`
162
+ attr_accessor :error_code
163
+ # Indicates that the error is a device error.
164
+ # @return [TrueClass]
165
+ attr_accessor :is_device_error
166
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
167
+ # @return [String]
168
+ attr_accessor :message
169
+ # Date and time at which Seam created the error.
170
+ # @return [Time]
171
+ date_accessor :created_at
172
+ end
173
+
174
+ # Indicates that the device is disconnected.
175
+ class DeviceDisconnected < Errors
176
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
177
+ # @return [String]
178
+ # Known values:
179
+ # - `device_disconnected`
180
+ attr_accessor :error_code
181
+ # Indicates that the error is a device error.
182
+ # @return [TrueClass]
183
+ attr_accessor :is_device_error
184
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
185
+ # @return [String]
186
+ attr_accessor :message
187
+ # Date and time at which Seam created the error.
188
+ # @return [Time]
189
+ date_accessor :created_at
190
+ end
191
+
192
+ # Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty.
193
+ class EmptyBackupAccessCodePool < Errors
194
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
195
+ # @return [String]
196
+ # Known values:
197
+ # - `empty_backup_access_code_pool`
198
+ attr_accessor :error_code
199
+ # Indicates that the error is a device error.
200
+ # @return [TrueClass]
201
+ attr_accessor :is_device_error
202
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
203
+ # @return [String]
204
+ attr_accessor :message
205
+ # Date and time at which Seam created the error.
206
+ # @return [Time]
207
+ date_accessor :created_at
208
+ end
209
+
210
+ # Indicates that the user is not authorized to use the August lock.
211
+ class AugustLockNotAuthorized < Errors
212
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
213
+ # @return [String]
214
+ # Known values:
215
+ # - `august_lock_not_authorized`
216
+ attr_accessor :error_code
217
+ # Indicates that the error is a device error.
218
+ # @return [TrueClass]
219
+ attr_accessor :is_device_error
220
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
221
+ # @return [String]
222
+ attr_accessor :message
223
+ # Date and time at which Seam created the error.
224
+ # @return [Time]
225
+ date_accessor :created_at
226
+ end
227
+
228
+ # Indicates that device credentials are missing.
229
+ class MissingDeviceCredentials < Errors
230
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
231
+ # @return [String]
232
+ # Known values:
233
+ # - `missing_device_credentials`
234
+ attr_accessor :error_code
235
+ # Indicates that the error is a device error.
236
+ # @return [TrueClass]
237
+ attr_accessor :is_device_error
238
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
239
+ # @return [String]
240
+ attr_accessor :message
241
+ # Date and time at which Seam created the error.
242
+ # @return [Time]
243
+ date_accessor :created_at
244
+ end
245
+
246
+ # Indicates that the auxiliary heat is running.
247
+ class AuxiliaryHeatRunning < Errors
248
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
249
+ # @return [String]
250
+ # Known values:
251
+ # - `auxiliary_heat_running`
252
+ attr_accessor :error_code
253
+ # Indicates that the error is a device error.
254
+ # @return [TrueClass]
255
+ attr_accessor :is_device_error
256
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
257
+ # @return [String]
258
+ attr_accessor :message
259
+ # Date and time at which Seam created the error.
260
+ # @return [Time]
261
+ date_accessor :created_at
262
+ end
263
+
264
+ # Indicates that a subscription is required to connect.
265
+ class SubscriptionRequired < Errors
266
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
267
+ # @return [String]
268
+ # Known values:
269
+ # - `subscription_required`
270
+ attr_accessor :error_code
271
+ # Indicates that the error is a device error.
272
+ # @return [TrueClass]
273
+ attr_accessor :is_device_error
274
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
275
+ # @return [String]
276
+ attr_accessor :message
277
+ # Date and time at which Seam created the error.
278
+ # @return [Time]
279
+ date_accessor :created_at
280
+ end
281
+
282
+ # 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).
283
+ class BridgeDisconnected < Errors
284
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
285
+ # @return [String]
286
+ # Known values:
287
+ # - `bridge_disconnected`
288
+ attr_accessor :error_code
289
+ # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
290
+ # @return [Boolean, nil]
291
+ attr_accessor :is_bridge_error
292
+ # Indicates whether the error is related specifically to the connected account.
293
+ # @return [Boolean, nil]
294
+ attr_accessor :is_connected_account_error
295
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
296
+ # @return [String]
297
+ attr_accessor :message
298
+ # Date and time at which Seam created the error.
299
+ # @return [Time]
300
+ date_accessor :created_at
301
+ end
302
+
35
303
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
36
304
  # @return [String]
305
+ # Known values:
306
+ # - `account_disconnected`
307
+ # - `salto_ks_subscription_limit_exceeded`
308
+ # - `insufficient_permissions`
309
+ # - `dormakaba_sites_disconnected`
310
+ # - `device_offline`
311
+ # - `device_removed`
312
+ # - `hub_disconnected`
313
+ # - `device_disconnected`
314
+ # - `empty_backup_access_code_pool`
315
+ # - `august_lock_not_authorized`
316
+ # - `missing_device_credentials`
317
+ # - `auxiliary_heat_running`
318
+ # - `subscription_required`
319
+ # - `bridge_disconnected`
37
320
  attr_accessor :error_code
38
- # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
39
- # @return [Boolean, nil]
40
- attr_accessor :is_bridge_error
41
- # @return [Boolean, nil]
42
- attr_accessor :is_connected_account_error
43
- # @return [Boolean]
44
- attr_accessor :is_device_error
45
321
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
46
322
  # @return [String]
47
323
  attr_accessor :message
48
324
  # Date and time at which Seam created the error.
49
325
  # @return [Time]
50
326
  date_accessor :created_at
327
+
328
+ discriminated_by :error_code, {
329
+ "account_disconnected" => AccountDisconnected,
330
+ "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
331
+ "insufficient_permissions" => InsufficientPermissions,
332
+ "dormakaba_sites_disconnected" => DormakabaSitesDisconnected,
333
+ "device_offline" => DeviceOffline,
334
+ "device_removed" => DeviceRemoved,
335
+ "hub_disconnected" => HubDisconnected,
336
+ "device_disconnected" => DeviceDisconnected,
337
+ "empty_backup_access_code_pool" => EmptyBackupAccessCodePool,
338
+ "august_lock_not_authorized" => AugustLockNotAuthorized,
339
+ "missing_device_credentials" => MissingDeviceCredentials,
340
+ "auxiliary_heat_running" => AuxiliaryHeatRunning,
341
+ "subscription_required" => SubscriptionRequired,
342
+ "bridge_disconnected" => BridgeDisconnected
343
+ }.freeze
51
344
  end
52
345
 
53
346
  class Location < BaseResource
@@ -93,6 +386,11 @@ module Seam
93
386
  attr_accessor :level
94
387
  # 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.
95
388
  # @return [String]
389
+ # Known values:
390
+ # - `critical`
391
+ # - `low`
392
+ # - `good`
393
+ # - `full`
96
394
  attr_accessor :status
97
395
  end
98
396
 
@@ -625,6 +923,9 @@ module Seam
625
923
  attr_accessor :device_id
626
924
  # Device model for a NoiseAware device.
627
925
  # @return [String, nil]
926
+ # Known values:
927
+ # - `indoor`
928
+ # - `outdoor`
628
929
  attr_accessor :device_model
629
930
  # Device name for a NoiseAware device.
630
931
  # @return [String, nil]
@@ -766,6 +1067,9 @@ module Seam
766
1067
  attr_accessor :name
767
1068
  # Unlock method for Seam Bridge.
768
1069
  # @return [String, nil]
1070
+ # Known values:
1071
+ # - `bridge`
1072
+ # - `doorking`
769
1073
  attr_accessor :unlock_method
770
1074
  end
771
1075
 
@@ -966,6 +1270,21 @@ module Seam
966
1270
 
967
1271
  class CodeConstraints < BaseResource
968
1272
  # @return [String]
1273
+ # Known values:
1274
+ # - `no_zeros`
1275
+ # - `cannot_start_with_12`
1276
+ # - `no_triple_consecutive_ints`
1277
+ # - `cannot_specify_pin_code`
1278
+ # - `pin_code_matches_existing_set`
1279
+ # - `start_date_in_future`
1280
+ # - `no_ascending_or_descending_sequence`
1281
+ # - `at_least_three_unique_digits`
1282
+ # - `cannot_contain_089`
1283
+ # - `cannot_contain_0789`
1284
+ # - `unique_first_four_digits`
1285
+ # - `no_all_same_digits`
1286
+ # - `name_length`
1287
+ # - `name_must_be_unique`
969
1288
  attr_accessor :constraint_type
970
1289
  # Maximum name length constraint for access codes.
971
1290
  # @return [Float, nil]
@@ -1117,6 +1436,9 @@ module Seam
1117
1436
  attr_accessor :is_optimized
1118
1437
  # Indicates whether the climate preset is owned by the user or the system.
1119
1438
  # @return [String, nil]
1439
+ # Known values:
1440
+ # - `user`
1441
+ # - `system`
1120
1442
  attr_accessor :owner
1121
1443
  end
1122
1444
 
@@ -1137,6 +1459,13 @@ module Seam
1137
1459
  attr_accessor :climate_preset_key
1138
1460
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1139
1461
  # @return [String, nil]
1462
+ # Known values:
1463
+ # - `home`
1464
+ # - `away`
1465
+ # - `wake`
1466
+ # - `sleep`
1467
+ # - `occupied`
1468
+ # - `unoccupied`
1140
1469
  attr_accessor :climate_preset_mode
1141
1470
  # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1142
1471
  # @return [Float, nil]
@@ -1149,6 +1478,10 @@ module Seam
1149
1478
  attr_accessor :display_name
1150
1479
  # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
1151
1480
  # @return [String, nil]
1481
+ # Known values:
1482
+ # - `auto`
1483
+ # - `on`
1484
+ # - `circulate`
1152
1485
  attr_accessor :fan_mode_setting
1153
1486
  # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1154
1487
  # @return [Float, nil]
@@ -1158,6 +1491,12 @@ module Seam
1158
1491
  attr_accessor :heating_set_point_fahrenheit
1159
1492
  # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
1160
1493
  # @return [String, nil]
1494
+ # Known values:
1495
+ # - `off`
1496
+ # - `heat`
1497
+ # - `cool`
1498
+ # - `heat_cool`
1499
+ # - `eco`
1161
1500
  attr_accessor :hvac_mode_setting
1162
1501
  # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
1163
1502
  # @return [Boolean]
@@ -1178,6 +1517,9 @@ module Seam
1178
1517
  attr_accessor :is_optimized
1179
1518
  # Indicates whether the climate preset is owned by the user or the system.
1180
1519
  # @return [String, nil]
1520
+ # Known values:
1521
+ # - `user`
1522
+ # - `system`
1181
1523
  attr_accessor :owner
1182
1524
  end
1183
1525
 
@@ -1198,6 +1540,13 @@ module Seam
1198
1540
  attr_accessor :climate_preset_key
1199
1541
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1200
1542
  # @return [String, nil]
1543
+ # Known values:
1544
+ # - `home`
1545
+ # - `away`
1546
+ # - `wake`
1547
+ # - `sleep`
1548
+ # - `occupied`
1549
+ # - `unoccupied`
1201
1550
  attr_accessor :climate_preset_mode
1202
1551
  # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1203
1552
  # @return [Float, nil]
@@ -1210,6 +1559,10 @@ module Seam
1210
1559
  attr_accessor :display_name
1211
1560
  # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
1212
1561
  # @return [String, nil]
1562
+ # Known values:
1563
+ # - `auto`
1564
+ # - `on`
1565
+ # - `circulate`
1213
1566
  attr_accessor :fan_mode_setting
1214
1567
  # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1215
1568
  # @return [Float, nil]
@@ -1219,6 +1572,12 @@ module Seam
1219
1572
  attr_accessor :heating_set_point_fahrenheit
1220
1573
  # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
1221
1574
  # @return [String, nil]
1575
+ # Known values:
1576
+ # - `off`
1577
+ # - `heat`
1578
+ # - `cool`
1579
+ # - `heat_cool`
1580
+ # - `eco`
1222
1581
  attr_accessor :hvac_mode_setting
1223
1582
  # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
1224
1583
  # @return [Boolean, nil]
@@ -1239,6 +1598,9 @@ module Seam
1239
1598
  attr_accessor :is_optimized
1240
1599
  # Indicates whether the climate preset is owned by the user or the system.
1241
1600
  # @return [String, nil]
1601
+ # Known values:
1602
+ # - `user`
1603
+ # - `system`
1242
1604
  attr_accessor :owner
1243
1605
  end
1244
1606
 
@@ -1259,6 +1621,13 @@ module Seam
1259
1621
  attr_accessor :climate_preset_key
1260
1622
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1261
1623
  # @return [String, nil]
1624
+ # Known values:
1625
+ # - `home`
1626
+ # - `away`
1627
+ # - `wake`
1628
+ # - `sleep`
1629
+ # - `occupied`
1630
+ # - `unoccupied`
1262
1631
  attr_accessor :climate_preset_mode
1263
1632
  # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1264
1633
  # @return [Float, nil]
@@ -1271,6 +1640,10 @@ module Seam
1271
1640
  attr_accessor :display_name
1272
1641
  # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
1273
1642
  # @return [String, nil]
1643
+ # Known values:
1644
+ # - `auto`
1645
+ # - `on`
1646
+ # - `circulate`
1274
1647
  attr_accessor :fan_mode_setting
1275
1648
  # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
1276
1649
  # @return [Float, nil]
@@ -1280,6 +1653,12 @@ module Seam
1280
1653
  attr_accessor :heating_set_point_fahrenheit
1281
1654
  # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
1282
1655
  # @return [String, nil]
1656
+ # Known values:
1657
+ # - `off`
1658
+ # - `heat`
1659
+ # - `cool`
1660
+ # - `heat_cool`
1661
+ # - `eco`
1283
1662
  attr_accessor :hvac_mode_setting
1284
1663
  # Indicates whether a person at the thermostat can change the thermostat's settings. See [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
1285
1664
  # @return [Boolean, nil]
@@ -1606,17 +1985,38 @@ module Seam
1606
1985
  attr_accessor :active_thermostat_schedule_id
1607
1986
  # Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
1608
1987
  # @return [Array<String>]
1988
+ # Known values:
1989
+ # - `home`
1990
+ # - `away`
1991
+ # - `wake`
1992
+ # - `sleep`
1993
+ # - `occupied`
1994
+ # - `unoccupied`
1609
1995
  attr_accessor :available_climate_preset_modes
1610
1996
  # Fan mode settings that the thermostat supports.
1611
1997
  # @return [Array<String>]
1998
+ # Known values:
1999
+ # - `auto`
2000
+ # - `on`
2001
+ # - `circulate`
1612
2002
  attr_accessor :available_fan_mode_settings
1613
2003
  # HVAC mode settings that the thermostat supports.
1614
2004
  # @return [Array<String>]
2005
+ # Known values:
2006
+ # - `off`
2007
+ # - `heat`
2008
+ # - `cool`
2009
+ # - `heat_cool`
2010
+ # - `eco`
1615
2011
  attr_accessor :available_hvac_mode_settings
1616
2012
  # Key of the [fallback climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.
1617
2013
  # @return [String, nil]
1618
2014
  attr_accessor :fallback_climate_preset_key
1619
2015
  # @return [String, nil]
2016
+ # Known values:
2017
+ # - `auto`
2018
+ # - `on`
2019
+ # - `circulate`
1620
2020
  # @deprecated Use `current_climate_setting.fan_mode_setting` instead.
1621
2021
  attr_accessor :fan_mode_setting
1622
2022
  # Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
@@ -1681,22 +2081,486 @@ module Seam
1681
2081
  attr_accessor :thermostat_daily_program_period_precision_minutes
1682
2082
  end
1683
2083
 
2084
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
1684
2085
  class Warnings < BaseResource
1685
- # Number of active access codes on the device when the warning was set.
1686
- # @return [Integer]
1687
- attr_accessor :active_access_code_count
1688
- # Maximum number of active access codes supported by the device.
1689
- # @return [Integer]
1690
- attr_accessor :max_active_access_code_count
2086
+ # Indicates that the backup access code is unhealthy.
2087
+ class PartialBackupAccessCodePool < Warnings
2088
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2089
+ # @return [String]
2090
+ attr_accessor :message
2091
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2092
+ # @return [String]
2093
+ # Known values:
2094
+ # - `partial_backup_access_code_pool`
2095
+ attr_accessor :warning_code
2096
+ # Date and time at which Seam created the warning.
2097
+ # @return [Time]
2098
+ date_accessor :created_at
2099
+ end
2100
+
2101
+ # Indicates that there are too many backup codes.
2102
+ class ManyActiveBackupCodes < Warnings
2103
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2104
+ # @return [String]
2105
+ attr_accessor :message
2106
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2107
+ # @return [String]
2108
+ # Known values:
2109
+ # - `many_active_backup_codes`
2110
+ attr_accessor :warning_code
2111
+ # Date and time at which Seam created the warning.
2112
+ # @return [Time]
2113
+ date_accessor :created_at
2114
+ end
2115
+
2116
+ # Indicates that a third-party integration has been detected.
2117
+ class ThirdPartyIntegrationDetected < Warnings
2118
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2119
+ # @return [String]
2120
+ attr_accessor :message
2121
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2122
+ # @return [String]
2123
+ # Known values:
2124
+ # - `third_party_integration_detected`
2125
+ attr_accessor :warning_code
2126
+ # Date and time at which Seam created the warning.
2127
+ # @return [Time]
2128
+ date_accessor :created_at
2129
+ end
2130
+
2131
+ # Indicates that the Remote Unlock feature is not enabled in the settings."
2132
+ class TtlockLockGatewayUnlockingNotEnabled < Warnings
2133
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2134
+ # @return [String]
2135
+ attr_accessor :message
2136
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2137
+ # @return [String]
2138
+ # Known values:
2139
+ # - `ttlock_lock_gateway_unlocking_not_enabled`
2140
+ attr_accessor :warning_code
2141
+ # Date and time at which Seam created the warning.
2142
+ # @return [Time]
2143
+ date_accessor :created_at
2144
+ end
2145
+
2146
+ # Indicates that the gateway signal is weak.
2147
+ class TtlockWeakGatewaySignal < Warnings
2148
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2149
+ # @return [String]
2150
+ attr_accessor :message
2151
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2152
+ # @return [String]
2153
+ # Known values:
2154
+ # - `ttlock_weak_gateway_signal`
2155
+ attr_accessor :warning_code
2156
+ # Date and time at which Seam created the warning.
2157
+ # @return [Time]
2158
+ date_accessor :created_at
2159
+ end
2160
+
2161
+ # Indicates that the device is in power saving mode and may have limited functionality.
2162
+ class PowerSavingMode < Warnings
2163
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2164
+ # @return [String]
2165
+ attr_accessor :message
2166
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2167
+ # @return [String]
2168
+ # Known values:
2169
+ # - `power_saving_mode`
2170
+ attr_accessor :warning_code
2171
+ # Date and time at which Seam created the warning.
2172
+ # @return [Time]
2173
+ date_accessor :created_at
2174
+ end
2175
+
2176
+ # Indicates that the temperature threshold has been exceeded.
2177
+ class TemperatureThresholdExceeded < Warnings
2178
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2179
+ # @return [String]
2180
+ attr_accessor :message
2181
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2182
+ # @return [String]
2183
+ # Known values:
2184
+ # - `temperature_threshold_exceeded`
2185
+ attr_accessor :warning_code
2186
+ # Date and time at which Seam created the warning.
2187
+ # @return [Time]
2188
+ date_accessor :created_at
2189
+ end
2190
+
2191
+ # Indicates that the device appears to be unresponsive.
2192
+ class DeviceCommunicationDegraded < Warnings
2193
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2194
+ # @return [String]
2195
+ attr_accessor :message
2196
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2197
+ # @return [String]
2198
+ # Known values:
2199
+ # - `device_communication_degraded`
2200
+ attr_accessor :warning_code
2201
+ # Date and time at which Seam created the warning.
2202
+ # @return [Time]
2203
+ date_accessor :created_at
2204
+ end
2205
+
2206
+ # Indicates that a scheduled maintenance window has been detected.
2207
+ class ScheduledMaintenanceWindow < Warnings
2208
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2209
+ # @return [String]
2210
+ attr_accessor :message
2211
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2212
+ # @return [String]
2213
+ # Known values:
2214
+ # - `scheduled_maintenance_window`
2215
+ attr_accessor :warning_code
2216
+ # Date and time at which Seam created the warning.
2217
+ # @return [Time]
2218
+ date_accessor :created_at
2219
+ end
2220
+
2221
+ # Indicates that the device has a flaky connection.
2222
+ class DeviceHasFlakyConnection < Warnings
2223
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2224
+ # @return [String]
2225
+ attr_accessor :message
2226
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2227
+ # @return [String]
2228
+ # Known values:
2229
+ # - `device_has_flaky_connection`
2230
+ attr_accessor :warning_code
2231
+ # Date and time at which Seam created the warning.
2232
+ # @return [Time]
2233
+ date_accessor :created_at
2234
+ end
2235
+
2236
+ # Indicates that the Salto KS lock is in Office Mode. Access Codes will not unlock doors.
2237
+ class SaltoKsOfficeMode < Warnings
2238
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2239
+ # @return [String]
2240
+ attr_accessor :message
2241
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2242
+ # @return [String]
2243
+ # Known values:
2244
+ # - `salto_ks_office_mode`
2245
+ attr_accessor :warning_code
2246
+ # Date and time at which Seam created the warning.
2247
+ # @return [Time]
2248
+ date_accessor :created_at
2249
+ end
2250
+
2251
+ # Indicates that the Salto KS lock is in Privacy Mode. Access Codes will not unlock doors.
2252
+ class SaltoKsPrivacyMode < Warnings
2253
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2254
+ # @return [String]
2255
+ attr_accessor :message
2256
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2257
+ # @return [String]
2258
+ # Known values:
2259
+ # - `salto_ks_privacy_mode`
2260
+ attr_accessor :warning_code
2261
+ # Date and time at which Seam created the warning.
2262
+ # @return [Time]
2263
+ date_accessor :created_at
2264
+ end
2265
+
2266
+ # Indicates that the lock is in Privacy Mode. Access codes and remote unlock are blocked until Privacy Mode is disabled.
2267
+ class PrivacyMode < Warnings
2268
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2269
+ # @return [String]
2270
+ attr_accessor :message
2271
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2272
+ # @return [String]
2273
+ # Known values:
2274
+ # - `privacy_mode`
2275
+ attr_accessor :warning_code
2276
+ # Date and time at which Seam created the warning.
2277
+ # @return [Time]
2278
+ date_accessor :created_at
2279
+ end
2280
+
2281
+ # 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.
2282
+ class SaltoKsSubscriptionLimitAlmostReached < Warnings
2283
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2284
+ # @return [String]
2285
+ attr_accessor :message
2286
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2287
+ # @return [String]
2288
+ # Known values:
2289
+ # - `salto_ks_subscription_limit_almost_reached`
2290
+ attr_accessor :warning_code
2291
+ # Date and time at which Seam created the warning.
2292
+ # @return [Time]
2293
+ date_accessor :created_at
2294
+ end
2295
+
2296
+ # 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.
2297
+ class SaltoKsLockAccessCodeSupportRemoved < Warnings
2298
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2299
+ # @return [String]
2300
+ attr_accessor :message
2301
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2302
+ # @return [String]
2303
+ # Known values:
2304
+ # - `salto_ks_lock_access_code_support_removed`
2305
+ attr_accessor :warning_code
2306
+ # Date and time at which Seam created the warning.
2307
+ # @return [Time]
2308
+ date_accessor :created_at
2309
+ end
2310
+
2311
+ # 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.
2312
+ class UnknownIssueWithPhone < Warnings
2313
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2314
+ # @return [String]
2315
+ attr_accessor :message
2316
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2317
+ # @return [String]
2318
+ # Known values:
2319
+ # - `unknown_issue_with_phone`
2320
+ attr_accessor :warning_code
2321
+ # Date and time at which Seam created the warning.
2322
+ # @return [Time]
2323
+ date_accessor :created_at
2324
+ end
2325
+
2326
+ # Indicates that Seam detected that the Lockly device does not have a time zone configured. Time-bound codes may not work as expected.
2327
+ class LocklyTimeZoneNotConfigured < Warnings
2328
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2329
+ # @return [String]
2330
+ attr_accessor :message
2331
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2332
+ # @return [String]
2333
+ # Known values:
2334
+ # - `lockly_time_zone_not_configured`
2335
+ attr_accessor :warning_code
2336
+ # Date and time at which Seam created the warning.
2337
+ # @return [Time]
2338
+ date_accessor :created_at
2339
+ end
2340
+
2341
+ # Indicates that Seam does not know the time zone of the Ultraloq device. Set a time zone to enable time-bound access codes.
2342
+ class UltraloqTimeZoneUnknown < Warnings
2343
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2344
+ # @return [String]
2345
+ attr_accessor :message
2346
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2347
+ # @return [String]
2348
+ # Known values:
2349
+ # - `ultraloq_time_zone_unknown`
2350
+ attr_accessor :warning_code
2351
+ # Date and time at which Seam created the warning.
2352
+ # @return [Time]
2353
+ date_accessor :created_at
2354
+ end
2355
+
2356
+ # Indicates that Seam does not know the device's time zone. Set a time zone to enable time-bound access codes.
2357
+ class TimeZoneUnknown < Warnings
2358
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2359
+ # @return [String]
2360
+ attr_accessor :message
2361
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2362
+ # @return [String]
2363
+ # Known values:
2364
+ # - `time_zone_unknown`
2365
+ attr_accessor :warning_code
2366
+ # Date and time at which Seam created the warning.
2367
+ # @return [Time]
2368
+ date_accessor :created_at
2369
+ end
2370
+
2371
+ # 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.
2372
+ class TimeZoneMismatch < Warnings
2373
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2374
+ # @return [String]
2375
+ attr_accessor :message
2376
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2377
+ # @return [String]
2378
+ # Known values:
2379
+ # - `time_zone_mismatch`
2380
+ attr_accessor :warning_code
2381
+ # Date and time at which Seam created the warning.
2382
+ # @return [Time]
2383
+ date_accessor :created_at
2384
+ end
2385
+
2386
+ # Indicates that the 2N device does not have a time zone configured. Configure a time zone on the device to enable access codes.
2387
+ class TwoNDeviceMissingTimezone < Warnings
2388
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2389
+ # @return [String]
2390
+ attr_accessor :message
2391
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2392
+ # @return [String]
2393
+ # Known values:
2394
+ # - `two_n_device_missing_timezone`
2395
+ attr_accessor :warning_code
2396
+ # Date and time at which Seam created the warning.
2397
+ # @return [Time]
2398
+ date_accessor :created_at
2399
+ end
2400
+
2401
+ # Indicates that a hub or relay must be connected to unlock additional capabilities such as remote unlock.
2402
+ class HubRequiredForAdditionalCapabilities < Warnings
2403
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2404
+ # @return [String]
2405
+ attr_accessor :message
2406
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2407
+ # @return [String]
2408
+ # Known values:
2409
+ # - `hub_required_for_additional_capabilities`
2410
+ attr_accessor :warning_code
2411
+ # Date and time at which Seam created the warning.
2412
+ # @return [Time]
2413
+ date_accessor :created_at
2414
+ end
2415
+
2416
+ # Indicates a provider-specific issue that may affect device functionality.
2417
+ class ProviderIssue < Warnings
2418
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2419
+ # @return [String]
2420
+ attr_accessor :message
2421
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2422
+ # @return [String]
2423
+ # Known values:
2424
+ # - `provider_issue`
2425
+ attr_accessor :warning_code
2426
+ # Date and time at which Seam created the warning.
2427
+ # @return [Time]
2428
+ date_accessor :created_at
2429
+ end
2430
+
2431
+ # Indicates that the key is in a locker that does not support the access codes API.
2432
+ class KeynestUnsupportedLocker < Warnings
2433
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2434
+ # @return [String]
2435
+ attr_accessor :message
2436
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2437
+ # @return [String]
2438
+ # Known values:
2439
+ # - `keynest_unsupported_locker`
2440
+ attr_accessor :warning_code
2441
+ # Date and time at which Seam created the warning.
2442
+ # @return [Time]
2443
+ date_accessor :created_at
2444
+ end
2445
+
2446
+ # 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.
2447
+ class AccessoryKeypadSetupRequired < Warnings
2448
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2449
+ # @return [String]
2450
+ attr_accessor :message
2451
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2452
+ # @return [String]
2453
+ # Known values:
2454
+ # - `accessory_keypad_setup_required`
2455
+ attr_accessor :warning_code
2456
+ # Date and time at which Seam created the warning.
2457
+ # @return [Time]
2458
+ date_accessor :created_at
2459
+ end
2460
+
2461
+ # Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status.
2462
+ class UnreliableOnlineStatus < Warnings
2463
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2464
+ # @return [String]
2465
+ attr_accessor :message
2466
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2467
+ # @return [String]
2468
+ # Known values:
2469
+ # - `unreliable_online_status`
2470
+ attr_accessor :warning_code
2471
+ # Date and time at which Seam created the warning.
2472
+ # @return [Time]
2473
+ date_accessor :created_at
2474
+ end
2475
+
2476
+ # Indicates that the device has reached its maximum number of active access codes. Delete existing codes before creating new ones.
2477
+ class MaxAccessCodesReached < Warnings
2478
+ # Number of active access codes on the device when the warning was set.
2479
+ # @return [Integer]
2480
+ attr_accessor :active_access_code_count
2481
+ # Maximum number of active access codes supported by the device.
2482
+ # @return [Integer]
2483
+ attr_accessor :max_active_access_code_count
2484
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2485
+ # @return [String]
2486
+ attr_accessor :message
2487
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2488
+ # @return [String]
2489
+ # Known values:
2490
+ # - `max_access_codes_reached`
2491
+ attr_accessor :warning_code
2492
+ # Date and time at which Seam created the warning.
2493
+ # @return [Time]
2494
+ date_accessor :created_at
2495
+ end
2496
+
1691
2497
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
1692
2498
  # @return [String]
1693
2499
  attr_accessor :message
1694
2500
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
1695
2501
  # @return [String]
2502
+ # Known values:
2503
+ # - `partial_backup_access_code_pool`
2504
+ # - `many_active_backup_codes`
2505
+ # - `third_party_integration_detected`
2506
+ # - `ttlock_lock_gateway_unlocking_not_enabled`
2507
+ # - `ttlock_weak_gateway_signal`
2508
+ # - `power_saving_mode`
2509
+ # - `temperature_threshold_exceeded`
2510
+ # - `device_communication_degraded`
2511
+ # - `scheduled_maintenance_window`
2512
+ # - `device_has_flaky_connection`
2513
+ # - `salto_ks_office_mode`
2514
+ # - `salto_ks_privacy_mode`
2515
+ # - `privacy_mode`
2516
+ # - `salto_ks_subscription_limit_almost_reached`
2517
+ # - `salto_ks_lock_access_code_support_removed`
2518
+ # - `unknown_issue_with_phone`
2519
+ # - `lockly_time_zone_not_configured`
2520
+ # - `ultraloq_time_zone_unknown`
2521
+ # - `time_zone_unknown`
2522
+ # - `time_zone_mismatch`
2523
+ # - `two_n_device_missing_timezone`
2524
+ # - `hub_required_for_additional_capabilities`
2525
+ # - `provider_issue`
2526
+ # - `keynest_unsupported_locker`
2527
+ # - `accessory_keypad_setup_required`
2528
+ # - `unreliable_online_status`
2529
+ # - `max_access_codes_reached`
1696
2530
  attr_accessor :warning_code
1697
2531
  # Date and time at which Seam created the warning.
1698
2532
  # @return [Time]
1699
2533
  date_accessor :created_at
2534
+
2535
+ discriminated_by :warning_code, {
2536
+ "partial_backup_access_code_pool" => PartialBackupAccessCodePool,
2537
+ "many_active_backup_codes" => ManyActiveBackupCodes,
2538
+ "third_party_integration_detected" => ThirdPartyIntegrationDetected,
2539
+ "ttlock_lock_gateway_unlocking_not_enabled" => TtlockLockGatewayUnlockingNotEnabled,
2540
+ "ttlock_weak_gateway_signal" => TtlockWeakGatewaySignal,
2541
+ "power_saving_mode" => PowerSavingMode,
2542
+ "temperature_threshold_exceeded" => TemperatureThresholdExceeded,
2543
+ "device_communication_degraded" => DeviceCommunicationDegraded,
2544
+ "scheduled_maintenance_window" => ScheduledMaintenanceWindow,
2545
+ "device_has_flaky_connection" => DeviceHasFlakyConnection,
2546
+ "salto_ks_office_mode" => SaltoKsOfficeMode,
2547
+ "salto_ks_privacy_mode" => SaltoKsPrivacyMode,
2548
+ "privacy_mode" => PrivacyMode,
2549
+ "salto_ks_subscription_limit_almost_reached" => SaltoKsSubscriptionLimitAlmostReached,
2550
+ "salto_ks_lock_access_code_support_removed" => SaltoKsLockAccessCodeSupportRemoved,
2551
+ "unknown_issue_with_phone" => UnknownIssueWithPhone,
2552
+ "lockly_time_zone_not_configured" => LocklyTimeZoneNotConfigured,
2553
+ "ultraloq_time_zone_unknown" => UltraloqTimeZoneUnknown,
2554
+ "time_zone_unknown" => TimeZoneUnknown,
2555
+ "time_zone_mismatch" => TimeZoneMismatch,
2556
+ "two_n_device_missing_timezone" => TwoNDeviceMissingTimezone,
2557
+ "hub_required_for_additional_capabilities" => HubRequiredForAdditionalCapabilities,
2558
+ "provider_issue" => ProviderIssue,
2559
+ "keynest_unsupported_locker" => KeynestUnsupportedLocker,
2560
+ "accessory_keypad_setup_required" => AccessoryKeypadSetupRequired,
2561
+ "unreliable_online_status" => UnreliableOnlineStatus,
2562
+ "max_access_codes_reached" => MaxAccessCodesReached
2563
+ }.freeze
1700
2564
  end
1701
2565
 
1702
2566
  # Manufacturer of the device. Represents the hardware brand, which may differ from the provider.
@@ -1779,18 +2643,69 @@ module Seam
1779
2643
  attr_accessor :can_unlock_with_code
1780
2644
  # 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).
1781
2645
  # @return [Array<String>]
2646
+ # Known values:
2647
+ # - `access_code`
2648
+ # - `lock`
2649
+ # - `noise_detection`
2650
+ # - `thermostat`
2651
+ # - `battery`
2652
+ # - `phone`
1782
2653
  attr_accessor :capabilities_supported
1783
2654
  # Unique identifier for the account associated with the device.
1784
2655
  # @return [String]
1785
2656
  attr_accessor :connected_account_id
1786
2657
  # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.
1787
- # @return [Hash]
2658
+ # @return [Hash{String => String, Boolean}]
1788
2659
  attr_accessor :custom_metadata
1789
2660
  # ID of the device.
1790
2661
  # @return [String]
1791
2662
  attr_accessor :device_id
1792
2663
  # Type of the device.
1793
2664
  # @return [String]
2665
+ # Known values:
2666
+ # - `akuvox_lock`
2667
+ # - `august_lock`
2668
+ # - `brivo_access_point`
2669
+ # - `butterflymx_panel`
2670
+ # - `avigilon_alta_entry`
2671
+ # - `doorking_lock`
2672
+ # - `genie_door`
2673
+ # - `igloo_lock`
2674
+ # - `linear_lock`
2675
+ # - `lockly_lock`
2676
+ # - `kwikset_lock`
2677
+ # - `nuki_lock`
2678
+ # - `salto_lock`
2679
+ # - `schlage_lock`
2680
+ # - `smartthings_lock`
2681
+ # - `wyze_lock`
2682
+ # - `yale_lock`
2683
+ # - `two_n_intercom`
2684
+ # - `controlbyweb_device`
2685
+ # - `ttlock_lock`
2686
+ # - `igloohome_lock`
2687
+ # - `four_suites_door`
2688
+ # - `dormakaba_oracode_door`
2689
+ # - `tedee_lock`
2690
+ # - `akiles_lock`
2691
+ # - `ultraloq_lock`
2692
+ # - `yacan_lock`
2693
+ # - `keyincode_lock`
2694
+ # - `omnitec_lock`
2695
+ # - `kisi_lock`
2696
+ # - `aqara_lock`
2697
+ # - `keynest_key`
2698
+ # - `noiseaware_activity_zone`
2699
+ # - `minut_sensor`
2700
+ # - `ecobee_thermostat`
2701
+ # - `nest_thermostat`
2702
+ # - `honeywell_resideo_thermostat`
2703
+ # - `tado_thermostat`
2704
+ # - `sensi_thermostat`
2705
+ # - `smartthings_thermostat`
2706
+ # - `ios_phone`
2707
+ # - `android_phone`
2708
+ # - `ring_camera`
1794
2709
  attr_accessor :device_type
1795
2710
  # Display name of the device, defaults to nickname (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the device easily, especially when there are numerous devices.
1796
2711
  # @return [String]