seam 2.139.0 → 2.141.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 (87) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +69 -66
  3. data/README.md +86 -0
  4. data/lib/seam/http_without_workspace.rb +4 -4
  5. data/lib/seam/null.rb +23 -0
  6. data/lib/seam/paginator.rb +4 -1
  7. data/lib/seam/request.rb +49 -1
  8. data/lib/seam/resources/access_code.rb +74 -0
  9. data/lib/seam/resources/access_grant.rb +60 -0
  10. data/lib/seam/resources/access_method.rb +39 -0
  11. data/lib/seam/resources/acs_access_group.rb +45 -0
  12. data/lib/seam/resources/acs_credential.rb +67 -0
  13. data/lib/seam/resources/acs_encoder.rb +11 -0
  14. data/lib/seam/resources/acs_entrance.rb +95 -0
  15. data/lib/seam/resources/acs_system.rb +36 -0
  16. data/lib/seam/resources/acs_user.rb +66 -0
  17. data/lib/seam/resources/action_attempt.rb +192 -0
  18. data/lib/seam/resources/batch.rb +24 -0
  19. data/lib/seam/resources/client_session.rb +12 -0
  20. data/lib/seam/resources/connect_webview.rb +19 -0
  21. data/lib/seam/resources/connected_account.rb +50 -0
  22. data/lib/seam/resources/customer_portal.rb +5 -0
  23. data/lib/seam/resources/device.rb +622 -4
  24. data/lib/seam/resources/device_provider.rb +24 -0
  25. data/lib/seam/resources/event.rb +142 -3
  26. data/lib/seam/resources/instant_key.rb +13 -0
  27. data/lib/seam/resources/noise_threshold.rb +7 -0
  28. data/lib/seam/resources/pagination.rb +3 -0
  29. data/lib/seam/resources/phone.rb +29 -0
  30. data/lib/seam/resources/space.rb +19 -0
  31. data/lib/seam/resources/thermostat_daily_program.rb +9 -0
  32. data/lib/seam/resources/thermostat_schedule.rb +15 -0
  33. data/lib/seam/resources/unmanaged_access_code.rb +51 -0
  34. data/lib/seam/resources/unmanaged_access_grant.rb +56 -0
  35. data/lib/seam/resources/unmanaged_access_method.rb +36 -0
  36. data/lib/seam/resources/unmanaged_device.rb +80 -0
  37. data/lib/seam/resources/unmanaged_user_identity.rb +20 -0
  38. data/lib/seam/resources/user_identity.rb +21 -0
  39. data/lib/seam/resources/webhook.rb +4 -0
  40. data/lib/seam/resources/workspace.rb +15 -0
  41. data/lib/seam/routes/access_codes.rb +79 -79
  42. data/lib/seam/routes/access_codes_simulate.rb +3 -3
  43. data/lib/seam/routes/access_codes_unmanaged.rb +27 -23
  44. data/lib/seam/routes/access_grants.rb +57 -45
  45. data/lib/seam/routes/access_grants_unmanaged.rb +13 -13
  46. data/lib/seam/routes/access_methods.rb +32 -24
  47. data/lib/seam/routes/access_methods_unmanaged.rb +7 -7
  48. data/lib/seam/routes/acs_access_groups.rb +21 -21
  49. data/lib/seam/routes/acs_credentials.rb +40 -40
  50. data/lib/seam/routes/acs_encoders.rb +16 -16
  51. data/lib/seam/routes/acs_encoders_simulate.rb +11 -11
  52. data/lib/seam/routes/acs_entrances.rb +20 -20
  53. data/lib/seam/routes/acs_systems.rb +11 -11
  54. data/lib/seam/routes/acs_users.rb +83 -55
  55. data/lib/seam/routes/action_attempts.rb +6 -6
  56. data/lib/seam/routes/client_sessions.rb +38 -34
  57. data/lib/seam/routes/connect_webviews.rb +20 -20
  58. data/lib/seam/routes/connected_accounts.rb +24 -20
  59. data/lib/seam/routes/connected_accounts_simulate.rb +1 -1
  60. data/lib/seam/routes/customers.rb +50 -50
  61. data/lib/seam/routes/devices.rb +33 -29
  62. data/lib/seam/routes/devices_simulate.rb +7 -7
  63. data/lib/seam/routes/devices_unmanaged.rb +25 -26
  64. data/lib/seam/routes/events.rb +40 -32
  65. data/lib/seam/routes/instant_keys.rb +11 -7
  66. data/lib/seam/routes/locks.rb +20 -27
  67. data/lib/seam/routes/locks_simulate.rb +3 -3
  68. data/lib/seam/routes/noise_sensors.rb +8 -19
  69. data/lib/seam/routes/noise_sensors_noise_thresholds.rb +21 -21
  70. data/lib/seam/routes/noise_sensors_simulate.rb +1 -1
  71. data/lib/seam/routes/phones.rb +7 -7
  72. data/lib/seam/routes/phones_simulate.rb +4 -4
  73. data/lib/seam/routes/spaces.rb +53 -45
  74. data/lib/seam/routes/thermostats.rb +75 -86
  75. data/lib/seam/routes/thermostats_daily_programs.rb +9 -9
  76. data/lib/seam/routes/thermostats_schedules.rb +22 -22
  77. data/lib/seam/routes/thermostats_simulate.rb +9 -9
  78. data/lib/seam/routes/user_identities.rb +50 -46
  79. data/lib/seam/routes/user_identities_unmanaged.rb +11 -11
  80. data/lib/seam/routes/webhooks.rb +10 -10
  81. data/lib/seam/routes/workspaces.rb +19 -19
  82. data/lib/seam/strict_url_search_params_serializer.rb +17 -0
  83. data/lib/seam/url_search_params.rb +102 -0
  84. data/lib/seam/url_search_params_serializer.rb +217 -0
  85. data/lib/seam/version.rb +1 -1
  86. data/lib/seam.rb +3 -0
  87. metadata +12 -11
@@ -6,43 +6,62 @@ module Seam
6
6
  class Device < BaseResource
7
7
  class DeviceManufacturer < BaseResource
8
8
  # Display name for the manufacturer, such as `August`, `Yale`, `Salto`, and so on.
9
+ # @return [String]
9
10
  attr_accessor :display_name
10
11
  # Image URL for the manufacturer logo.
12
+ # @return [String, nil]
11
13
  attr_accessor :image_url
12
14
  # Manufacturer identifier, such as `august`, `yale`, `salto`, and so on.
15
+ # @return [String]
13
16
  attr_accessor :manufacturer
14
17
  end
15
18
 
16
19
  class DeviceProvider < BaseResource
17
20
  # Device provider name. Corresponds to the integration type, such as `august`, `schlage`, `yale_access`, and so on.
21
+ # @return [String]
18
22
  attr_accessor :device_provider_name
19
23
  # Display name for the device provider type.
24
+ # @return [String]
20
25
  attr_accessor :display_name
21
26
  # Image URL for the device provider.
27
+ # @return [String, nil]
22
28
  attr_accessor :image_url
23
29
  # Provider category. Indicates the third-party provider type, such as `stable`, for stable integrations, or `internal`, for internal integrations.
30
+ # @return [String]
24
31
  attr_accessor :provider_category
25
32
  end
26
33
 
27
34
  class Errors < BaseResource
28
35
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
36
+ # @return [String]
29
37
  attr_accessor :error_code
30
38
  # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
39
+ # @return [Boolean, nil]
31
40
  attr_accessor :is_bridge_error
41
+ # @return [Boolean, nil]
32
42
  attr_accessor :is_connected_account_error
43
+ # @return [Boolean]
33
44
  attr_accessor :is_device_error
34
45
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
46
+ # @return [String]
35
47
  attr_accessor :message
36
48
  # Date and time at which Seam created the error.
49
+ # @return [Time]
37
50
  date_accessor :created_at
38
51
  end
39
52
 
40
53
  class Location < BaseResource
41
54
  # Name of the device location.
55
+ # @return [String, nil]
42
56
  attr_accessor :location_name
57
+ # Name of the room within the device location, when the provider reports one.
58
+ # @return [String, nil]
59
+ attr_accessor :room_name
43
60
  # Time zone of the device location.
61
+ # @return [String, nil]
44
62
  attr_accessor :time_zone
45
63
  # Time zone of the device location.
64
+ # @return [String, nil]
46
65
  # @deprecated Use `time_zone` instead.
47
66
  attr_accessor :timezone
48
67
  end
@@ -50,39 +69,53 @@ module Seam
50
69
  class Properties < BaseResource
51
70
  class AccessoryKeypad < BaseResource
52
71
  class Battery < BaseResource
72
+ # @return [Float]
53
73
  attr_accessor :level
54
74
  end
55
75
 
76
+ # Keypad battery properties.
77
+ # @return [Battery, nil]
56
78
  resource_accessor :battery, Battery
57
79
  # Indicates if an accessory keypad is connected to the device.
80
+ # @return [Boolean]
58
81
  attr_accessor :is_connected
59
82
  end
60
83
 
61
84
  class Appearance < BaseResource
62
85
  # Name of the device as seen from the provider API and application, not settable through Seam.
86
+ # @return [String]
63
87
  attr_accessor :name
64
88
  end
65
89
 
66
90
  class Battery < BaseResource
67
91
  # Battery charge level as a value between 0 and 1, inclusive.
92
+ # @return [Float]
68
93
  attr_accessor :level
69
94
  # 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
+ # @return [String]
70
96
  attr_accessor :status
71
97
  end
72
98
 
73
99
  class Model < BaseResource
100
+ # @return [Boolean, nil]
74
101
  # @deprecated use device.properties.model.can_connect_accessory_keypad
75
102
  attr_accessor :accessory_keypad_supported
76
103
  # Indicates whether the device can connect a accessory keypad.
104
+ # @return [Boolean, nil]
77
105
  attr_accessor :can_connect_accessory_keypad
78
106
  # Display name of the device model.
107
+ # @return [String]
79
108
  attr_accessor :display_name
80
109
  # Indicates whether the device has a built in accessory keypad.
110
+ # @return [Boolean, nil]
81
111
  attr_accessor :has_built_in_keypad
82
112
  # Display name that corresponds to the manufacturer-specific terminology for the device.
113
+ # @return [String]
83
114
  attr_accessor :manufacturer_display_name
115
+ # @return [Boolean, nil]
84
116
  # @deprecated use device.can_program_offline_access_codes.
85
117
  attr_accessor :offline_access_codes_supported
118
+ # @return [Boolean, nil]
86
119
  # @deprecated use device.can_program_online_access_codes.
87
120
  attr_accessor :online_access_codes_supported
88
121
  end
@@ -90,292 +123,403 @@ module Seam
90
123
  class AssaAbloyCredentialServiceMetadata < BaseResource
91
124
  class Endpoints < BaseResource
92
125
  # ID of the associated endpoint.
126
+ # @return [String, nil]
93
127
  attr_accessor :endpoint_id
94
128
  # Indicated whether the endpoint is active.
129
+ # @return [Boolean, nil]
95
130
  attr_accessor :is_active
96
131
  end
97
132
 
133
+ # Endpoints associated with the phone.
134
+ # @return [Array<Endpoints>]
98
135
  resource_list_accessor :endpoints, Endpoints
