seam 2.134.0 → 2.136.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +17 -7
  4. data/lib/seam/auth.rb +1 -1
  5. data/lib/seam/base_resource.rb +45 -1
  6. data/lib/seam/deep_hash_accessor.rb +8 -4
  7. data/lib/seam/{http_multi_workspace.rb → http_without_workspace.rb} +4 -3
  8. data/lib/seam/request.rb +0 -1
  9. data/lib/seam/resources/access_code.rb +109 -7
  10. data/lib/seam/resources/access_grant.rb +90 -7
  11. data/lib/seam/resources/access_method.rb +49 -5
  12. data/lib/seam/resources/acs_access_group.rb +69 -7
  13. data/lib/seam/resources/acs_credential.rb +54 -7
  14. data/lib/seam/resources/acs_encoder.rb +10 -2
  15. data/lib/seam/resources/acs_entrance.rb +166 -25
  16. data/lib/seam/resources/acs_system.rb +40 -7
  17. data/lib/seam/resources/acs_user.rb +93 -11
  18. data/lib/seam/resources/action_attempt.rb +304 -5
  19. data/lib/seam/resources/connected_account.rb +70 -6
  20. data/lib/seam/resources/device.rb +1126 -11
  21. data/lib/seam/resources/event.rb +133 -49
  22. data/lib/seam/resources/index.rb +0 -4
  23. data/lib/seam/resources/instant_key.rb +10 -2
  24. data/lib/seam/resources/phone.rb +44 -5
  25. data/lib/seam/resources/space.rb +20 -4
  26. data/lib/seam/resources/thermostat_daily_program.rb +8 -2
  27. data/lib/seam/resources/thermostat_schedule.rb +10 -2
  28. data/lib/seam/resources/unmanaged_access_code.rb +74 -5
  29. data/lib/seam/resources/unmanaged_access_grant.rb +90 -7
  30. data/lib/seam/resources/unmanaged_access_method.rb +49 -5
  31. data/lib/seam/resources/unmanaged_device.rb +99 -7
  32. data/lib/seam/resources/unmanaged_user_identity.rb +24 -3
  33. data/lib/seam/resources/user_identity.rb +24 -3
  34. data/lib/seam/resources/workspace.rb +14 -1
  35. data/lib/seam/version.rb +1 -1
  36. data/lib/seam.rb +1 -1
  37. metadata +3 -7
  38. data/lib/seam/resources/resource_error.rb +0 -11
  39. data/lib/seam/resources/resource_errors_support.rb +0 -11
  40. data/lib/seam/resources/resource_warning.rb +0 -11
  41. data/lib/seam/resources/resource_warnings_support.rb +0 -11
@@ -4,6 +4,1132 @@ module Seam
4
4
  module Resources
5
5
  # Represents a [device](https://docs.seam.co/core-concepts/devices) that has been connected to Seam.
6
6
  class Device < BaseResource