99
136
  # Indicates whether the credential service has active endpoints associated with the phone.
137
+ # @return [Boolean, nil]
100
138
  attr_accessor :has_active_endpoint
101
139
  end
102
140
 
103
141
  class SaltoSpaceCredentialServiceMetadata < BaseResource
104
142
  # Indicates whether the credential service has an active associated phone.
143
+ # @return [Boolean, nil]
105
144
  attr_accessor :has_active_phone
106
145
  end
107
146
 
108
147
  class AkilesMetadata < BaseResource
109
148
  # Group ID to which to add users for an Akiles device.
149
+ # @return [String, nil]
110
150
  attr_accessor :_member_group_id
111
151
  # Gadget ID for an Akiles device.
152
+ # @return [String, nil]
112
153
  attr_accessor :gadget_id
113
154
  # Gadget name for an Akiles device.
155
+ # @return [String, nil]
114
156
  attr_accessor :gadget_name
115
157
  # Product name for an Akiles device.
158
+ # @return [String, nil]
116
159
  attr_accessor :product_name
117
160
  end
118
161
 
119
162
  class AqaraMetadata < BaseResource
120
163
  # Device name for an Aqara device.
164
+ # @return [String, nil]
121
165
  attr_accessor :device_name
122
166
  # Device ID (did) for an Aqara device.
167
+ # @return [String, nil]
123
168
  attr_accessor :did
124
169
  # Firmware version for an Aqara device.
170
+ # @return [String, nil]
125
171
  attr_accessor :firmware_version
126
172
  # Model identifier for an Aqara device.
173
+ # @return [String, nil]
127
174
  attr_accessor :model
128
175
  # Model type for an Aqara device.
176
+ # @return [Float, nil]
129
177
  attr_accessor :model_type
130
178
  # Parent gateway device ID for an Aqara device.
179
+ # @return [String, nil]
131
180
  attr_accessor :parent_did
132
181
  # Position (room) ID for an Aqara device.
182
+ # @return [String, nil]
133
183
  attr_accessor :position_id
134
184
  # Time zone reported for an Aqara device (e.g. GMT-07:00).
185
+ # @return [String, nil]
135
186
  attr_accessor :time_zone
136
187
  end
137
188
 
138
189
  class AssaAbloyVostioMetadata < BaseResource
139
190
  # Encoder name for an ASSA ABLOY Vostio system.
191
+ # @return [String, nil]
140
192
  attr_accessor :encoder_name
141
193
  end
142
194
 
143
195
  class AugustMetadata < BaseResource
144
196
  # Indicates whether an August device has a keypad.
197
+ # @return [Boolean, nil]
145
198
  attr_accessor :has_keypad
146
199
  # House ID for an August device.
200
+ # @return [String, nil]
147
201
  attr_accessor :house_id
148
202
  # House name for an August device.
203
+ # @return [String, nil]
149
204
  attr_accessor :house_name
150
205
  # Keypad battery level for an August device.
206
+ # @return [String, nil]
151
207
  attr_accessor :keypad_battery_level
152
208
  # Lock ID for an August device.
209
+ # @return [String, nil]
153
210
  attr_accessor :lock_id
154
211
  # Lock name for an August device.
212
+ # @return [String, nil]
155
213
  attr_accessor :lock_name
156
214
  # Model for an August device.
215
+ # @return [String, nil]
157
216
  attr_accessor :model
158
217
  end
159
218
 
160
219
  class AvigilonAltaMetadata < BaseResource
161
220
  # Entry name for an Avigilon Alta system.
221
+ # @return [String, nil]
162
222
  attr_accessor :entry_name
163
223
  # Total count of entry relays for an Avigilon Alta system.
224
+ # @return [Float, nil]
164
225
  attr_accessor :entry_relays_total_count
165
226
  # Organization name for an Avigilon Alta system.
227
+ # @return [String, nil]
166
228
  attr_accessor :org_name
167
229
  # Site ID for an Avigilon Alta system.
230
+ # @return [Float, nil]
168
231
  attr_accessor :site_id
169
232
  # Site name for an Avigilon Alta system.
233
+ # @return [String, nil]
170
234
  attr_accessor :site_name
171
235
  # Zone ID for an Avigilon Alta system.
236
+ # @return [Float, nil]
172
237
  attr_accessor :zone_id
173
238
  # Zone name for an Avigilon Alta system.
239
+ # @return [String, nil]
174
240
  attr_accessor :zone_name
175
241
  end
176
242
 
177
243
  class BrivoMetadata < BaseResource
178
244
  # Indicates whether the Brivo access point has activation (remote unlock) enabled.
245
+ # @return [Boolean, nil]
179
246
  attr_accessor :activation_enabled
180
247
  # Device name for a Brivo device.
248
+ # @return [String, nil]
181
249
  attr_accessor :device_name
182
250
  end
183
251
 
184
252
  class ControlbywebMetadata < BaseResource
185
253
  # Device ID for a ControlByWeb device.
254
+ # @return [String, nil]
186
255
  attr_accessor :device_id
187
256
  # Device name for a ControlByWeb device.
257
+ # @return [String, nil]
188
258
  attr_accessor :device_name
189
259
  # Relay name for a ControlByWeb device.
260
+ # @return [String, nil]
190
261
  attr_accessor :relay_name
191
262
  end
192
263
 
193
264
  class DormakabaOracodeMetadata < BaseResource
194
- class DeviceId < BaseResource
195
- end
196
-
197
265
  class PredefinedTimeSlots < BaseResource
198
266
  # Check in time for a time slot for a dormakaba Oracode device.
267
+ # @return [String, nil]
199
268
  attr_accessor :check_in_time
200
269
  # Checkout time for a time slot for a dormakaba Oracode device.
270
+ # @return [String, nil]
201
271
  attr_accessor :check_out_time
202
272
  # ID of a user level for a dormakaba Oracode device.
273
+ # @return [String, nil]
203
274
  attr_accessor :dormakaba_oracode_user_level_id
204
275
  # Prefix for a user level for a dormakaba Oracode device.
276
+ # @return [Float, nil]
205
277
  attr_accessor :dormakaba_oracode_user_level_prefix
206
278
  # Indicates whether a time slot for a dormakaba Oracode device is a 24-hour time slot.
279
+ # @return [Boolean, nil]
207
280
  attr_accessor :is_24_hour
208
281
  # Indicates whether a time slot for a dormakaba Oracode device is in biweekly mode.
282
+ # @return [Boolean, nil]
209
283
  attr_accessor :is_biweekly_mode
210
284
  # Indicates whether a time slot for a dormakaba Oracode device is a master time slot.
285
+ # @return [Boolean, nil]
211
286
  attr_accessor :is_master
212
287
  # Indicates whether a time slot for a dormakaba Oracode device is a one-shot time slot.
288
+ # @return [Boolean, nil]
213
289
  attr_accessor :is_one_shot
214
290
  # Name of a time slot for a dormakaba Oracode device.
291
+ # @return [String, nil]
215
292
  attr_accessor :name
216
293
  # Prefix for a time slot for a dormakaba Oracode device.
294
+ # @return [Float, nil]
217
295
  attr_accessor :prefix
218
296
  end
219
297
 
220
- resource_accessor :device_id, DeviceId
298
+ # Predefined time slots for a dormakaba Oracode device.
299
+ # @return [Array<PredefinedTimeSlots>]
221
300
  resource_list_accessor :predefined_time_slots, PredefinedTimeSlots
301
+ # Device ID for a dormakaba Oracode device.
302
+ # @return [String, nil]
303
+ attr_accessor :device_id
222
304
  # Door ID for a dormakaba Oracode device.
305
+ # @return [Float, nil]
223
306
  attr_accessor :door_id
224
307
  # Indicates whether a door is wireless for a dormakaba Oracode device.
308
+ # @return [Boolean, nil]
225
309
  attr_accessor :door_is_wireless
226
310
  # Door name for a dormakaba Oracode device.
311
+ # @return [String, nil]
227
312
  attr_accessor :door_name
228
313
  # IANA time zone for a dormakaba Oracode device.
314
+ # @return [String, nil]
229
315
  attr_accessor :iana_timezone
230
316
  # Site ID for a dormakaba Oracode device.
317
+ # @return [Float, nil]
231
318
  # @deprecated Previously marked as "@DEPRECATED."
232
319
  attr_accessor :site_id
233
320
  # Site name for a dormakaba Oracode device.
321
+ # @return [String, nil]
234
322
  attr_accessor :site_name
235
323
  end
236
324
 
237
325
  class EcobeeMetadata < BaseResource
238
326
  # Device name for an ecobee device.
327
+ # @return [String, nil]
239
328
  attr_accessor :device_name
240
329
  # Device ID for an ecobee device.
330
+ # @return [String, nil]
241
331
  attr_accessor :ecobee_device_id
242
332
  end
243
333
 
244
334
  class FourSuitesMetadata < BaseResource
245
335
  # Device ID for a 4SUITES device.
336
+ # @return [Float, nil]
246
337
  attr_accessor :device_id
247
338
  # Device name for a 4SUITES device.
339
+ # @return [String, nil]
248
340
  attr_accessor :device_name
249
341
  # Reclose delay, in seconds, for a 4SUITES device.
342
+ # @return [Float, nil]
250
343
  attr_accessor :reclose_delay_in_seconds
251
344
  end
252
345
 
253
346
  class GenieMetadata < BaseResource
254
347
  # Lock name for a Genie device.
348
+ # @return [String, nil]
255
349
  attr_accessor :device_name
256
350
  # Door name for a Genie device.
351
+ # @return [String, nil]
257
352
  attr_accessor :door_name
258
353
  end
259
354
 
260
355
  class HoneywellResideoMetadata < BaseResource
261
356
  # Device name for a Honeywell Resideo device.
357
+ # @return [String, nil]
262
358
  attr_accessor :device_name
263
359
  # Device ID for a Honeywell Resideo device.
360
+ # @return [String, nil]
264
361
  attr_accessor :honeywell_resideo_device_id
265
362
  end
266
363
 
267
364
  class IglooMetadata < BaseResource
268
365
  # Bridge ID for an igloo device.
366
+ # @return [String, nil]
269
367
  attr_accessor :bridge_id
270
368
  # Device ID for an igloo device.
369
+ # @return [String, nil]
271
370
  attr_accessor :device_id
272
371
  # Model for an igloo device.
372
+ # @return [String, nil]
273
373
  attr_accessor :model
274
374
  end
275
375
 
276
376
  class IgloohomeMetadata < BaseResource
277
377
  # Bridge ID for an igloohome device.
378
+ # @return [String, nil]
278
379
  attr_accessor :bridge_id
279
380
  # Bridge name for an igloohome device.
381
+ # @return [String, nil]
280
382
  attr_accessor :bridge_name
281
383
  # Device ID for an igloohome device.
384
+ # @return [String, nil]
282
385
  attr_accessor :device_id
283
386
  # Device name for an igloohome device.
387
+ # @return [String, nil]
284
388
  attr_accessor :device_name
285
389
  # Indicates whether a keypad is linked to a bridge for an igloohome device.
390
+ # @return [Boolean, nil]
286
391
  attr_accessor :is_accessory_keypad_linked_to_bridge
287
392
  # Keypad ID for an igloohome device.
393
+ # @return [String, nil]
288
394
  attr_accessor :keypad_id
289
395
  end
290
396
 
291
397
  class KeynestMetadata < BaseResource
292
398
  # Address for a KeyNest device.
399
+ # @return [String, nil]
293
400
  attr_accessor :address
294
401
  # Current or last store ID for a KeyNest device.
402
+ # @return [Float, nil]
295
403
  attr_accessor :current_or_last_store_id
296
404
  # Current status for a KeyNest device.
405
+ # @return [String, nil]
297
406
  attr_accessor :current_status
298
407
  # Current user company for a KeyNest device.
408
+ # @return [String, nil]
299
409
  attr_accessor :current_user_company
300
410
  # Current user email for a KeyNest device.
411
+ # @return [String, nil]
301
412
  attr_accessor :current_user_email
302
413
  # Current user name for a KeyNest device.
414
+ # @return [String, nil]
303
415
  attr_accessor :current_user_name
304
416
  # Current user phone number for a KeyNest device.
417
+ # @return [String, nil]
305
418
  attr_accessor :current_user_phone_number
306
419
  # Default office ID for a KeyNest device.
420
+ # @return [Float, nil]
307
421
  attr_accessor :default_office_id
308
422
  # Device name for a KeyNest device.
423
+ # @return [String, nil]
309
424
  attr_accessor :device_name
310
425
  # Fob ID for a KeyNest device.
426
+ # @return [Float, nil]
311
427
  attr_accessor :fob_id
312
428
  # Handover method for a KeyNest device.
429
+ # @return [String, nil]
313
430
  attr_accessor :handover_method
314
431
  # Whether the KeyNest device has a photo.
432
+ # @return [Boolean, nil]
315
433
  attr_accessor :has_photo
316
434
  # Whether the key is in a locker that does not support the access codes API.
435
+ # @return [Boolean, nil]
317
436
  attr_accessor :is_quadient_locker
318
437
  # Key ID for a KeyNest device.
438
+ # @return [String, nil]
319
439
  attr_accessor :key_id
320
440
  # Key notes for a KeyNest device.
441
+ # @return [String, nil]
321
442
  attr_accessor :key_notes
322
443
  # KeyNest app user for a KeyNest device.
444
+ # @return [String, nil]
323
445
  attr_accessor :keynest_app_user
324
446
  # Last movement timestamp for a KeyNest device.
447
+ # @return [String, nil]
325
448
  attr_accessor :last_movement
326
449
  # Property ID for a KeyNest device.
450
+ # @return [String, nil]
327
451
  attr_accessor :property_id
328
452
  # Property postcode for a KeyNest device.
453
+ # @return [String, nil]
329
454
  attr_accessor :property_postcode
330
455
  # Status type for a KeyNest device.
456
+ # @return [String, nil]
331
457
  attr_accessor :status_type
332
458
  # Subscription plan for a KeyNest device.
459
+ # @return [String, nil]
333
460
  attr_accessor :subscription_plan
334
461
  end
335
462
 
336
463
  class KisiMetadata < BaseResource
337
464
  # Description for a Kisi device.
465
+ # @return [String, nil]
338
466
  attr_accessor :description
339
467
  # Lock ID for a Kisi device.
468
+ # @return [Float, nil]
340
469
  attr_accessor :lock_id
341
470
  # Lock name for a Kisi device.
471
+ # @return [String, nil]
342
472
  attr_accessor :lock_name
343
473
  # Place name for a Kisi device.
474
+ # @return [String, nil]
344
475
  attr_accessor :place_name
345
476
  end
346
477
 
347
478
  class KorelockMetadata < BaseResource
348
479
  # Device ID for a Korelock device.
480
+ # @return [String, nil]
349
481
  attr_accessor :device_id
350
482
  # Device name for a Korelock device.
483
+ # @return [String, nil]
351
484
  attr_accessor :device_name
352
485
  # Firmware version for a Korelock device.
486
+ # @return [String, nil]
353
487
  attr_accessor :firmware_version
354
488
  # Location ID for a Korelock device. Required for timebound access codes.
489
+ # @return [String, nil]
355
490
  attr_accessor :location_id
356
491
  # Model code for a Korelock device.
492
+ # @return [String, nil]
357
493
  attr_accessor :model_code
358
494
  # Serial number for a Korelock device.
495
+ # @return [String, nil]
359
496
  attr_accessor :serial_number
360
497
  # WiFi signal strength (0-1) for a Korelock device.
498
+ # @return [Float, nil]
361
499
  attr_accessor :wifi_signal_strength
362
500
  end
363
501
 
364
502
  class KwiksetMetadata < BaseResource
365
503
  # Device ID for a Kwikset device.
504
+ # @return [String, nil]
366
505
  attr_accessor :device_id
367
506
  # Device name for a Kwikset device.
507
+ # @return [String, nil]
368
508
  attr_accessor :device_name
369
509
  # Model number for a Kwikset device.
510
+ # @return [String, nil]
370
511
  attr_accessor :model_number
371
512
  end
372
513
 
373
514
  class LocklyMetadata < BaseResource
374
515
  # Device ID for a Lockly device.
516
+ # @return [String, nil]
375
517
  attr_accessor :device_id
376
518
  # Device name for a Lockly device.
519
+ # @return [String, nil]
377
520
  attr_accessor :device_name
378
521
  # Model for a Lockly device.
522
+ # @return [String, nil]
379
523
  attr_accessor :model
380
524
  end
381
525
 
@@ -383,815 +527,1289 @@ module Seam
383
527
  class LatestSensorValues < BaseResource
384
528
  class AccelerometerZ < BaseResource
385
529
  # Time of latest accelerometer Z-axis reading for a Minut device.
530
+ # @return [String, nil]
386
531
  attr_accessor :time
387
532
  # Value of latest accelerometer Z-axis reading for a Minut device.
533
+ # @return [Float, nil]
388
534
  attr_accessor :value
389
535
  end
390
536
 
391
537
  class Humidity < BaseResource
392
538
  # Time of latest humidity reading for a Minut device.
539
+ # @return [String, nil]
393
540
  attr_accessor :time
394
541
  # Value of latest humidity reading for a Minut device.
542
+ # @return [Float, nil]
395
543
  attr_accessor :value
396
544
  end
397
545
 
398
546
  class Pressure < BaseResource
399
547
  # Time of latest pressure reading for a Minut device.
548
+ # @return [String, nil]
400
549
  attr_accessor :time
401
550
  # Value of latest pressure reading for a Minut device.
551
+ # @return [Float, nil]
402
552
  attr_accessor :value
403
553
  end
404
554
 
405
555
  class Sound < BaseResource
406
556
  # Time of latest sound reading for a Minut device.
557
+ # @return [String, nil]
407
558
  attr_accessor :time
408
559
  # Value of latest sound reading for a Minut device.
560
+ # @return [Float, nil]
409
561
  attr_accessor :value
410
562
  end
411
563
 
412
564
  class Temperature < BaseResource
413
565
  # Time of latest temperature reading for a Minut device.
566
+ # @return [String, nil]
414
567
  attr_accessor :time
415
568
  # Value of latest temperature reading for a Minut device.
569
+ # @return [Float, nil]
416
570
  attr_accessor :value
417
571
  end
418
572
 
573
+ # Latest accelerometer Z-axis reading for a Minut device.
574
+ # @return [AccelerometerZ, nil]
419
575
  resource_accessor :accelerometer_z, AccelerometerZ
576
+ # Latest humidity reading for a Minut device.
577
+ # @return [Humidity, nil]
420
578
  resource_accessor :humidity, Humidity
579
+ # Latest pressure reading for a Minut device.
580
+ # @return [Pressure, nil]
421
581
  resource_accessor :pressure, Pressure
582
+ # Latest sound reading for a Minut device.
583
+ # @return [Sound, nil]
422
584
  resource_accessor :sound, Sound
585
+ # Latest temperature reading for a Minut device.
586
+ # @return [Temperature, nil]
423
587
  resource_accessor :temperature, Temperature
424
588
  end
425
589
 
590
+ # Latest sensor values for a Minut device.
591
+ # @return [LatestSensorValues, nil]
426
592
  resource_accessor :latest_sensor_values, LatestSensorValues
427
593
  # Device ID for a Minut device.
594
+ # @return [String, nil]
428
595
  attr_accessor :device_id
429
596
  # Device name for a Minut device.
597
+ # @return [String, nil]
430
598
  attr_accessor :device_name
431
599
  end
432
600
 
433
601
  class NestMetadata < BaseResource
434
602
  # Custom device name for a Google Nest device. The device owner sets this value.
603
+ # @return [String, nil]
435
604
  attr_accessor :device_custom_name
436
605
  # Device name for a Google Nest device. Google sets this value.
606
+ # @return [String, nil]
437
607
  attr_accessor :device_name
438
608
  # Display name for a Google Nest device.
609
+ # @return [String, nil]
439
610
  attr_accessor :display_name
440
611
  # Device ID for a Google Nest device.
612
+ # @return [String, nil]
441
613
  attr_accessor :nest_device_id
614
+ # ID of the Google Nest structure containing the device.
615
+ # @return [String, nil]
616
+ attr_accessor :nest_structure_id
617
+ # Name of the Google Nest structure containing the device. The device owner sets this value.
618
+ # @return [String, nil]
619
+ attr_accessor :structure_name
442
620
  end
443
621
 
444
622
  class NoiseawareMetadata < BaseResource
445
623
  # Device ID for a NoiseAware device.
624
+ # @return [String, nil]
446
625
  attr_accessor :device_id
447
626
  # Device model for a NoiseAware device.
627
+ # @return [String, nil]
448
628
  attr_accessor :device_model
449
629
  # Device name for a NoiseAware device.
630
+ # @return [String, nil]
450
631
  attr_accessor :device_name
451
632
  # Noise level, in decibels, for a NoiseAware device.
633
+ # @return [Float, nil]
452
634
  attr_accessor :noise_level_decibel
453
635
  # Noise level, expressed as a Noise Risk Score (NRS), for a NoiseAware device.
636
+ # @return [Float, nil]
454
637
  attr_accessor :noise_level_nrs
455
638
  end
456
639
 
457
640
  class NukiMetadata < BaseResource
458
641
  # Device ID for a Nuki device.
642
+ # @return [String, nil]
459
643
  attr_accessor :device_id
460
644
  # Device name for a Nuki device.
645
+ # @return [String, nil]
461
646
  attr_accessor :device_name
462
647
  # Indicates whether keypad 2 is paired for a Nuki device.
648
+ # @return [Boolean, nil]
463
649
  attr_accessor :keypad_2_paired
464
650
  # Indicates whether the keypad battery is in a critical state for a Nuki device.
651
+ # @return [Boolean, nil]
465
652
  attr_accessor :keypad_battery_critical
466
653
  # Indicates whether the keypad is paired for a Nuki device.
654
+ # @return [Boolean, nil]
467
655
  attr_accessor :keypad_paired
468
656
  end
469
657
 
470
658
  class OmnitecMetadata < BaseResource