7
+ class DeviceManufacturer < BaseResource
8
+ # Display name for the manufacturer, such as `August`, `Yale`, `Salto`, and so on.
9
+ attr_accessor :display_name
10
+ # Image URL for the manufacturer logo.
11
+ attr_accessor :image_url
12
+ # Manufacturer identifier, such as `august`, `yale`, `salto`, and so on.
13
+ attr_accessor :manufacturer
14
+ end
15
+
16
+ class DeviceProvider < BaseResource
17
+ # Device provider name. Corresponds to the integration type, such as `august`, `schlage`, `yale_access`, and so on.
18
+ attr_accessor :device_provider_name
19
+ # Display name for the device provider type.
20
+ attr_accessor :display_name
21
+ # Image URL for the device provider.
22
+ attr_accessor :image_url
23
+ # Provider category. Indicates the third-party provider type, such as `stable`, for stable integrations, or `internal`, for internal integrations.
24
+ attr_accessor :provider_category
25
+ end
26
+
27
+ class Errors < BaseResource
28
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
29
+ attr_accessor :error_code
30
+ # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
31
+ attr_accessor :is_bridge_error
32
+ attr_accessor :is_connected_account_error
33
+ attr_accessor :is_device_error
34
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
35
+ attr_accessor :message
36
+ # Date and time at which Seam created the error.
37
+ date_accessor :created_at
38
+ end
39
+
40
+ class Location < BaseResource
41
+ # Name of the device location.
42
+ attr_accessor :location_name
43
+ # Time zone of the device location.
44
+ attr_accessor :time_zone
45
+ # Time zone of the device location.
46
+ # @deprecated Use `time_zone` instead.
47
+ attr_accessor :timezone
48
+ end
49
+
50
+ class Properties < BaseResource
51
+ class AccessoryKeypad < BaseResource
52
+ class Battery < BaseResource
53
+ attr_accessor :level
54
+ end
55
+
56
+ resource_accessor :battery, Battery
57
+ # Indicates if an accessory keypad is connected to the device.
58
+ attr_accessor :is_connected
59
+ end
60
+
61
+ class Appearance < BaseResource
62
+ # Name of the device as seen from the provider API and application, not settable through Seam.
63
+ attr_accessor :name
64
+ end
65
+
66
+ class Battery < BaseResource
67
+ # Battery charge level as a value between 0 and 1, inclusive.
68
+ attr_accessor :level
69
+ # 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.
70
+ attr_accessor :status
71
+ end
72
+
73
+ class Model < BaseResource
74
+ # @deprecated use device.properties.model.can_connect_accessory_keypad
75
+ attr_accessor :accessory_keypad_supported
76
+ # Indicates whether the device can connect a accessory keypad.
77
+ attr_accessor :can_connect_accessory_keypad
78
+ # Display name of the device model.
79
+ attr_accessor :display_name
80
+ # Indicates whether the device has a built in accessory keypad.
81
+ attr_accessor :has_built_in_keypad
82
+ # Display name that corresponds to the manufacturer-specific terminology for the device.
83
+ attr_accessor :manufacturer_display_name
84
+ # @deprecated use device.can_program_offline_access_codes.
85
+ attr_accessor :offline_access_codes_supported
86
+ # @deprecated use device.can_program_online_access_codes.
87
+ attr_accessor :online_access_codes_supported
88
+ end
89
+
90
+ class AssaAbloyCredentialServiceMetadata < BaseResource
91
+ class Endpoints < BaseResource
92
+ # ID of the associated endpoint.
93
+ attr_accessor :endpoint_id
94
+ # Indicated whether the endpoint is active.
95
+ attr_accessor :is_active
96
+ end
97
+
98
+ resource_list_accessor :endpoints, Endpoints
99
+ # Indicates whether the credential service has active endpoints associated with the phone.
100
+ attr_accessor :has_active_endpoint
101
+ end
102
+
103
+ class SaltoSpaceCredentialServiceMetadata < BaseResource
104
+ # Indicates whether the credential service has an active associated phone.
105
+ attr_accessor :has_active_phone
106
+ end
107
+
108
+ class AkilesMetadata < BaseResource
109
+ # Group ID to which to add users for an Akiles device.
110
+ attr_accessor :_member_group_id
111
+ # Gadget ID for an Akiles device.
112
+ attr_accessor :gadget_id
113
+ # Gadget name for an Akiles device.
114
+ attr_accessor :gadget_name
115
+ # Product name for an Akiles device.
116
+ attr_accessor :product_name
117
+ end
118
+
119
+ class AqaraMetadata < BaseResource
120
+ # Device name for an Aqara device.
121
+ attr_accessor :device_name
122
+ # Device ID (did) for an Aqara device.
123
+ attr_accessor :did
124
+ # Firmware version for an Aqara device.
125
+ attr_accessor :firmware_version
126
+ # Model identifier for an Aqara device.
127
+ attr_accessor :model
128
+ # Model type for an Aqara device.
129
+ attr_accessor :model_type
130
+ # Parent gateway device ID for an Aqara device.
131
+ attr_accessor :parent_did
132
+ # Position (room) ID for an Aqara device.
133
+ attr_accessor :position_id
134
+ # Time zone reported for an Aqara device (e.g. GMT-07:00).
135
+ attr_accessor :time_zone
136
+ end
137
+
138
+ class AssaAbloyVostioMetadata < BaseResource
139
+ # Encoder name for an ASSA ABLOY Vostio system.
140
+ attr_accessor :encoder_name
141
+ end
142
+
143
+ class AugustMetadata < BaseResource
144
+ # Indicates whether an August device has a keypad.
145
+ attr_accessor :has_keypad
146
+ # House ID for an August device.
147
+ attr_accessor :house_id
148
+ # House name for an August device.
149
+ attr_accessor :house_name
150
+ # Keypad battery level for an August device.
151
+ attr_accessor :keypad_battery_level
152
+ # Lock ID for an August device.
153
+ attr_accessor :lock_id
154
+ # Lock name for an August device.
155
+ attr_accessor :lock_name
156
+ # Model for an August device.
157
+ attr_accessor :model
158
+ end
159
+
160
+ class AvigilonAltaMetadata < BaseResource
161
+ # Entry name for an Avigilon Alta system.
162
+ attr_accessor :entry_name
163
+ # Total count of entry relays for an Avigilon Alta system.
164
+ attr_accessor :entry_relays_total_count
165
+ # Organization name for an Avigilon Alta system.
166
+ attr_accessor :org_name
167
+ # Site ID for an Avigilon Alta system.
168
+ attr_accessor :site_id
169
+ # Site name for an Avigilon Alta system.
170
+ attr_accessor :site_name
171
+ # Zone ID for an Avigilon Alta system.
172
+ attr_accessor :zone_id
173
+ # Zone name for an Avigilon Alta system.
174
+ attr_accessor :zone_name
175
+ end
176
+
177
+ class BrivoMetadata < BaseResource
178
+ # Indicates whether the Brivo access point has activation (remote unlock) enabled.
179
+ attr_accessor :activation_enabled
180
+ # Device name for a Brivo device.
181
+ attr_accessor :device_name
182
+ end
183
+
184
+ class ControlbywebMetadata < BaseResource
185
+ # Device ID for a ControlByWeb device.
186
+ attr_accessor :device_id
187
+ # Device name for a ControlByWeb device.
188
+ attr_accessor :device_name
189
+ # Relay name for a ControlByWeb device.
190
+ attr_accessor :relay_name
191
+ end
192
+
193
+ class DormakabaOracodeMetadata < BaseResource
194
+ class DeviceId < BaseResource
195
+ end
196
+
197
+ class PredefinedTimeSlots < BaseResource
198
+ # Check in time for a time slot for a dormakaba Oracode device.
199
+ attr_accessor :check_in_time
200
+ # Checkout time for a time slot for a dormakaba Oracode device.
201
+ attr_accessor :check_out_time
202
+ # ID of a user level for a dormakaba Oracode device.
203
+ attr_accessor :dormakaba_oracode_user_level_id
204
+ # Prefix for a user level for a dormakaba Oracode device.
205
+ attr_accessor :dormakaba_oracode_user_level_prefix
206
+ # Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot.
207
+ attr_accessor :is_24_hour
208
+ # Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode.
209
+ attr_accessor :is_biweekly_mode
210
+ # Indicates whether a time slot for a dormakaba Oracode device is a master time slot.
211
+ attr_accessor :is_master
212
+ # Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot.
213
+ attr_accessor :is_one_shot
214
+ # Name of a time slot for a dormakaba Oracode device.
215
+ attr_accessor :name
216
+ # Prefix for a time slot for a dormakaba Oracode device.
217
+ attr_accessor :prefix
218
+ end
219
+
220
+ resource_accessor :device_id, DeviceId
221
+ resource_list_accessor :predefined_time_slots, PredefinedTimeSlots
222
+ # Door ID for a dormakaba Oracode device.
223
+ attr_accessor :door_id
224
+ # Indicates whether a door is wireless for a dormakaba Oracode device.
225
+ attr_accessor :door_is_wireless
226
+ # Door name for a dormakaba Oracode device.
227
+ attr_accessor :door_name
228
+ # IANA time zone for a dormakaba Oracode device.
229
+ attr_accessor :iana_timezone
230
+ # Site ID for a dormakaba Oracode device.
231
+ # @deprecated Previously marked as "@DEPRECATED."
232
+ attr_accessor :site_id
233
+ # Site name for a dormakaba Oracode device.
234
+ attr_accessor :site_name
235
+ end
236
+
237
+ class EcobeeMetadata < BaseResource
238
+ # Device name for an ecobee device.
239
+ attr_accessor :device_name
240
+ # Device ID for an ecobee device.
241
+ attr_accessor :ecobee_device_id
242
+ end
243
+
244
+ class FourSuitesMetadata < BaseResource
245
+ # Device ID for a 4SUITES device.
246
+ attr_accessor :device_id
247
+ # Device name for a 4SUITES device.
248
+ attr_accessor :device_name
249
+ # Reclose delay, in seconds, for a 4SUITES device.
250
+ attr_accessor :reclose_delay_in_seconds
251
+ end
252
+
253
+ class GenieMetadata < BaseResource
254
+ # Lock name for a Genie device.
255
+ attr_accessor :device_name
256
+ # Door name for a Genie device.
257
+ attr_accessor :door_name
258
+ end
259
+
260
+ class HoneywellResideoMetadata < BaseResource
261
+ # Device name for a Honeywell Resideo device.
262
+ attr_accessor :device_name
263
+ # Device ID for a Honeywell Resideo device.
264
+ attr_accessor :honeywell_resideo_device_id
265
+ end
266
+
267
+ class IglooMetadata < BaseResource
268
+ # Bridge ID for an igloo device.
269
+ attr_accessor :bridge_id
270
+ # Device ID for an igloo device.
271
+ attr_accessor :device_id
272
+ # Model for an igloo device.
273
+ attr_accessor :model
274
+ end
275
+
276
+ class IgloohomeMetadata < BaseResource
277
+ # Bridge ID for an igloohome device.
278
+ attr_accessor :bridge_id
279
+ # Bridge name for an igloohome device.
280
+ attr_accessor :bridge_name
281
+ # Device ID for an igloohome device.
282
+ attr_accessor :device_id
283
+ # Device name for an igloohome device.
284
+ attr_accessor :device_name
285
+ # Indicates whether a keypad is linked to a bridge for an igloohome device.
286
+ attr_accessor :is_accessory_keypad_linked_to_bridge
287
+ # Keypad ID for an igloohome device.
288
+ attr_accessor :keypad_id
289
+ end
290
+
291
+ class KeynestMetadata < BaseResource
292
+ # Address for a KeyNest device.
293
+ attr_accessor :address
294
+ # Current or last store ID for a KeyNest device.
295
+ attr_accessor :current_or_last_store_id
296
+ # Current status for a KeyNest device.
297
+ attr_accessor :current_status
298
+ # Current user company for a KeyNest device.
299
+ attr_accessor :current_user_company
300
+ # Current user email for a KeyNest device.
301
+ attr_accessor :current_user_email
302
+ # Current user name for a KeyNest device.
303
+ attr_accessor :current_user_name
304
+ # Current user phone number for a KeyNest device.
305
+ attr_accessor :current_user_phone_number
306
+ # Default office ID for a KeyNest device.
307
+ attr_accessor :default_office_id
308
+ # Device name for a KeyNest device.
309
+ attr_accessor :device_name
310
+ # Fob ID for a KeyNest device.
311
+ attr_accessor :fob_id
312
+ # Handover method for a KeyNest device.
313
+ attr_accessor :handover_method
314
+ # Whether the KeyNest device has a photo.
315
+ attr_accessor :has_photo
316
+ # Whether the key is in a locker that does not support the access codes API.
317
+ attr_accessor :is_quadient_locker
318
+ # Key ID for a KeyNest device.
319
+ attr_accessor :key_id
320
+ # Key notes for a KeyNest device.
321
+ attr_accessor :key_notes
322
+ # KeyNest app user for a KeyNest device.
323
+ attr_accessor :keynest_app_user
324
+ # Last movement timestamp for a KeyNest device.
325
+ attr_accessor :last_movement
326
+ # Property ID for a KeyNest device.
327
+ attr_accessor :property_id
328
+ # Property postcode for a KeyNest device.
329
+ attr_accessor :property_postcode
330
+ # Status type for a KeyNest device.
331
+ attr_accessor :status_type
332
+ # Subscription plan for a KeyNest device.
333
+ attr_accessor :subscription_plan
334
+ end
335
+
336
+ class KisiMetadata < BaseResource
337
+ # Description for a Kisi device.
338
+ attr_accessor :description
339
+ # Lock ID for a Kisi device.
340
+ attr_accessor :lock_id
341
+ # Lock name for a Kisi device.
342
+ attr_accessor :lock_name
343
+ # Place name for a Kisi device.
344
+ attr_accessor :place_name
345
+ end
346
+
347
+ class KorelockMetadata < BaseResource
348
+ # Device ID for a Korelock device.
349
+ attr_accessor :device_id
350
+ # Device name for a Korelock device.
351
+ attr_accessor :device_name
352
+ # Firmware version for a Korelock device.
353
+ attr_accessor :firmware_version
354
+ # Location ID for a Korelock device. Required for timebound access codes.
355
+ attr_accessor :location_id
356
+ # Model code for a Korelock device.
357
+ attr_accessor :model_code
358
+ # Serial number for a Korelock device.
359
+ attr_accessor :serial_number
360
+ # WiFi signal strength (0-1) for a Korelock device.
361
+ attr_accessor :wifi_signal_strength
362
+ end
363
+
364
+ class KwiksetMetadata < BaseResource
365
+ # Device ID for a Kwikset device.
366
+ attr_accessor :device_id
367
+ # Device name for a Kwikset device.
368
+ attr_accessor :device_name
369
+ # Model number for a Kwikset device.
370
+ attr_accessor :model_number
371
+ end
372
+
373
+ class LocklyMetadata < BaseResource
374
+ # Device ID for a Lockly device.
375
+ attr_accessor :device_id
376
+ # Device name for a Lockly device.
377
+ attr_accessor :device_name
378
+ # Model for a Lockly device.
379
+ attr_accessor :model
380
+ end
381
+
382
+ class MinutMetadata < BaseResource
383
+ class LatestSensorValues < BaseResource
384
+ class AccelerometerZ < BaseResource
385
+ # Time of latest accelerometer Z-axis reading for a Minut device.
386
+ attr_accessor :time
387
+ # Value of latest accelerometer Z-axis reading for a Minut device.
388
+ attr_accessor :value
389
+ end
390
+
391
+ class Humidity < BaseResource
392
+ # Time of latest humidity reading for a Minut device.
393
+ attr_accessor :time
394
+ # Value of latest humidity reading for a Minut device.
395
+ attr_accessor :value
396
+ end
397
+
398
+ class Pressure < BaseResource
399
+ # Time of latest pressure reading for a Minut device.
400
+ attr_accessor :time
401
+ # Value of latest pressure reading for a Minut device.
402
+ attr_accessor :value
403
+ end
404
+
405
+ class Sound < BaseResource
406
+ # Time of latest sound reading for a Minut device.
407
+ attr_accessor :time
408
+ # Value of latest sound reading for a Minut device.
409
+ attr_accessor :value
410
+ end
411
+
412
+ class Temperature < BaseResource
413
+ # Time of latest temperature reading for a Minut device.
414
+ attr_accessor :time
415
+ # Value of latest temperature reading for a Minut device.
416
+ attr_accessor :value
417
+ end
418
+
419
+ resource_accessor :accelerometer_z, AccelerometerZ
420
+ resource_accessor :humidity, Humidity
421
+ resource_accessor :pressure, Pressure
422
+ resource_accessor :sound, Sound
423
+ resource_accessor :temperature, Temperature
424
+ end
425
+
426
+ resource_accessor :latest_sensor_values, LatestSensorValues
427
+ # Device ID for a Minut device.
428
+ attr_accessor :device_id
429
+ # Device name for a Minut device.
430
+ attr_accessor :device_name
431
+ end
432
+
433
+ class NestMetadata < BaseResource
434
+ # Custom device name for a Google Nest device. The device owner sets this value.
435
+ attr_accessor :device_custom_name
436
+ # Device name for a Google Nest device. Google sets this value.
437
+ attr_accessor :device_name
438
+ # Display name for a Google Nest device.
439
+ attr_accessor :display_name
440
+ # Device ID for a Google Nest device.
441
+ attr_accessor :nest_device_id
442
+ end
443
+
444
+ class NoiseawareMetadata < BaseResource
445
+ # Device ID for a NoiseAware device.
446
+ attr_accessor :device_id
447
+ # Device model for a NoiseAware device.
448
+ attr_accessor :device_model
449
+ # Device name for a NoiseAware device.
450
+ attr_accessor :device_name
451
+ # Noise level, in decibels, for a NoiseAware device.
452
+ attr_accessor :noise_level_decibel
453
+ # Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device.
454
+ attr_accessor :noise_level_nrs
455
+ end
456
+
457
+ class NukiMetadata < BaseResource
458
+ # Device ID for a Nuki device.
459
+ attr_accessor :device_id
460
+ # Device name for a Nuki device.
461
+ attr_accessor :device_name
462
+ # Indicates whether keypad 2 is paired for a Nuki device.
463
+ attr_accessor :keypad_2_paired
464
+ # Indicates whether the keypad battery is in a critical state for a Nuki device.
465
+ attr_accessor :keypad_battery_critical
466
+ # Indicates whether the keypad is paired for a Nuki device.
467
+ attr_accessor :keypad_paired
468
+ end
469
+
470
+ class OmnitecMetadata < BaseResource
471
+ # Whether the Omnitec lock has a connected gateway for remote operations.
472
+ attr_accessor :has_gateway
473
+ # Operator-assigned alias for an Omnitec device.
474
+ attr_accessor :lock_alias
475
+ # Lock ID for an Omnitec device.
476
+ attr_accessor :lock_id
477
+ # Bluetooth MAC address for an Omnitec device.
478
+ attr_accessor :lock_mac
479
+ # Lock name for an Omnitec device.
480
+ attr_accessor :lock_name
481
+ # IANA time zone for the Omnitec device, used to schedule time-bound access codes at the correct local time (accounting for DST).
482
+ attr_accessor :time_zone
483
+ # Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST.
484
+ attr_accessor :timezone_raw_offset_ms
485
+ end
486
+
487
+ class RingMetadata < BaseResource
488
+ # Device ID for a Ring device.
489
+ attr_accessor :device_id
490
+ # Device name for a Ring device.
491
+ attr_accessor :device_name
492
+ end
493
+
494
+ class SaltoKsMetadata < BaseResource
495
+ # Battery level for a Salto KS device.
496
+ attr_accessor :battery_level
497
+ # Customer reference for a Salto KS device.
498
+ attr_accessor :customer_reference
499
+ # Indicates whether the site has a Salto KS subscription that supports custom PINs.
500
+ attr_accessor :has_custom_pin_subscription
501
+ # Lock ID for a Salto KS device.
502
+ attr_accessor :lock_id
503
+ # Lock type for a Salto KS device.
504
+ attr_accessor :lock_type
505
+ # Locked state for a Salto KS device.
506
+ attr_accessor :locked_state
507
+ # Model for a Salto KS device.
508
+ attr_accessor :model
509
+ # Site ID for the Salto KS site to which the device belongs.
510
+ attr_accessor :site_id
511
+ # Site name for the Salto KS site to which the device belongs.
512
+ attr_accessor :site_name
513
+ end
514
+
515
+ class SaltoMetadata < BaseResource
516
+ # Battery level for a Salto device.
517
+ attr_accessor :battery_level
518
+ # Customer reference for a Salto device.
519
+ attr_accessor :customer_reference
520
+ # Lock ID for a Salto device.
521
+ attr_accessor :lock_id
522
+ # Lock type for a Salto device.
523
+ attr_accessor :lock_type
524
+ # Locked state for a Salto device.
525
+ attr_accessor :locked_state
526
+ # Model for a Salto device.
527
+ attr_accessor :model
528
+ # Site ID for the Salto KS site to which the device belongs.
529
+ attr_accessor :site_id
530
+ # Site name for the Salto KS site to which the device belongs.
531
+ attr_accessor :site_name
532
+ end
533
+
534
+ class SchlageMetadata < BaseResource
535
+ # Device ID for a Schlage device.
536
+ attr_accessor :device_id
537
+ # Device name for a Schlage device.
538
+ attr_accessor :device_name
539
+ # Model for a Schlage device.
540
+ attr_accessor :model
541
+ end
542
+
543
+ class SeamBridgeMetadata < BaseResource
544
+ # Device number for Seam Bridge.
545
+ attr_accessor :device_num
546
+ # Name for Seam Bridge.
547
+ attr_accessor :name
548
+ # Unlock method for Seam Bridge.
549
+ attr_accessor :unlock_method
550
+ end
551
+
552
+ class SensiMetadata < BaseResource
553
+ # Device ID for a Sensi device.
554
+ attr_accessor :device_id
555
+ # Device name for a Sensi device.
556
+ attr_accessor :device_name
557
+ # Set to true when the device does not support the /dual-setpoints API endpoint.
558
+ attr_accessor :dual_setpoints_not_supported
559
+ # Product type for a Sensi device.
560
+ attr_accessor :product_type
561
+ end
562
+
563
+ class SmartthingsMetadata < BaseResource
564
+ # Device ID for a SmartThings device.
565
+ attr_accessor :device_id
566
+ # Device name for a SmartThings device.
567
+ attr_accessor :device_name
568
+ # Location ID for a SmartThings device.
569
+ attr_accessor :location_id
570
+ # Model for a SmartThings device.
571
+ attr_accessor :model
572
+ end
573
+
574
+ class TadoMetadata < BaseResource
575
+ # Device type for a tado° device.
576
+ attr_accessor :device_type
577
+ # Serial number for a tado° device.
578
+ attr_accessor :serial_no
579
+ end
580
+
581
+ class TedeeMetadata < BaseResource
582
+ # Bridge ID for a Tedee device.
583
+ attr_accessor :bridge_id
584
+ # Bridge name for a Tedee device.
585
+ attr_accessor :bridge_name
586
+ # Device ID for a Tedee device.
587
+ attr_accessor :device_id
588
+ # Device model for a Tedee device.
589
+ attr_accessor :device_model
590
+ # Device name for a Tedee device.
591
+ attr_accessor :device_name
592
+ # Keypad ID for a Tedee device.
593
+ attr_accessor :keypad_id
594
+ # Serial number for a Tedee device.
595
+ attr_accessor :serial_number
596
+ end
597
+
598
+ class TtlockMetadata < BaseResource
599
+ class Features < BaseResource
600
+ # Indicates whether a TTLock device supports auto-lock time configuration.
601
+ attr_accessor :auto_lock_time_config
602
+ # Indicates whether a TTLock device supports an incomplete keyboard passcode.
603
+ attr_accessor :incomplete_keyboard_passcode
604
+ # Indicates whether a TTLock device supports the lock command.
605
+ attr_accessor :lock_command
606
+ # Indicates whether a TTLock device supports a passcode.
607
+ attr_accessor :passcode
608
+ # Indicates whether a TTLock device supports passcode management.
609
+ attr_accessor :passcode_management
610
+ # Indicates whether a TTLock device supports unlock via gateway.
611
+ attr_accessor :unlock_via_gateway
612
+ # Indicates whether a TTLock device supports Wi-Fi.
613
+ attr_accessor :wifi
614
+ end
615
+
616
+ class WirelessKeypads < BaseResource
617
+ # ID for a wireless keypad for a TTLock device.
618
+ attr_accessor :wireless_keypad_id
619
+ # Name for a wireless keypad for a TTLock device.
620
+ attr_accessor :wireless_keypad_name
621
+ end
622
+
623
+ resource_accessor :features, Features
624
+ resource_list_accessor :wireless_keypads, WirelessKeypads
625
+ # Feature value for a TTLock device.
626
+ attr_accessor :feature_value
627
+ # Indicates whether a TTLock device has a gateway.
628
+ attr_accessor :has_gateway
629
+ # Lock alias for a TTLock device.
630
+ attr_accessor :lock_alias
631
+ # Lock ID for a TTLock device.
632
+ attr_accessor :lock_id
633
+ # Lock-side timezone offset in milliseconds east of UTC, as configured in the TTLock app. Source of truth for the lock's wall-clock interpretation of access code start/end times — a misconfigured value here is the typical cause of customer "codes offset by N hours" reports. Diagnostic only; Seam does not convert times based on this value.
634
+ attr_accessor :timezone_raw_offset_ms
635
+ end
636
+
637
+ class TwoNMetadata < BaseResource
638
+ # Device ID for a 2N device.
639
+ attr_accessor :device_id
640
+ # Device name for a 2N device.
641
+ attr_accessor :device_name
642
+ end
643
+
644
+ class UltraloqMetadata < BaseResource
645
+ # Device ID for an Ultraloq device.
646
+ attr_accessor :device_id
647
+ # Device name for an Ultraloq device.
648
+ attr_accessor :device_name
649
+ # Device type for an Ultraloq device.
650
+ attr_accessor :device_type
651
+ # IANA timezone for the Ultraloq device.
652
+ attr_accessor :time_zone
653
+ end
654
+
655
+ class VisionlineMetadata < BaseResource
656
+ # Encoder ID for an ASSA ABLOY Visionline system.
657
+ attr_accessor :encoder_id
658
+ end
659
+
660
+ class WyzeMetadata < BaseResource
661
+ # Device ID for a Wyze device.
662
+ attr_accessor :device_id
663
+ # Device information model for a Wyze device.
664
+ attr_accessor :device_info_model
665
+ # Device name for a Wyze device.
666
+ attr_accessor :device_name
667
+ # Keypad UUID for a Wyze device.
668
+ attr_accessor :keypad_uuid
669
+ # Locker status (hardlock) for a Wyze device.
670
+ attr_accessor :locker_status_hardlock
671
+ # Product model for a Wyze device.
672
+ attr_accessor :product_model
673
+ # Product name for a Wyze device.
674
+ attr_accessor :product_name
675
+ # Product type for a Wyze device.
676
+ attr_accessor :product_type
677
+ end
678
+
679
+ class CodeConstraints < BaseResource
680
+ attr_accessor :constraint_type
681
+ # Maximum name length constraint for access codes.
682
+ attr_accessor :max_length
683
+ # Minimum name length constraint for access codes.
684
+ attr_accessor :min_length
685
+ end
686
+
687
+ class KeypadBattery < BaseResource
688
+ # Keypad battery charge level.
689
+ attr_accessor :level
690
+ end
691
+
692
+ class OfflineTimeFrameOptions < BaseResource
693
+ class TimePairs < BaseResource
694
+ # Label for the start/end time pairing.
695
+ attr_accessor :display_name
696
+ # End time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. An `end_time` earlier on the clock than `start_time` means the end falls on a later date.
697
+ attr_accessor :end_time
698
+ # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`.
699
+ attr_accessor :start_time
700
+ end
701
+
702
+ resource_list_accessor :time_pairs, TimePairs
703
+ # Label for this option. For a single-option device, the product name (for example, `algoPIN` or `SmartPIN`); for a multi-option device, a label that distinguishes it (for example, `Hourly` or `Fixed start times`).
704
+ attr_accessor :display_name
705
+ # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules.
706
+ attr_accessor :end_date_recurrence_rule
707
+ # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`.
708
+ attr_accessor :matching_start_end_time
709
+ # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum.
710
+ attr_accessor :max_duration
711
+ # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum.
712
+ attr_accessor :min_duration
713
+ # iCalendar recurrence rule (RRULE) that the start date must fall on (for example, `FREQ=MONTHLY;BYDAY=1MO,3MO`). Constrains which calendar dates are selectable, independent of the time-of-day rules.
714
+ attr_accessor :start_date_recurrence_rule
715
+ # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates.
716
+ attr_accessor :time_zone
717
+ end
718
+
719
+ class OnlineTimeFrameOptions < BaseResource
720
+ class TimePairs < BaseResource
721
+ # Label for the start/end time pairing.
722
+ attr_accessor :display_name
723
+ # End time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`. An `end_time` earlier on the clock than `start_time` means the end falls on a later date.
724
+ attr_accessor :end_time
725
+ # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`.
726
+ attr_accessor :start_time
727
+ end
728
+
729
+ resource_list_accessor :time_pairs, TimePairs
730
+ # Label for this option. For a single-option device, the product name (for example, `algoPIN` or `SmartPIN`); for a multi-option device, a label that distinguishes it (for example, `Hourly` or `Fixed start times`).
731
+ attr_accessor :display_name
732
+ # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules.
733
+ attr_accessor :end_date_recurrence_rule
734
+ # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`.
735
+ attr_accessor :matching_start_end_time
736
+ # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum.
737
+ attr_accessor :max_duration
738
+ # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum.
739
+ attr_accessor :min_duration
740
+ # iCalendar recurrence rule (RRULE) that the start date must fall on (for example, `FREQ=MONTHLY;BYDAY=1MO,3MO`). Constrains which calendar dates are selectable, independent of the time-of-day rules.
741
+ attr_accessor :start_date_recurrence_rule
742
+ # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates.
743
+ attr_accessor :time_zone
744
+ end
745
+
746
+ class ActiveThermostatSchedule < BaseResource
747
+ class Errors < BaseResource
748
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
749
+ attr_accessor :error_code
750
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
751
+ attr_accessor :message
752
+ # Date and time at which Seam created the error.
753
+ date_accessor :created_at
754
+ end
755
+
756
+ resource_list_accessor :errors, Errors
757
+ # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
758
+ attr_accessor :climate_preset_key
759
+ # ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.
760
+ attr_accessor :device_id
761
+ # Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.
762
+ attr_accessor :is_override_allowed
763
+ # Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
764
+ attr_accessor :max_override_period_minutes
765
+ # User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
766
+ attr_accessor :name
767
+ # ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
768
+ attr_accessor :thermostat_schedule_id
769
+ # ID of the workspace that contains the thermostat schedule.
770
+ attr_accessor :workspace_id
771
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.
772
+ date_accessor :created_at
773
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
774
+ date_accessor :ends_at
775
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
776
+ date_accessor :starts_at
777
+ end
778
+
779
+ class AvailableClimatePresets < BaseResource
780
+ class EcobeeMetadata < BaseResource
781
+ # Reference to the Ecobee climate, if applicable.
782
+ attr_accessor :climate_ref
783
+ # Indicates if the climate preset is optimized by Ecobee.
784
+ attr_accessor :is_optimized
785
+ # Indicates whether the climate preset is owned by the user or the system.
786
+ attr_accessor :owner
787
+ end
788
+
789
+ resource_accessor :ecobee_metadata, EcobeeMetadata
790
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
791
+ attr_accessor :can_delete
792
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
793
+ attr_accessor :can_edit
794
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
795
+ attr_accessor :can_use_with_thermostat_daily_programs
796
+ # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
797
+ attr_accessor :climate_preset_key
798
+ # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
799
+ attr_accessor :climate_preset_mode
800
+ # 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).
801
+ attr_accessor :cooling_set_point_celsius
802
+ # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
803
+ attr_accessor :cooling_set_point_fahrenheit
804
+ # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
805
+ attr_accessor :display_name
806
+ # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
807
+ attr_accessor :fan_mode_setting
808
+ # 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).
809
+ attr_accessor :heating_set_point_celsius
810
+ # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
811
+ attr_accessor :heating_set_point_fahrenheit
812
+ # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
813
+ attr_accessor :hvac_mode_setting
814
+ # 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).
815
+ # @deprecated Use 'thermostat_schedule.is_override_allowed'
816
+ attr_accessor :manual_override_allowed
817
+ # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
818
+ attr_accessor :name
819
+ end
820
+
821
+ class CurrentClimateSetting < BaseResource
822
+ class EcobeeMetadata < BaseResource
823
+ # Reference to the Ecobee climate, if applicable.
824
+ attr_accessor :climate_ref
825
+ # Indicates if the climate preset is optimized by Ecobee.
826
+ attr_accessor :is_optimized
827
+ # Indicates whether the climate preset is owned by the user or the system.
828
+ attr_accessor :owner
829
+ end
830
+
831
+ resource_accessor :ecobee_metadata, EcobeeMetadata
832
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
833
+ attr_accessor :can_delete
834
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
835
+ attr_accessor :can_edit
836
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
837
+ attr_accessor :can_use_with_thermostat_daily_programs
838
+ # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
839
+ attr_accessor :climate_preset_key
840
+ # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
841
+ attr_accessor :climate_preset_mode
842
+ # 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).
843
+ attr_accessor :cooling_set_point_celsius
844
+ # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
845
+ attr_accessor :cooling_set_point_fahrenheit
846
+ # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
847
+ attr_accessor :display_name
848
+ # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
849
+ attr_accessor :fan_mode_setting
850
+ # 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).
851
+ attr_accessor :heating_set_point_celsius
852
+ # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
853
+ attr_accessor :heating_set_point_fahrenheit
854
+ # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
855
+ attr_accessor :hvac_mode_setting
856
+ # 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).
857
+ # @deprecated Use 'thermostat_schedule.is_override_allowed'
858
+ attr_accessor :manual_override_allowed
859
+ # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
860
+ attr_accessor :name
861
+ end
862
+
863
+ class DefaultClimateSetting < BaseResource
864
+ class EcobeeMetadata < BaseResource
865
+ # Reference to the Ecobee climate, if applicable.
866
+ attr_accessor :climate_ref
867
+ # Indicates if the climate preset is optimized by Ecobee.
868
+ attr_accessor :is_optimized
869
+ # Indicates whether the climate preset is owned by the user or the system.
870
+ attr_accessor :owner
871
+ end
872
+
873
+ resource_accessor :ecobee_metadata, EcobeeMetadata
874
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
875
+ attr_accessor :can_delete
876
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
877
+ attr_accessor :can_edit
878
+ # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be programmed in a thermostat daily program.
879
+ attr_accessor :can_use_with_thermostat_daily_programs
880
+ # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
881
+ attr_accessor :climate_preset_key
882
+ # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
883
+ attr_accessor :climate_preset_mode
884
+ # 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).
885
+ attr_accessor :cooling_set_point_celsius
886
+ # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
887
+ attr_accessor :cooling_set_point_fahrenheit
888
+ # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
889
+ attr_accessor :display_name
890
+ # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
891
+ attr_accessor :fan_mode_setting
892
+ # 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).
893
+ attr_accessor :heating_set_point_celsius
894
+ # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
895
+ attr_accessor :heating_set_point_fahrenheit
896
+ # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
897
+ attr_accessor :hvac_mode_setting
898
+ # 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).
899
+ # @deprecated Use 'thermostat_schedule.is_override_allowed'
900
+ attr_accessor :manual_override_allowed
901
+ # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
902
+ attr_accessor :name
903
+ end
904
+
905
+ class TemperatureThreshold < BaseResource
906
+ # Lower limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
907
+ attr_accessor :lower_limit_celsius
908
+ # Lower limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
909
+ attr_accessor :lower_limit_fahrenheit
910
+ # Upper limit in °C within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
911
+ attr_accessor :upper_limit_celsius
912
+ # Upper limit in °F within the current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
913
+ attr_accessor :upper_limit_fahrenheit
914
+ end
915
+
916
+ class ThermostatDailyPrograms < BaseResource
917
+ class Periods < BaseResource
918
+ # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.
919
+ attr_accessor :climate_preset_key
920
+ # Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
921
+ attr_accessor :starts_at_time
922
+ end
923
+
924
+ resource_list_accessor :periods, Periods
925
+ # ID of the thermostat device on which the thermostat daily program is configured.
926
+ attr_accessor :device_id
927
+ # User-friendly name to identify the thermostat daily program.
928
+ attr_accessor :name
929
+ # ID of the thermostat daily program.
930
+ attr_accessor :thermostat_daily_program_id
931
+ # ID of the workspace that contains the thermostat daily program.
932
+ attr_accessor :workspace_id
933
+ # Date and time at which the thermostat daily program was created.
934
+ date_accessor :created_at
935
+ end
936
+
937
+ class ThermostatWeeklyProgram < BaseResource
938
+ # ID of the thermostat daily program to run on Fridays.
939
+ attr_accessor :friday_program_id
940
+ # ID of the thermostat daily program to run on Mondays.
941
+ attr_accessor :monday_program_id
942
+ # ID of the thermostat daily program to run on Saturdays.
943
+ attr_accessor :saturday_program_id
944
+ # ID of the thermostat daily program to run on Sundays.
945
+ attr_accessor :sunday_program_id
946
+ # ID of the thermostat daily program to run on Thursdays.
947
+ attr_accessor :thursday_program_id
948
+ # ID of the thermostat daily program to run on Tuesdays.
949
+ attr_accessor :tuesday_program_id
950
+ # ID of the thermostat daily program to run on Wednesdays.
951
+ attr_accessor :wednesday_program_id
952
+ # Date and time at which the thermostat weekly program was created.
953
+ date_accessor :created_at
954
+ end
955
+
956
+ resource_accessor :accessory_keypad, AccessoryKeypad
957
+ resource_accessor :appearance, Appearance
958
+ resource_accessor :battery, Battery
959
+ resource_accessor :model, Model
960
+ resource_accessor :assa_abloy_credential_service_metadata, AssaAbloyCredentialServiceMetadata
961
+ resource_accessor :salto_space_credential_service_metadata, SaltoSpaceCredentialServiceMetadata
962
+ resource_accessor :akiles_metadata, AkilesMetadata
963
+ resource_accessor :aqara_metadata, AqaraMetadata
964
+ resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata
965
+ resource_accessor :august_metadata, AugustMetadata
966
+ resource_accessor :avigilon_alta_metadata, AvigilonAltaMetadata
967
+ resource_accessor :brivo_metadata, BrivoMetadata
968
+ resource_accessor :controlbyweb_metadata, ControlbywebMetadata
969
+ resource_accessor :dormakaba_oracode_metadata, DormakabaOracodeMetadata
970
+ resource_accessor :ecobee_metadata, EcobeeMetadata
971
+ resource_accessor :four_suites_metadata, FourSuitesMetadata
972
+ resource_accessor :genie_metadata, GenieMetadata
973
+ resource_accessor :honeywell_resideo_metadata, HoneywellResideoMetadata
974
+ resource_accessor :igloo_metadata, IglooMetadata
975
+ resource_accessor :igloohome_metadata, IgloohomeMetadata
976
+ resource_accessor :keynest_metadata, KeynestMetadata
977
+ resource_accessor :kisi_metadata, KisiMetadata
978
+ resource_accessor :korelock_metadata, KorelockMetadata
979
+ resource_accessor :kwikset_metadata, KwiksetMetadata
980
+ resource_accessor :lockly_metadata, LocklyMetadata
981
+ resource_accessor :minut_metadata, MinutMetadata
982
+ resource_accessor :nest_metadata, NestMetadata
983
+ resource_accessor :noiseaware_metadata, NoiseawareMetadata
984
+ resource_accessor :nuki_metadata, NukiMetadata
985
+ resource_accessor :omnitec_metadata, OmnitecMetadata
986
+ resource_accessor :ring_metadata, RingMetadata
987
+ resource_accessor :salto_ks_metadata, SaltoKsMetadata
988
+ resource_accessor :salto_metadata, SaltoMetadata
989
+ resource_accessor :schlage_metadata, SchlageMetadata
990
+ resource_accessor :seam_bridge_metadata, SeamBridgeMetadata
991
+ resource_accessor :sensi_metadata, SensiMetadata
992
+ resource_accessor :smartthings_metadata, SmartthingsMetadata
993
+ resource_accessor :tado_metadata, TadoMetadata
994
+ resource_accessor :tedee_metadata, TedeeMetadata
995
+ resource_accessor :ttlock_metadata, TtlockMetadata
996
+ resource_accessor :two_n_metadata, TwoNMetadata
997
+ resource_accessor :ultraloq_metadata, UltraloqMetadata
998
+ resource_accessor :visionline_metadata, VisionlineMetadata
999
+ resource_accessor :wyze_metadata, WyzeMetadata
1000
+ resource_accessor :keypad_battery, KeypadBattery
1001
+ resource_accessor :active_thermostat_schedule, ActiveThermostatSchedule
1002
+ resource_accessor :current_climate_setting, CurrentClimateSetting
1003
+ resource_accessor :default_climate_setting, DefaultClimateSetting
1004
+ resource_accessor :temperature_threshold, TemperatureThreshold
1005
+ resource_accessor :thermostat_weekly_program, ThermostatWeeklyProgram
1006
+ resource_list_accessor :code_constraints, CodeConstraints
1007
+ resource_list_accessor :offline_time_frame_options, OfflineTimeFrameOptions
1008
+ resource_list_accessor :online_time_frame_options, OnlineTimeFrameOptions
1009
+ resource_list_accessor :available_climate_presets, AvailableClimatePresets
1010
+ resource_list_accessor :thermostat_daily_programs, ThermostatDailyPrograms
1011
+ # Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
1012
+ attr_accessor :battery_level
1013
+ # Array of noise threshold IDs that are currently triggering.
1014
+ attr_accessor :currently_triggering_noise_threshold_ids
1015
+ # Indicates whether the device has direct power.
1016
+ attr_accessor :has_direct_power
1017
+ # Alt text for the device image.
1018
+ attr_accessor :image_alt_text
1019
+ # Image URL for the device.
1020
+ attr_accessor :image_url
1021
+ # Manufacturer of the device. When a device, such as a smart lock, is connected through a smart hub, the manufacturer of the device might be different from that of the smart hub.
1022
+ attr_accessor :manufacturer
1023
+ # Name of the device.
1024
+ # @deprecated use device.display_name instead
1025
+ attr_accessor :name
1026
+ # Indicates current noise level in decibels, if the device supports noise detection.
1027
+ attr_accessor :noise_level_decibels
1028
+ # Indicates whether it is currently possible to use offline access codes for the device.
1029
+ # @deprecated use device.can_program_offline_access_codes
1030
+ attr_accessor :offline_access_codes_enabled
1031
+ # Indicates whether the device is online.
1032
+ attr_accessor :online
1033
+ # Indicates whether it is currently possible to use online access codes for the device.
1034
+ # @deprecated use device.can_program_online_access_codes
1035
+ attr_accessor :online_access_codes_enabled
1036
+ # Serial number of the device.
1037
+ attr_accessor :serial_number
1038
+ # @deprecated use device.properties.model.can_connect_accessory_keypad
1039
+ attr_accessor :supports_accessory_keypad
1040
+ # @deprecated use offline_access_codes_enabled
1041
+ attr_accessor :supports_offline_access_codes
1042
+ # The delay in seconds before the lock automatically locks after being unlocked.
1043
+ attr_accessor :auto_lock_delay_seconds
1044
+ # Indicates whether automatic locking is enabled.
1045
+ attr_accessor :auto_lock_enabled
1046
+ # Indicates whether the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is currently enabled for the device. To disable it, set this to `false` using [/devices/update](https://docs.seam.co/api/devices/update).
1047
+ attr_accessor :backup_access_code_pool_enabled
1048
+ # Indicates whether the door is open.
1049
+ attr_accessor :door_open
1050
+ # Indicates whether the device supports native entry events.
1051
+ attr_accessor :has_native_entry_events
1052
+ # Indicates whether the lock is locked.
1053
+ attr_accessor :locked
1054
+ # Maximum number of active access codes that the device supports.
1055
+ attr_accessor :max_active_codes_supported
1056
+ # Supported code lengths for access codes.
1057
+ attr_accessor :supported_code_lengths
1058
+ # Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).
1059
+ attr_accessor :supports_backup_access_code_pool
1060
+ # ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1061
+ attr_accessor :active_thermostat_schedule_id
1062
+ # Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
1063
+ attr_accessor :available_climate_preset_modes
1064
+ # Fan mode settings that the thermostat supports.
1065
+ attr_accessor :available_fan_mode_settings
1066
+ # HVAC mode settings that the thermostat supports.
1067
+ attr_accessor :available_hvac_mode_settings
1068
+ # 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.
1069
+ attr_accessor :fallback_climate_preset_key
1070
+ # @deprecated Use `current_climate_setting.fan_mode_setting` instead.
1071
+ attr_accessor :fan_mode_setting
1072
+ # Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
1073
+ attr_accessor :is_cooling
1074
+ # Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat.
1075
+ attr_accessor :is_fan_running
1076
+ # Indicates whether the connected HVAC system is currently heating, as reported by the thermostat.
1077
+ attr_accessor :is_heating
1078
+ # Indicates whether the current thermostat settings differ from the most recent active program or schedule that Seam activated. For this condition to occur, `current_climate_setting.manual_override_allowed` must also be `true`.
1079
+ attr_accessor :is_temporary_manual_override_active
1080
+ # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
1081
+ attr_accessor :max_cooling_set_point_celsius
1082
+ # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
1083
+ attr_accessor :max_cooling_set_point_fahrenheit
1084
+ # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
1085
+ attr_accessor :max_heating_set_point_celsius
1086
+ # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
1087
+ attr_accessor :max_heating_set_point_fahrenheit
1088
+ # Maximum number of periods that the thermostat can support per day. For example, if the thermostat supports 4 periods per day, this value is 4.
1089
+ attr_accessor :max_thermostat_daily_program_periods_per_day
1090
+ # Maximum number of climate presets that the thermostat can support for weekly programming.
1091
+ attr_accessor :max_unique_climate_presets_per_thermostat_weekly_program
1092
+ # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
1093
+ attr_accessor :min_cooling_set_point_celsius
1094
+ # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
1095
+ attr_accessor :min_cooling_set_point_fahrenheit
1096
+ # Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °C between the cooling and heating set points when in heat-cool (auto) mode.
1097
+ attr_accessor :min_heating_cooling_delta_celsius
1098
+ # Minimum [temperature difference](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#minimum-heating-cooling-temperature-delta) in °F between the cooling and heating set points when in heat-cool (auto) mode.
1099
+ attr_accessor :min_heating_cooling_delta_fahrenheit
1100
+ # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
1101
+ attr_accessor :min_heating_set_point_celsius
1102
+ # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
1103
+ attr_accessor :min_heating_set_point_fahrenheit
1104
+ # Reported relative humidity, as a value between 0 and 1, inclusive.
1105
+ attr_accessor :relative_humidity
1106
+ # Reported temperature in °C.
1107
+ attr_accessor :temperature_celsius
1108
+ # Reported temperature in °F.
1109
+ attr_accessor :temperature_fahrenheit
1110
+ # Precision of the thermostat's period in minutes. For example, if the thermostat supports 15-minute periods, this value is 15. All values are relative to the top of the hour, so for 15 minutes, the periods would be 0, 15, 30, and 45 minutes past the hour.
1111
+ attr_accessor :thermostat_daily_program_period_precision_minutes
1112
+ end
1113
+
1114
+ class Warnings < BaseResource
1115
+ # Number of active access codes on the device when the warning was set.
1116
+ attr_accessor :active_access_code_count
1117
+ # Maximum number of active access codes supported by the device.
1118
+ attr_accessor :max_active_access_code_count
1119
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
1120
+ attr_accessor :message
1121
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
1122
+ attr_accessor :warning_code
1123
+ # Date and time at which Seam created the warning.
1124
+ date_accessor :created_at
1125
+ end
1126
+
1127
+ resource_accessor :device_manufacturer, DeviceManufacturer
1128
+ resource_accessor :device_provider, DeviceProvider
1129
+ resource_accessor :location, Location
1130
+ resource_accessor :properties, Properties
1131
+ resource_list_accessor :errors, Errors
1132
+ resource_list_accessor :warnings, Warnings
7
1133
  # Indicates whether the lock supports configuring automatic locking.