471
659
  # Whether the Omnitec lock has a connected gateway for remote operations.
660
+ # @return [Boolean, nil]
472
661
  attr_accessor :has_gateway
473
662
  # Operator-assigned alias for an Omnitec device.
663
+ # @return [String, nil]
474
664
  attr_accessor :lock_alias
475
665
  # Lock ID for an Omnitec device.
666
+ # @return [Float, nil]
476
667
  attr_accessor :lock_id
477
668
  # Bluetooth MAC address for an Omnitec device.
669
+ # @return [String, nil]
478
670
  attr_accessor :lock_mac
479
671
  # Lock name for an Omnitec device.
672
+ # @return [String, nil]
480
673
  attr_accessor :lock_name
481
674
  # IANA time zone for the Omnitec device, used to schedule time-bound access codes at the correct local time (accounting for DST).
675
+ # @return [String, nil]
482
676
  attr_accessor :time_zone
483
677
  # Static UTC offset of the Omnitec lock in milliseconds. Does not account for DST.
678
+ # @return [Float, nil]
484
679
  attr_accessor :timezone_raw_offset_ms
485
680
  end
486
681
 
487
682
  class RingMetadata < BaseResource
488
683
  # Device ID for a Ring device.
684
+ # @return [String, nil]
489
685
  attr_accessor :device_id
490
686
  # Device name for a Ring device.
687
+ # @return [String, nil]
491
688
  attr_accessor :device_name
492
689
  end
493
690
 
494
691
  class SaltoKsMetadata < BaseResource
495
692
  # Battery level for a Salto KS device.
693
+ # @return [String, nil]
496
694
  attr_accessor :battery_level
497
695
  # Customer reference for a Salto KS device.
696
+ # @return [String, nil]
498
697
  attr_accessor :customer_reference
499
698
  # Indicates whether the site has a Salto KS subscription that supports custom PINs.
699
+ # @return [Boolean, nil]
500
700
  attr_accessor :has_custom_pin_subscription
501
701
  # Lock ID for a Salto KS device.
702
+ # @return [String, nil]
502
703
  attr_accessor :lock_id
503
704
  # Lock type for a Salto KS device.
705
+ # @return [String, nil]
504
706
  attr_accessor :lock_type
505
707
  # Locked state for a Salto KS device.
708
+ # @return [String, nil]
506
709
  attr_accessor :locked_state
507
710
  # Model for a Salto KS device.
711
+ # @return [String, nil]
508
712
  attr_accessor :model
509
713
  # Site ID for the Salto KS site to which the device belongs.
714
+ # @return [String, nil]
510
715
  attr_accessor :site_id
511
716
  # Site name for the Salto KS site to which the device belongs.
717
+ # @return [String, nil]
512
718
  attr_accessor :site_name
513
719
  end
514
720
 
515
721
  class SaltoMetadata < BaseResource
516
722
  # Battery level for a Salto device.
723
+ # @return [String, nil]
517
724
  attr_accessor :battery_level
518
725
  # Customer reference for a Salto device.
726
+ # @return [String, nil]
519
727
  attr_accessor :customer_reference
520
728
  # Lock ID for a Salto device.
729
+ # @return [String, nil]
521
730
  attr_accessor :lock_id
522
731
  # Lock type for a Salto device.
732
+ # @return [String, nil]
523
733
  attr_accessor :lock_type
524
734
  # Locked state for a Salto device.
735
+ # @return [String, nil]
525
736
  attr_accessor :locked_state
526
737
  # Model for a Salto device.
738
+ # @return [String, nil]
527
739
  attr_accessor :model
528
740
  # Site ID for the Salto KS site to which the device belongs.
741
+ # @return [String, nil]
529
742
  attr_accessor :site_id
530
743
  # Site name for the Salto KS site to which the device belongs.
744
+ # @return [String, nil]
531
745
  attr_accessor :site_name
532
746
  end
533
747
 
534
748
  class SchlageMetadata < BaseResource
535
749
  # Device ID for a Schlage device.
750
+ # @return [String, nil]
536
751
  attr_accessor :device_id
537
752
  # Device name for a Schlage device.
753
+ # @return [String, nil]
538
754
  attr_accessor :device_name
539
755
  # Model for a Schlage device.
756
+ # @return [String, nil]
540
757
  attr_accessor :model
541
758
  end
542
759
 
543
760
  class SeamBridgeMetadata < BaseResource
544
761
  # Device number for Seam Bridge.
762
+ # @return [Float, nil]
545
763
  attr_accessor :device_num
546
764
  # Name for Seam Bridge.
765
+ # @return [String, nil]
547
766
  attr_accessor :name
548
767
  # Unlock method for Seam Bridge.
768
+ # @return [String, nil]
549
769
  attr_accessor :unlock_method
550
770
  end
551
771
 
552
772
  class SensiMetadata < BaseResource
553
773
  # Device ID for a Sensi device.
774
+ # @return [String, nil]
554
775
  attr_accessor :device_id
555
776
  # Device name for a Sensi device.
777
+ # @return [String, nil]
556
778
  attr_accessor :device_name
557
779
  # Set to true when the device does not support the /dual-setpoints API endpoint.
780
+ # @return [Boolean, nil]
558
781
  attr_accessor :dual_setpoints_not_supported
782
+ # Enforced setpoint range in Celsius for a Sensi device, derived from an OutOfRange API error.
783
+ # @return [Array<Float>]
784
+ attr_accessor :enforced_setpoint_range_celsius
559
785
  # Product type for a Sensi device.
786
+ # @return [String, nil]
560
787
  attr_accessor :product_type
561
788
  end
562
789
 
563
790
  class SmartthingsMetadata < BaseResource
564
791
  # Device ID for a SmartThings device.
792
+ # @return [String, nil]
565
793
  attr_accessor :device_id
566
794
  # Device name for a SmartThings device.
795
+ # @return [String, nil]
567
796
  attr_accessor :device_name
568
797
  # Location ID for a SmartThings device.
798
+ # @return [String, nil]
569
799
  attr_accessor :location_id
570
800
  # Model for a SmartThings device.
801
+ # @return [String, nil]
571
802
  attr_accessor :model
572
803
  end
573
804
 
574
805
  class TadoMetadata < BaseResource
575
806
  # Device type for a tado° device.
807
+ # @return [String, nil]
576
808
  attr_accessor :device_type
577
809
  # Serial number for a tado° device.
810
+ # @return [String, nil]
578
811
  attr_accessor :serial_no
579
812
  end
580
813
 
581
814
  class TedeeMetadata < BaseResource
582
815
  # Bridge ID for a Tedee device.
816
+ # @return [Float, nil]
583
817
  attr_accessor :bridge_id
584
818
  # Bridge name for a Tedee device.
819
+ # @return [String, nil]
585
820
  attr_accessor :bridge_name
586
821
  # Device ID for a Tedee device.
822
+ # @return [Float, nil]
587
823
  attr_accessor :device_id
588
824
  # Device model for a Tedee device.
825
+ # @return [String, nil]
589
826
  attr_accessor :device_model
590
827
  # Device name for a Tedee device.
828
+ # @return [String, nil]
591
829
  attr_accessor :device_name
592
830
  # Keypad ID for a Tedee device.
831
+ # @return [Float, nil]
593
832
  attr_accessor :keypad_id
594
833
  # Serial number for a Tedee device.
834
+ # @return [String, nil]
595
835
  attr_accessor :serial_number
596
836
  end
597
837
 
598
838
  class TtlockMetadata < BaseResource
599
839
  class Features < BaseResource
600
840
  # Indicates whether a TTLock device supports auto-lock time configuration.
841
+ # @return [Boolean, nil]
601
842
  attr_accessor :auto_lock_time_config
602
843
  # Indicates whether a TTLock device supports an incomplete keyboard passcode.
844
+ # @return [Boolean, nil]
603
845
  attr_accessor :incomplete_keyboard_passcode
604
846
  # Indicates whether a TTLock device supports the lock command.
847
+ # @return [Boolean, nil]
605
848
  attr_accessor :lock_command
606
849
  # Indicates whether a TTLock device supports a passcode.
850
+ # @return [Boolean, nil]
607
851
  attr_accessor :passcode
608
852
  # Indicates whether a TTLock device supports passcode management.
853
+ # @return [Boolean, nil]
609
854
  attr_accessor :passcode_management
610
855
  # Indicates whether a TTLock device supports unlock via gateway.
856
+ # @return [Boolean, nil]
611
857
  attr_accessor :unlock_via_gateway
612
858
  # Indicates whether a TTLock device supports Wi-Fi.
859
+ # @return [Boolean, nil]
613
860
  attr_accessor :wifi
614
861
  end
615
862
 
616
863
  class WirelessKeypads < BaseResource
617
864
  # ID for a wireless keypad for a TTLock device.
865
+ # @return [Float, nil]
618
866
  attr_accessor :wireless_keypad_id
619
867
  # Name for a wireless keypad for a TTLock device.
868
+ # @return [String, nil]
620
869
  attr_accessor :wireless_keypad_name
621
870
  end
622
871
 
872
+ # Features for a TTLock device.
873
+ # @return [Features, nil]
623
874
  resource_accessor :features, Features
875
+ # Wireless keypads for a TTLock device.
876
+ # @return [Array<WirelessKeypads>]
624
877
  resource_list_accessor :wireless_keypads, WirelessKeypads
625
878
  # Feature value for a TTLock device.
879
+ # @return [String, nil]
626
880
  attr_accessor :feature_value
627
881
  # Indicates whether a TTLock device has a gateway.
882
+ # @return [Boolean, nil]
628
883
  attr_accessor :has_gateway
629
884
  # Lock alias for a TTLock device.
885
+ # @return [String, nil]
630
886
  attr_accessor :lock_alias
631
887
  # Lock ID for a TTLock device.
888
+ # @return [Float, nil]
632
889
  attr_accessor :lock_id
633
890
  # 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.
891
+ # @return [Float, nil]
634
892
  attr_accessor :timezone_raw_offset_ms
635
893
  end
636
894
 
637
895
  class TwoNMetadata < BaseResource
638
896
  # Device ID for a 2N device.
897
+ # @return [Float, nil]
639
898
  attr_accessor :device_id
640
899
  # Device name for a 2N device.
900
+ # @return [String, nil]
641
901
  attr_accessor :device_name
642
902
  end
643
903
 
644
904
  class UltraloqMetadata < BaseResource
645
905
  # Device ID for an Ultraloq device.
906
+ # @return [String, nil]
646
907
  attr_accessor :device_id
647
908
  # Device name for an Ultraloq device.
909
+ # @return [String, nil]
648
910
  attr_accessor :device_name
649
911
  # Device type for an Ultraloq device.
912
+ # @return [String, nil]
650
913
  attr_accessor :device_type
651
914
  # IANA timezone for the Ultraloq device.
915
+ # @return [String, nil]
652
916
  attr_accessor :time_zone
653
917
  end
654
918
 
655
919
  class VisionlineMetadata < BaseResource
656
920
  # Encoder ID for an ASSA ABLOY Visionline system.
921
+ # @return [String, nil]
657
922
  attr_accessor :encoder_id
658
923
  end
659
924
 
660
925
  class WyzeMetadata < BaseResource
661
926
  # Device ID for a Wyze device.
927
+ # @return [String, nil]
662
928
  attr_accessor :device_id
663
929
  # Device information model for a Wyze device.
930
+ # @return [String, nil]
664
931
  attr_accessor :device_info_model
665
932
  # Device name for a Wyze device.
933
+ # @return [String, nil]
666
934
  attr_accessor :device_name
667
935
  # Keypad UUID for a Wyze device.
936
+ # @return [String, nil]
668
937
  attr_accessor :keypad_uuid
669
938
  # Locker status (hardlock) for a Wyze device.
939
+ # @return [Float, nil]
670
940
  attr_accessor :locker_status_hardlock
671
941
  # Product model for a Wyze device.
942
+ # @return [String, nil]
672
943
  attr_accessor :product_model
673
944
  # Product name for a Wyze device.
945
+ # @return [String, nil]
674
946
  attr_accessor :product_name
675
947
  # Product type for a Wyze device.
948
+ # @return [String, nil]
676
949
  attr_accessor :product_type
677
950
  end
678
951
 
952
+ class YacanMetadata < BaseResource
953
+ # Device ID for a Yacan device.
954
+ # @return [String, nil]
955
+ attr_accessor :device_id
956
+ # Device name for a Yacan device.
957
+ # @return [String, nil]
958
+ attr_accessor :device_name
959
+ # Device type for a Yacan device.
960
+ # @return [String, nil]
961
+ attr_accessor :device_type
962
+ # Serial number for a Yacan device.
963
+ # @return [String, nil]
964
+ attr_accessor :serial_number
965
+ end
966
+
679
967
  class CodeConstraints < BaseResource
968
+ # @return [String]
680
969
  attr_accessor :constraint_type
681
970
  # Maximum name length constraint for access codes.
971
+ # @return [Float, nil]
682
972
  attr_accessor :max_length
683
973
  # Minimum name length constraint for access codes.
974
+ # @return [Float, nil]
684
975
  attr_accessor :min_length
685
976
  end
686
977
 
687
978
  class KeypadBattery < BaseResource
688
979
  # Keypad battery charge level.
980
+ # @return [Float]
689
981
  attr_accessor :level
690
982
  end
691
983
 
692
984
  class OfflineTimeFrameOptions < BaseResource
693
985
  class TimePairs < BaseResource
694
986
  # Label for the start/end time pairing.
987
+ # @return [String]
695
988
  attr_accessor :display_name
696
989
  # 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.
990
+ # @return [String]
697
991
  attr_accessor :end_time
698
992
  # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`.
993
+ # @return [String]
699
994
  attr_accessor :start_time
700
995
  end
701
996
 
997
+ # Fixed start/end time pairings the caller chooses from. Mutually exclusive with `matching_start_end_time`.
998
+ # @return [Array<TimePairs>]
702
999
  resource_list_accessor :time_pairs, TimePairs
703
1000
  # 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`).
1001
+ # @return [String]
704
1002
  attr_accessor :display_name
705
1003
  # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules.
1004
+ # @return [String, nil]
706
1005
  attr_accessor :end_date_recurrence_rule
707
1006
  # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`.
1007
+ # @return [Boolean, nil]
708
1008
  attr_accessor :matching_start_end_time
709
1009
  # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum.
1010
+ # @return [String, nil]
710
1011
  attr_accessor :max_duration
711
1012
  # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum.
1013
+ # @return [String, nil]
712
1014
  attr_accessor :min_duration
713
1015
  # 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.
1016
+ # @return [String, nil]
714
1017
  attr_accessor :start_date_recurrence_rule
715
1018
  # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates.
1019
+ # @return [String, nil]
716
1020
  attr_accessor :time_zone
717
1021
  end
718
1022
 
719
1023
  class OnlineTimeFrameOptions < BaseResource
720
1024
  class TimePairs < BaseResource
721
1025
  # Label for the start/end time pairing.
1026
+ # @return [String]
722
1027
  attr_accessor :display_name
723
1028
  # 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.
1029
+ # @return [String]
724
1030
  attr_accessor :end_time
725
1031
  # Start time of day as a 24-hour `HH:MM` value, interpreted in the option's `time_zone`.
1032
+ # @return [String]
726
1033
  attr_accessor :start_time
727
1034
  end
728
1035
 
1036
+ # Fixed start/end time pairings the caller chooses from. Mutually exclusive with `matching_start_end_time`.
1037
+ # @return [Array<TimePairs>]
729
1038
  resource_list_accessor :time_pairs, TimePairs
730
1039
  # 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`).
1040
+ # @return [String]
731
1041
  attr_accessor :display_name
732
1042
  # iCalendar recurrence rule (RRULE) that the end date must fall on. Constrains which calendar dates are selectable, independent of the time-of-day rules.
1043
+ # @return [String, nil]
733
1044
  attr_accessor :end_date_recurrence_rule
734
1045
  # When `true`, the start and end must fall at the same time of day (the caller picks which). Mutually exclusive with `time_pairs`.
1046
+ # @return [Boolean, nil]
735
1047
  attr_accessor :matching_start_end_time
736
1048
  # Maximum duration this option covers, as an ISO 8601 duration (for example, `PT672H` or `P367D`). Omitted when there is no maximum.
1049
+ # @return [String, nil]
737
1050
  attr_accessor :max_duration
738
1051
  # Minimum duration this option covers, as an ISO 8601 duration (for example, `PT1H` or `P29D`). Omitted when there is no minimum.
1052
+ # @return [String, nil]
739
1053
  attr_accessor :min_duration
740
1054
  # 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.
1055
+ # @return [String, nil]
741
1056
  attr_accessor :start_date_recurrence_rule
742
1057
  # IANA time zone for interpreting `time_pairs` and the date recurrence rules. Present only when the option fixes times or dates.
1058
+ # @return [String, nil]
743
1059
  attr_accessor :time_zone
744
1060
  end
745
1061
 
746
1062
  class ActiveThermostatSchedule < BaseResource
747
1063
  class Errors < BaseResource
748
1064
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
1065
+ # @return [String]
749
1066
  attr_accessor :error_code
750
1067
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
1068
+ # @return [String]
751
1069
  attr_accessor :message
752
1070
  # Date and time at which Seam created the error.
1071
+ # @return [Time]
753
1072
  date_accessor :created_at
754
1073
  end
755
1074
 
1075
+ # Errors associated with the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1076
+ # @return [Array<Errors>]
756
1077
  resource_list_accessor :errors, Errors
757
1078
  # 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).
1079
+ # @return [String]
758
1080
  attr_accessor :climate_preset_key
759
1081
  # ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.
1082
+ # @return [String]
760
1083
  attr_accessor :device_id
761
1084
  # 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.
1085
+ # @return [Boolean, nil]
762
1086
  attr_accessor :is_override_allowed
763
1087
  # 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).
1088
+ # @return [Integer, nil]
764
1089
  attr_accessor :max_override_period_minutes
765
1090
  # User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1091
+ # @return [String, nil]
766
1092
  attr_accessor :name
767
1093
  # ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1094
+ # @return [String]
768
1095
  attr_accessor :thermostat_schedule_id
769
1096
  # ID of the workspace that contains the thermostat schedule.
1097
+ # @return [String]
770
1098
  attr_accessor :workspace_id
771
1099
  # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.
1100
+ # @return [Time]
772
1101
  date_accessor :created_at
773
1102
  # 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.
1103
+ # @return [Time]
774
1104
  date_accessor :ends_at
775
1105
  # 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.
1106
+ # @return [Time]
776
1107
  date_accessor :starts_at
777
1108
  end
778
1109
 
779
1110
  class AvailableClimatePresets < BaseResource
780
1111
  class EcobeeMetadata < BaseResource
781
1112
  # Reference to the Ecobee climate, if applicable.
1113
+ # @return [String, nil]
782
1114
  attr_accessor :climate_ref
783
1115
  # Indicates if the climate preset is optimized by Ecobee.
1116
+ # @return [Boolean, nil]
784
1117
  attr_accessor :is_optimized
785
1118
  # Indicates whether the climate preset is owned by the user or the system.
1119
+ # @return [String, nil]
786
1120
  attr_accessor :owner
787
1121
  end
788
1122
 
1123
+ # Metadata specific to the Ecobee climate, if applicable.
1124
+ # @return [EcobeeMetadata, nil]
789
1125
  resource_accessor :ecobee_metadata, EcobeeMetadata
790
1126
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
1127
+ # @return [Boolean]
791
1128
  attr_accessor :can_delete
792
1129
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
1130
+ # @return [Boolean]
793
1131
  attr_accessor :can_edit
794
1132
  # 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.
1133
+ # @return [Boolean]
795
1134
  attr_accessor :can_use_with_thermostat_daily_programs
796
1135
  # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1136
+ # @return [String]
797
1137
  attr_accessor :climate_preset_key
798
1138
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1139
+ # @return [String, nil]
799
1140
  attr_accessor :climate_preset_mode
800
1141
  # 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
+ # @return [Float, nil]
801
1143
  attr_accessor :cooling_set_point_celsius
802
1144
  # 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).
1145
+ # @return [Float, nil]
803
1146
  attr_accessor :cooling_set_point_fahrenheit
804
1147
  # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1148
+ # @return [String]
805
1149
  attr_accessor :display_name
806
1150
  # 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
+ # @return [String, nil]
807
1152
  attr_accessor :fan_mode_setting
808
1153
  # 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
+ # @return [Float, nil]
809
1155
  attr_accessor :heating_set_point_celsius
810
1156
  # 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).
1157
+ # @return [Float, nil]
811
1158
  attr_accessor :heating_set_point_fahrenheit
812
1159
  # 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
+ # @return [String, nil]
813
1161
  attr_accessor :hvac_mode_setting
814
1162
  # 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
+ # @return [Boolean]
815
1164
  # @deprecated Use 'thermostat_schedule.is_override_allowed'
816
1165
  attr_accessor :manual_override_allowed
817
1166
  # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1167
+ # @return [String, nil]
818
1168
  attr_accessor :name
819
1169
  end
820
1170
 
821
1171
  class CurrentClimateSetting < BaseResource
822
1172
  class EcobeeMetadata < BaseResource
823
1173
  # Reference to the Ecobee climate, if applicable.
1174
+ # @return [String, nil]
824
1175
  attr_accessor :climate_ref
825
1176
  # Indicates if the climate preset is optimized by Ecobee.
1177
+ # @return [Boolean, nil]
826
1178
  attr_accessor :is_optimized
827
1179
  # Indicates whether the climate preset is owned by the user or the system.
1180
+ # @return [String, nil]
828
1181
  attr_accessor :owner
829
1182
  end
830
1183
 
1184
+ # Metadata specific to the Ecobee climate, if applicable.
1185
+ # @return [EcobeeMetadata, nil]
831
1186
  resource_accessor :ecobee_metadata, EcobeeMetadata
832
1187
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
1188
+ # @return [Boolean, nil]
833
1189
  attr_accessor :can_delete
834
1190
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
1191
+ # @return [Boolean, nil]
835
1192
  attr_accessor :can_edit
836
1193
  # 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.