8
1134
  attr_accessor :can_configure_auto_lock
9
1135
  # Indicates whether the thermostat supports cooling.
@@ -52,22 +1178,14 @@ module Seam
52
1178
  attr_accessor :custom_metadata
53
1179
  # ID of the device.
54
1180
  attr_accessor :device_id
55
- # Manufacturer of the device. Represents the hardware brand, which may differ from the provider.
56
- attr_accessor :device_manufacturer
57
- # Provider of the device. Represents the third-party service through which the device is controlled.
58
- attr_accessor :device_provider
59
1181
  # Type of the device.
60
1182
  attr_accessor :device_type
61
1183
  # 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.
62
1184
  attr_accessor :display_name
63
1185
  # Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).
64
1186
  attr_accessor :is_managed
65
- # Location information for the device.
66
- attr_accessor :location
67
1187
  # Optional nickname to describe the device, settable through Seam.
68
1188
  attr_accessor :nickname
69
- # Properties of the device.
70
- attr_accessor :properties
71
1189
  # IDs of the spaces the device is in.
72
1190
  attr_accessor :space_ids
73
1191
  # Unique identifier for the Seam workspace associated with the device.
@@ -75,9 +1193,6 @@ module Seam
75
1193
 
76
1194
  # Date and time at which the device object was created.
77
1195
  date_accessor :created_at
78
-
79
- include Seam::Resources::ResourceErrorsSupport
80
- include Seam::Resources::ResourceWarningsSupport
81
1196
  end
82
1197
  end
83
1198
  end