1194
+ # @return [Boolean, nil]
837
1195
  attr_accessor :can_use_with_thermostat_daily_programs
838
1196
  # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1197
+ # @return [String, nil]
839
1198
  attr_accessor :climate_preset_key
840
1199
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1200
+ # @return [String, nil]
841
1201
  attr_accessor :climate_preset_mode
842
1202
  # 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
+ # @return [Float, nil]
843
1204
  attr_accessor :cooling_set_point_celsius
844
1205
  # 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).
1206
+ # @return [Float, nil]
845
1207
  attr_accessor :cooling_set_point_fahrenheit
846
1208
  # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1209
+ # @return [String, nil]
847
1210
  attr_accessor :display_name
848
1211
  # 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
+ # @return [String, nil]
849
1213
  attr_accessor :fan_mode_setting
850
1214
  # 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
+ # @return [Float, nil]
851
1216
  attr_accessor :heating_set_point_celsius
852
1217
  # 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).
1218
+ # @return [Float, nil]
853
1219
  attr_accessor :heating_set_point_fahrenheit
854
1220
  # 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
+ # @return [String, nil]
855
1222
  attr_accessor :hvac_mode_setting
856
1223
  # 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
+ # @return [Boolean, nil]
857
1225
  # @deprecated Use 'thermostat_schedule.is_override_allowed'
858
1226
  attr_accessor :manual_override_allowed
859
1227
  # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1228
+ # @return [String, nil]
860
1229
  attr_accessor :name
861
1230
  end
862
1231
 
863
1232
  class DefaultClimateSetting < BaseResource
864
1233
  class EcobeeMetadata < BaseResource
865
1234
  # Reference to the Ecobee climate, if applicable.
1235
+ # @return [String, nil]
866
1236
  attr_accessor :climate_ref
867
1237
  # Indicates if the climate preset is optimized by Ecobee.
1238
+ # @return [Boolean, nil]
868
1239
  attr_accessor :is_optimized
869
1240
  # Indicates whether the climate preset is owned by the user or the system.
1241
+ # @return [String, nil]
870
1242
  attr_accessor :owner
871
1243
  end
872
1244
 
1245
+ # Metadata specific to the Ecobee climate, if applicable.
1246
+ # @return [EcobeeMetadata, nil]
873
1247
  resource_accessor :ecobee_metadata, EcobeeMetadata
874
1248
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be deleted.
1249
+ # @return [Boolean, nil]
875
1250
  attr_accessor :can_delete
876
1251
  # Indicates whether the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) key can be edited.
1252
+ # @return [Boolean, nil]
877
1253
  attr_accessor :can_edit
878
1254
  # 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.
1255
+ # @return [Boolean, nil]
879
1256
  attr_accessor :can_use_with_thermostat_daily_programs
880
1257
  # Unique key to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1258
+ # @return [String, nil]
881
1259
  attr_accessor :climate_preset_key
882
1260
  # The climate preset mode for the thermostat, based on the available climate preset modes reported by the device.
1261
+ # @return [String, nil]
883
1262
  attr_accessor :climate_preset_mode
884
1263
  # 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
+ # @return [Float, nil]
885
1265
  attr_accessor :cooling_set_point_celsius
886
1266
  # 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).
1267
+ # @return [Float, nil]
887
1268
  attr_accessor :cooling_set_point_fahrenheit
888
1269
  # Display name for the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1270
+ # @return [String, nil]
889
1271
  attr_accessor :display_name
890
1272
  # 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
+ # @return [String, nil]
891
1274
  attr_accessor :fan_mode_setting
892
1275
  # 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
+ # @return [Float, nil]
893
1277
  attr_accessor :heating_set_point_celsius
894
1278
  # 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).
1279
+ # @return [Float, nil]
895
1280
  attr_accessor :heating_set_point_fahrenheit
896
1281
  # 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
+ # @return [String, nil]
897
1283
  attr_accessor :hvac_mode_setting
898
1284
  # 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
+ # @return [Boolean, nil]
899
1286
  # @deprecated Use 'thermostat_schedule.is_override_allowed'
900
1287
  attr_accessor :manual_override_allowed
901
1288
  # User-friendly name to identify the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets).
1289
+ # @return [String, nil]
902
1290
  attr_accessor :name
903
1291
  end
904
1292
 
905
1293
  class TemperatureThreshold < BaseResource
906
1294
  # 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.
1295
+ # @return [Float, nil]
907
1296
  attr_accessor :lower_limit_celsius
908
1297
  # 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.
1298
+ # @return [Float, nil]
909
1299
  attr_accessor :lower_limit_fahrenheit
910
1300
  # 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.
1301
+ # @return [Float, nil]
911
1302
  attr_accessor :upper_limit_celsius
912
1303
  # 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.
1304
+ # @return [Float, nil]
913
1305
  attr_accessor :upper_limit_fahrenheit
914
1306
  end
915
1307
 
916
1308
  class ThermostatDailyPrograms < BaseResource
917
1309
  class Periods < BaseResource
918
1310
  # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to activate at the `starts_at_time`.
1311
+ # @return [String]
919
1312
  attr_accessor :climate_preset_key
920
1313
  # Time at which the thermostat daily program period starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
1314
+ # @return [String]
921
1315
  attr_accessor :starts_at_time
922
1316
  end
923
1317
 
1318
+ # Array of thermostat daily program periods.
1319
+ # @return [Array<Periods>]
924
1320
  resource_list_accessor :periods, Periods
925
1321
  # ID of the thermostat device on which the thermostat daily program is configured.
1322
+ # @return [String]
926
1323
  attr_accessor :device_id
927
1324
  # User-friendly name to identify the thermostat daily program.
1325
+ # @return [String, nil]
928
1326
  attr_accessor :name
929
1327
  # ID of the thermostat daily program.
1328
+ # @return [String]
930
1329
  attr_accessor :thermostat_daily_program_id
931
1330
  # ID of the workspace that contains the thermostat daily program.
1331
+ # @return [String]
932
1332
  attr_accessor :workspace_id
933
1333
  # Date and time at which the thermostat daily program was created.
1334
+ # @return [Time]
934
1335
  date_accessor :created_at
935
1336
  end
936
1337
 
937
1338
  class ThermostatWeeklyProgram < BaseResource
938
1339
  # ID of the thermostat daily program to run on Fridays.
1340
+ # @return [String, nil]
939
1341
  attr_accessor :friday_program_id
940
1342
  # ID of the thermostat daily program to run on Mondays.
1343
+ # @return [String, nil]
941
1344
  attr_accessor :monday_program_id
942
1345
  # ID of the thermostat daily program to run on Saturdays.
1346
+ # @return [String, nil]
943
1347
  attr_accessor :saturday_program_id
944
1348
  # ID of the thermostat daily program to run on Sundays.
1349
+ # @return [String, nil]
945
1350
  attr_accessor :sunday_program_id
946
1351
  # ID of the thermostat daily program to run on Thursdays.
1352
+ # @return [String, nil]
947
1353
  attr_accessor :thursday_program_id
948
1354
  # ID of the thermostat daily program to run on Tuesdays.
1355
+ # @return [String, nil]
949
1356
  attr_accessor :tuesday_program_id
950
1357
  # ID of the thermostat daily program to run on Wednesdays.
1358
+ # @return [String, nil]
951
1359
  attr_accessor :wednesday_program_id
952
1360
  # Date and time at which the thermostat weekly program was created.
1361
+ # @return [Time]
953
1362
  date_accessor :created_at
954
1363
  end
955
1364
 
1365
+ # Accessory keypad properties and state.
1366
+ # @return [AccessoryKeypad, nil]
956
1367
  resource_accessor :accessory_keypad, AccessoryKeypad
1368
+ # Appearance-related properties, as reported by the device.
1369
+ # @return [Appearance]
957
1370
  resource_accessor :appearance, Appearance
1371
+ # Represents the current status of the battery charge level.
1372
+ # @return [Battery, nil]
958
1373
  resource_accessor :battery, Battery
1374
+ # Device model-related properties.
1375
+ # @return [Model]
959
1376
  resource_accessor :model, Model
1377
+ # ASSA ABLOY Credential Service metadata for the phone.
1378
+ # @return [AssaAbloyCredentialServiceMetadata, nil]
960
1379
  resource_accessor :assa_abloy_credential_service_metadata, AssaAbloyCredentialServiceMetadata
1380
+ # Salto Space credential service metadata for the phone.
1381
+ # @return [SaltoSpaceCredentialServiceMetadata, nil]
961
1382
  resource_accessor :salto_space_credential_service_metadata, SaltoSpaceCredentialServiceMetadata
1383
+ # Metadata for an Akiles device.
1384
+ # @return [AkilesMetadata, nil]
962
1385
  resource_accessor :akiles_metadata, AkilesMetadata
1386
+ # Metadata for an Aqara device.
1387
+ # @return [AqaraMetadata, nil]
963
1388
  resource_accessor :aqara_metadata, AqaraMetadata
1389
+ # Metadata for an ASSA ABLOY Vostio system.
1390
+ # @return [AssaAbloyVostioMetadata, nil]
964
1391
  resource_accessor :assa_abloy_vostio_metadata, AssaAbloyVostioMetadata
1392
+ # Metadata for an August device.
1393
+ # @return [AugustMetadata, nil]
965
1394
  resource_accessor :august_metadata, AugustMetadata
1395
+ # Metadata for an Avigilon Alta system.
1396
+ # @return [AvigilonAltaMetadata, nil]
966
1397
  resource_accessor :avigilon_alta_metadata, AvigilonAltaMetadata
1398
+ # Metadata for a Brivo device.
1399
+ # @return [BrivoMetadata, nil]
967
1400
  resource_accessor :brivo_metadata, BrivoMetadata
1401
+ # Metadata for a ControlByWeb device.
1402
+ # @return [ControlbywebMetadata, nil]
968
1403
  resource_accessor :controlbyweb_metadata, ControlbywebMetadata
1404
+ # Metadata for a dormakaba Oracode device.
1405
+ # @return [DormakabaOracodeMetadata, nil]
969
1406
  resource_accessor :dormakaba_oracode_metadata, DormakabaOracodeMetadata
1407
+ # Metadata for an ecobee device.
1408
+ # @return [EcobeeMetadata, nil]
970
1409
  resource_accessor :ecobee_metadata, EcobeeMetadata
1410
+ # Metadata for a 4SUITES device.
1411
+ # @return [FourSuitesMetadata, nil]
971
1412
  resource_accessor :four_suites_metadata, FourSuitesMetadata
1413
+ # Metadata for a Genie device.
1414
+ # @return [GenieMetadata, nil]
972
1415
  resource_accessor :genie_metadata, GenieMetadata
1416
+ # Metadata for a Honeywell Resideo device.
1417
+ # @return [HoneywellResideoMetadata, nil]
973
1418
  resource_accessor :honeywell_resideo_metadata, HoneywellResideoMetadata
1419
+ # Metadata for an igloo device.
1420
+ # @return [IglooMetadata, nil]
974
1421
  resource_accessor :igloo_metadata, IglooMetadata
1422
+ # Metadata for an igloohome device.
1423
+ # @return [IgloohomeMetadata, nil]
975
1424
  resource_accessor :igloohome_metadata, IgloohomeMetadata
1425
+ # Metadata for a KeyNest device.
1426
+ # @return [KeynestMetadata, nil]
976
1427
  resource_accessor :keynest_metadata, KeynestMetadata
1428
+ # Metadata for a Kisi device.
1429
+ # @return [KisiMetadata, nil]
977
1430
  resource_accessor :kisi_metadata, KisiMetadata
1431
+ # Metadata for a Korelock device.
1432
+ # @return [KorelockMetadata, nil]
978
1433
  resource_accessor :korelock_metadata, KorelockMetadata
1434
+ # Metadata for a Kwikset device.
1435
+ # @return [KwiksetMetadata, nil]
979
1436
  resource_accessor :kwikset_metadata, KwiksetMetadata
1437
+ # Metadata for a Lockly device.
1438
+ # @return [LocklyMetadata, nil]
980
1439
  resource_accessor :lockly_metadata, LocklyMetadata
1440
+ # Metadata for a Minut device.
1441
+ # @return [MinutMetadata, nil]
981
1442
  resource_accessor :minut_metadata, MinutMetadata
1443
+ # Metadata for a Google Nest device.
1444
+ # @return [NestMetadata, nil]
982
1445
  resource_accessor :nest_metadata, NestMetadata
1446
+ # Metadata for a NoiseAware device.
1447
+ # @return [NoiseawareMetadata, nil]
983
1448
  resource_accessor :noiseaware_metadata, NoiseawareMetadata
1449
+ # Metadata for a Nuki device.
1450
+ # @return [NukiMetadata, nil]
984
1451
  resource_accessor :nuki_metadata, NukiMetadata
1452
+ # Metadata for an Omnitec device.
1453
+ # @return [OmnitecMetadata, nil]
985
1454
  resource_accessor :omnitec_metadata, OmnitecMetadata
1455
+ # Metadata for a Ring device.
1456
+ # @return [RingMetadata, nil]
986
1457
  resource_accessor :ring_metadata, RingMetadata
1458
+ # Metadata for a Salto KS device.
1459
+ # @return [SaltoKsMetadata, nil]
987
1460
  resource_accessor :salto_ks_metadata, SaltoKsMetadata
1461
+ # Metada for a Salto device.
1462
+ # @return [SaltoMetadata, nil]
988
1463
  resource_accessor :salto_metadata, SaltoMetadata
1464
+ # Metadata for a Schlage device.
1465
+ # @return [SchlageMetadata, nil]
989
1466
  resource_accessor :schlage_metadata, SchlageMetadata
1467
+ # Metadata for Seam Bridge.
1468
+ # @return [SeamBridgeMetadata, nil]
990
1469
  resource_accessor :seam_bridge_metadata, SeamBridgeMetadata
1470
+ # Metadata for a Sensi device.
1471
+ # @return [SensiMetadata, nil]
991
1472
  resource_accessor :sensi_metadata, SensiMetadata
1473
+ # Metadata for a SmartThings device.
1474
+ # @return [SmartthingsMetadata, nil]
992
1475
  resource_accessor :smartthings_metadata, SmartthingsMetadata
1476
+ # Metadata for a tado° device.
1477
+ # @return [TadoMetadata, nil]
993
1478
  resource_accessor :tado_metadata, TadoMetadata
1479
+ # Metadata for a Tedee device.
1480
+ # @return [TedeeMetadata, nil]
994
1481
  resource_accessor :tedee_metadata, TedeeMetadata
1482
+ # Metadata for a TTLock device.
1483
+ # @return [TtlockMetadata, nil]
995
1484
  resource_accessor :ttlock_metadata, TtlockMetadata
1485
+ # Metadata for a 2N device.
1486
+ # @return [TwoNMetadata, nil]
996
1487
  resource_accessor :two_n_metadata, TwoNMetadata
1488
+ # Metadata for an Ultraloq device.
1489
+ # @return [UltraloqMetadata, nil]
997
1490
  resource_accessor :ultraloq_metadata, UltraloqMetadata
1491
+ # Metadata for an ASSA ABLOY Visionline system.
1492
+ # @return [VisionlineMetadata, nil]
998
1493
  resource_accessor :visionline_metadata, VisionlineMetadata
1494
+ # Metadata for a Wyze device.
1495
+ # @return [WyzeMetadata, nil]
999
1496
  resource_accessor :wyze_metadata, WyzeMetadata
1497
+ # Metadata for a Yacan device.
1498
+ # @return [YacanMetadata, nil]
1499
+ resource_accessor :yacan_metadata, YacanMetadata
1500
+ # Keypad battery status.
1501
+ # @return [KeypadBattery, nil]
1000
1502
  resource_accessor :keypad_battery, KeypadBattery
1503
+ # Active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1504
+ # @return [ActiveThermostatSchedule, nil]
1001
1505
  resource_accessor :active_thermostat_schedule, ActiveThermostatSchedule
1506
+ # Current climate setting.
1507
+ # @return [CurrentClimateSetting, nil]
1002
1508
  resource_accessor :current_climate_setting, CurrentClimateSetting
1509
+ # @return [DefaultClimateSetting, nil]
1003
1510
  resource_accessor :default_climate_setting, DefaultClimateSetting
1511
+ # Current [temperature threshold](https://docs.seam.co/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds) set for the thermostat.
1512
+ # @return [TemperatureThreshold, nil]
1004
1513
  resource_accessor :temperature_threshold, TemperatureThreshold
1514
+ # Current [weekly program](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.
1515
+ # @return [ThermostatWeeklyProgram, nil]
1005
1516
  resource_accessor :thermostat_weekly_program, ThermostatWeeklyProgram
1517
+ # Constraints on access codes for the device. Seam represents each constraint as an object with a `constraint_type` property. Depending on the constraint type, there may also be additional properties. Note that some constraints are manufacturer- or device-specific.
1518
+ # @return [Array<CodeConstraints>]
1006
1519
  resource_list_accessor :code_constraints, CodeConstraints
1520
+ # Time frames that may be requested when creating an offline access code, expressed as a list of options. The caller picks one option (by matching the requested duration when the options' duration ranges do not overlap, or by `display_name` when they do) and satisfies that one option's rules. When `undefined`, any time frame works.
1521
+ # @return [Array<OfflineTimeFrameOptions>]
1007
1522
  resource_list_accessor :offline_time_frame_options, OfflineTimeFrameOptions
1523
+ # Time frames that may be requested when creating an online access code, expressed as a list of options. The caller picks one option (by matching the requested duration when the options' duration ranges do not overlap, or by `display_name` when they do) and satisfies that one option's rules. When `undefined`, any time frame works.
1524
+ # @return [Array<OnlineTimeFrameOptions>]
1008
1525
  resource_list_accessor :online_time_frame_options, OnlineTimeFrameOptions
1526
+ # Available [climate presets](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) for the thermostat.
1527
+ # @return [Array<AvailableClimatePresets>]
1009
1528
  resource_list_accessor :available_climate_presets, AvailableClimatePresets
1529
+ # Configured [daily programs](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-programs) for the thermostat.
1530
+ # @return [Array<ThermostatDailyPrograms>]
1010
1531
  resource_list_accessor :thermostat_daily_programs, ThermostatDailyPrograms
1011
1532
  # Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.
1533
+ # @return [Float, nil]
1012
1534
  attr_accessor :battery_level
1013
1535
  # Array of noise threshold IDs that are currently triggering.
1536
+ # @return [Array<String>]
1014
1537
  attr_accessor :currently_triggering_noise_threshold_ids
1015
1538
  # Indicates whether the device has direct power.
1539
+ # @return [Boolean, nil]
1016
1540
  attr_accessor :has_direct_power
1017
1541
  # Alt text for the device image.
1542
+ # @return [String, nil]
1018
1543
  attr_accessor :image_alt_text
1019
1544
  # Image URL for the device.
1545
+ # @return [String, nil]
1020
1546
  attr_accessor :image_url
1021
1547
  # 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.
1548
+ # @return [String, nil]
1022
1549
  attr_accessor :manufacturer
1023
1550
  # Name of the device.
1551
+ # @return [String]
1024
1552
  # @deprecated use device.display_name instead
1025
1553
  attr_accessor :name
1026
1554
  # Indicates current noise level in decibels, if the device supports noise detection.
1555
+ # @return [Float, nil]
1027
1556
  attr_accessor :noise_level_decibels
1028
1557
  # Indicates whether it is currently possible to use offline access codes for the device.
1558
+ # @return [Boolean, nil]
1029
1559
  # @deprecated use device.can_program_offline_access_codes
1030
1560
  attr_accessor :offline_access_codes_enabled
1031
1561
  # Indicates whether the device is online.
1562
+ # @return [Boolean]
1032
1563
  attr_accessor :online
1033
1564
  # Indicates whether it is currently possible to use online access codes for the device.
1565
+ # @return [Boolean, nil]
1034
1566
  # @deprecated use device.can_program_online_access_codes
1035
1567
  attr_accessor :online_access_codes_enabled
1036
1568
  # Serial number of the device.
1569
+ # @return [String, nil]
1037
1570
  attr_accessor :serial_number
1571
+ # @return [Boolean, nil]
1038
1572
  # @deprecated use device.properties.model.can_connect_accessory_keypad
1039
1573
  attr_accessor :supports_accessory_keypad
1574
+ # @return [Boolean, nil]
1040
1575
  # @deprecated use offline_access_codes_enabled
1041
1576
  attr_accessor :supports_offline_access_codes
1042
1577
  # The delay in seconds before the lock automatically locks after being unlocked.
1578
+ # @return [Float, nil]
1043
1579
  attr_accessor :auto_lock_delay_seconds
1044
1580
  # Indicates whether automatic locking is enabled.
1581
+ # @return [Boolean, nil]
1045
1582
  attr_accessor :auto_lock_enabled
1046
1583
  # 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).
1584
+ # @return [Boolean, nil]
1047
1585
  attr_accessor :backup_access_code_pool_enabled
1048
1586
  # Indicates whether the door is open.
1587
+ # @return [Boolean, nil]
1049
1588
  attr_accessor :door_open
1050
1589
  # Indicates whether the device supports native entry events.
1590
+ # @return [Boolean, nil]
1051
1591
  attr_accessor :has_native_entry_events
1052
1592
  # Indicates whether the lock is locked.
1593
+ # @return [Boolean, nil]
1053
1594
  attr_accessor :locked
1054
1595
  # Maximum number of active access codes that the device supports.
1596
+ # @return [Float, nil]
1055
1597
  attr_accessor :max_active_codes_supported
1056
1598
  # Supported code lengths for access codes.
1599
+ # @return [Array<Float>]
1057
1600
  attr_accessor :supported_code_lengths
1058
1601
  # Indicates whether the device supports a [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes).
1602
+ # @return [Boolean, nil]
1059
1603
  attr_accessor :supports_backup_access_code_pool
1060
1604
  # ID of the active [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
1605
+ # @return [String, nil]
1061
1606
  attr_accessor :active_thermostat_schedule_id
1062
1607
  # Climate preset modes that the thermostat supports, such as "home", "away", "wake", "sleep", "occupied", and "unoccupied".
1608
+ # @return [Array<String>]
1063
1609
  attr_accessor :available_climate_preset_modes
1064
1610
  # Fan mode settings that the thermostat supports.
1611
+ # @return [Array<String>]
1065
1612
  attr_accessor :available_fan_mode_settings
1066
1613
  # HVAC mode settings that the thermostat supports.
1614
+ # @return [Array<String>]
1067
1615
  attr_accessor :available_hvac_mode_settings
1068
1616
  # 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
+ # @return [String, nil]
1069
1618
  attr_accessor :fallback_climate_preset_key
1619
+ # @return [String, nil]
1070
1620
  # @deprecated Use `current_climate_setting.fan_mode_setting` instead.
1071
1621
  attr_accessor :fan_mode_setting
1072
1622
  # Indicates whether the connected HVAC system is currently cooling, as reported by the thermostat.
1623
+ # @return [Boolean, nil]
1073
1624
  attr_accessor :is_cooling
1074
1625
  # Indicates whether the fan in the connected HVAC system is currently running, as reported by the thermostat.
1626
+ # @return [Boolean, nil]
1075
1627
  attr_accessor :is_fan_running
1076
1628
  # Indicates whether the connected HVAC system is currently heating, as reported by the thermostat.
1629
+ # @return [Boolean, nil]
1077
1630
  attr_accessor :is_heating
1078
1631
  # 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`.
1632
+ # @return [Boolean, nil]
1079
1633
  attr_accessor :is_temporary_manual_override_active
1080
1634
  # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
1635
+ # @return [Float, nil]
1081
1636
  attr_accessor :max_cooling_set_point_celsius
1082
1637
  # Maximum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
1638
+ # @return [Float, nil]
1083
1639
  attr_accessor :max_cooling_set_point_fahrenheit
1084
1640
  # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
1641
+ # @return [Float, nil]
1085
1642
  attr_accessor :max_heating_set_point_celsius
1086
1643
  # Maximum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
1644
+ # @return [Float, nil]
1087
1645
  attr_accessor :max_heating_set_point_fahrenheit
1088
1646
  # 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.
1647
+ # @return [Float, nil]
1089
1648
  attr_accessor :max_thermostat_daily_program_periods_per_day
1090
1649
  # Maximum number of climate presets that the thermostat can support for weekly programming.
1650
+ # @return [Float, nil]
1091
1651
  attr_accessor :max_unique_climate_presets_per_thermostat_weekly_program
1092
1652
  # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °C.
1653
+ # @return [Float, nil]
1093
1654
  attr_accessor :min_cooling_set_point_celsius
1094
1655
  # Minimum [cooling set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#cooling-set-point) in °F.
1656
+ # @return [Float, nil]
1095
1657
  attr_accessor :min_cooling_set_point_fahrenheit
1096
1658
  # 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.
1659
+ # @return [Float, nil]
1097
1660
  attr_accessor :min_heating_cooling_delta_celsius
1098
1661
  # 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.
1662
+ # @return [Float, nil]
1099
1663
  attr_accessor :min_heating_cooling_delta_fahrenheit
1100
1664
  # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °C.
1665
+ # @return [Float, nil]
1101
1666
  attr_accessor :min_heating_set_point_celsius
1102
1667
  # Minimum [heating set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points#heating-set-point) in °F.
1668
+ # @return [Float, nil]
1103
1669
  attr_accessor :min_heating_set_point_fahrenheit
1104
1670
  # Reported relative humidity, as a value between 0 and 1, inclusive.
1671
+ # @return [Float, nil]
1105
1672
  attr_accessor :relative_humidity
1106
1673
  # Reported temperature in °C.
1674
+ # @return [Float, nil]
1107
1675
  attr_accessor :temperature_celsius
1108
1676
  # Reported temperature in °F.
1677
+ # @return [Float, nil]
1109
1678
  attr_accessor :temperature_fahrenheit
1110
1679
  # 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.
1680
+ # @return [Float, nil]
1111
1681
  attr_accessor :thermostat_daily_program_period_precision_minutes
1112
1682
  end
1113
1683
 
1114
1684
  class Warnings < BaseResource
1115
1685
  # Number of active access codes on the device when the warning was set.
1686
+ # @return [Integer]
1116
1687
  attr_accessor :active_access_code_count
1117
1688
  # Maximum number of active access codes supported by the device.
1689
+ # @return [Integer]
1118
1690
  attr_accessor :max_active_access_code_count
1119
1691
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
1692
+ # @return [String]
1120
1693
  attr_accessor :message
1121
1694
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
1695
+ # @return [String]
1122
1696
  attr_accessor :warning_code
1123
1697
  # Date and time at which Seam created the warning.
1698
+ # @return [Time]
1124
1699
  date_accessor :created_at
1125
1700
  end
1126
1701
 
1702
+ # Manufacturer of the device. Represents the hardware brand, which may differ from the provider.
1703
+ # @return [DeviceManufacturer, nil]
1127
1704
  resource_accessor :device_manufacturer, DeviceManufacturer
1705
+ # Provider of the device. Represents the third-party service through which the device is controlled.
1706
+ # @return [DeviceProvider, nil]
1128
1707
  resource_accessor :device_provider, DeviceProvider
1708
+ # Location information for the device.
1709
+ # @return [Location, nil]
1129
1710
  resource_accessor :location, Location
1711
+ # Properties of the device.
1712
+ # @return [Properties]
1130
1713
  resource_accessor :properties, Properties
1714
+ # Array of errors associated with the device. Each error object within the array contains two fields: `error_code` and `message`. `error_code` is a string that uniquely identifies the type of error, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the error, offering insights into the issue and potentially how to rectify it.
1715
+ # @return [Array<Errors>]
1131
1716
  resource_list_accessor :errors, Errors
1717
+ # Array of warnings associated with the device. Each warning object within the array contains two fields: `warning_code` and `message`. `warning_code` is a string that uniquely identifies the type of warning, enabling quick recognition and categorization of the issue. `message` provides a more detailed description of the warning, offering insights into the issue and potentially how to rectify it.
1718
+ # @return [Array<Warnings>]
1132
1719
  resource_list_accessor :warnings, Warnings
1133
1720
  # Indicates whether the lock supports configuring automatic locking.
1721
+ # @return [Boolean, nil]
1134
1722
  attr_accessor :can_configure_auto_lock
1135
1723
  # Indicates whether the thermostat supports cooling.
1724
+ # @return [Boolean, nil]
1136
1725
  attr_accessor :can_hvac_cool
1137
1726
  # Indicates whether the thermostat supports heating.
1727
+ # @return [Boolean, nil]
1138
1728
  attr_accessor :can_hvac_heat
1139
1729
  # Indicates whether the thermostat supports simultaneous heating and cooling.
1730
+ # @return [Boolean, nil]
1140
1731
  attr_accessor :can_hvac_heat_cool
1141
1732
  # Indicates whether the device supports programming offline access codes.
1733
+ # @return [Boolean, nil]
1142
1734
  attr_accessor :can_program_offline_access_codes
1143
1735
  # Indicates whether the device supports programming online access codes.
1736
+ # @return [Boolean, nil]
1144
1737
  attr_accessor :can_program_online_access_codes
1145
1738
  # Indicates whether the thermostat supports different climate programs for each day of the week.
1739
+ # @return [Boolean, nil]
1146
1740
  attr_accessor :can_program_thermostat_programs_as_different_each_day
1147
1741
  # Indicates whether the thermostat supports a single climate program applied to every day.
1742
+ # @return [Boolean, nil]
1148
1743
  attr_accessor :can_program_thermostat_programs_as_same_each_day
1149
1744
  # Indicates whether the thermostat supports weekday/weekend climate programs.
1745
+ # @return [Boolean, nil]
1150
1746
  attr_accessor :can_program_thermostat_programs_as_weekday_weekend
1151
1747
  # Indicates whether the device supports remote locking.
1748
+ # @return [Boolean, nil]
1152
1749
  attr_accessor :can_remotely_lock
1153
1750
  # Indicates whether the device supports remote unlocking.
1751
+ # @return [Boolean, nil]
1154
1752
  attr_accessor :can_remotely_unlock
1155
1753
  # Indicates whether the thermostat supports running climate programs.
1754
+ # @return [Boolean, nil]
1156
1755
  attr_accessor :can_run_thermostat_programs
1157
1756
  # Indicates whether the device supports simulating connection in a sandbox.
1757
+ # @return [Boolean, nil]
1158
1758
  attr_accessor :can_simulate_connection
1159
1759
  # Indicates whether the device supports simulating disconnection in a sandbox.
1760
+ # @return [Boolean, nil]
1160
1761
  attr_accessor :can_simulate_disconnection
1161
1762
  # Indicates whether the hub supports simulating connection in a sandbox.
1763
+ # @return [Boolean, nil]
1162
1764
  attr_accessor :can_simulate_hub_connection
1163
1765
  # Indicates whether the hub supports simulating disconnection in a sandbox.
1766
+ # @return [Boolean, nil]
1164
1767
  attr_accessor :can_simulate_hub_disconnection
1165
1768
  # Indicates whether the device supports simulating a paid subscription in a sandbox.
1769
+ # @return [Boolean, nil]
1166
1770
  attr_accessor :can_simulate_paid_subscription
1167
1771
  # Indicates whether the device supports simulating removal in a sandbox.
1772
+ # @return [Boolean, nil]
1168
1773
  attr_accessor :can_simulate_removal
1169
1774
  # Indicates whether the thermostat can be turned off.
1775
+ # @return [Boolean, nil]
1170
1776
  attr_accessor :can_turn_off_hvac
1171
1777
  # Indicates whether the lock supports unlocking with an access code.
1778
+ # @return [Boolean, nil]
1172
1779
  attr_accessor :can_unlock_with_code
1173
1780
  # 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
+ # @return [Array<String>]
1174
1782
  attr_accessor :capabilities_supported
1175
1783
  # Unique identifier for the account associated with the device.
1784
+ # @return [String]
1176
1785
  attr_accessor :connected_account_id
1177
1786
  # 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]
1178
1788
  attr_accessor :custom_metadata
1179
1789
  # ID of the device.
1790
+ # @return [String]
1180
1791
  attr_accessor :device_id
1181
1792
  # Type of the device.
1793
+ # @return [String]
1182
1794
  attr_accessor :device_type
1183
1795
  # 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
+ # @return [String]
1184
1797
  attr_accessor :display_name
1185
1798
  # Indicates whether Seam manages the device. See also [Managed and Unmanaged Devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).
1799
+ # @return [Boolean]
1186
1800
  attr_accessor :is_managed
1187
1801
  # Optional nickname to describe the device, settable through Seam.
1802
+ # @return [String, nil]
1188
1803
  attr_accessor :nickname
1189
1804
  # IDs of the spaces the device is in.
1805
+ # @return [Array<String>]
1190
1806
  attr_accessor :space_ids
1191
1807
  # Unique identifier for the Seam workspace associated with the device.
1808
+ # @return [String]
1192
1809
  attr_accessor :workspace_id
1193
1810
 
1194
1811
  # Date and time at which the device object was created.
1812
+ # @return [Time]
1195
1813
  date_accessor :created_at
1196
1814
  end
1197
1815
  end