seam 2.143.0 → 2.146.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +11 -7
  4. data/lib/seam/base_resource.rb +24 -3
  5. data/lib/seam/resources/access_code.rb +702 -43
  6. data/lib/seam/resources/access_grant.rb +192 -25
  7. data/lib/seam/resources/access_method.rb +108 -3
  8. data/lib/seam/resources/acs_access_group.rb +52 -0
  9. data/lib/seam/resources/acs_credential.rb +153 -6
  10. data/lib/seam/resources/acs_encoder.rb +2 -0
  11. data/lib/seam/resources/acs_entrance.rb +105 -0
  12. data/lib/seam/resources/acs_system.rb +278 -6
  13. data/lib/seam/resources/acs_user.rb +201 -0
  14. data/lib/seam/resources/action_attempt.rb +1460 -279
  15. data/lib/seam/resources/connect_webview.rb +15 -1
  16. data/lib/seam/resources/connected_account.rb +285 -41
  17. data/lib/seam/resources/device.rb +929 -14
  18. data/lib/seam/resources/device_provider.rb +74 -0
  19. data/lib/seam/resources/event.rb +5205 -316
  20. data/lib/seam/resources/phone.rb +3 -0
  21. data/lib/seam/resources/unmanaged_access_code.rb +697 -43
  22. data/lib/seam/resources/unmanaged_access_grant.rb +189 -25
  23. data/lib/seam/resources/unmanaged_access_method.rb +108 -3
  24. data/lib/seam/resources/unmanaged_device.rb +827 -14
  25. data/lib/seam/resources/unmanaged_user_identity.rb +73 -0
  26. data/lib/seam/resources/user_identity.rb +73 -0
  27. data/lib/seam/resources/workspace.rb +3 -0
  28. data/lib/seam/routes/access_codes.rb +1 -1
  29. data/lib/seam/routes/access_grants.rb +2 -2
  30. data/lib/seam/routes/access_methods.rb +1 -1
  31. data/lib/seam/routes/acs_credentials.rb +4 -4
  32. data/lib/seam/routes/acs_encoders.rb +3 -3
  33. data/lib/seam/routes/acs_entrances.rb +2 -2
  34. data/lib/seam/routes/action_attempts.rb +1 -1
  35. data/lib/seam/routes/connect_webviews.rb +3 -3
  36. data/lib/seam/routes/connected_accounts.rb +3 -3
  37. data/lib/seam/routes/customers.rb +1 -1
  38. data/lib/seam/routes/devices.rb +3 -3
  39. data/lib/seam/routes/devices_unmanaged.rb +2 -2
  40. data/lib/seam/routes/events.rb +2 -2
  41. data/lib/seam/routes/locks.rb +1 -1
  42. data/lib/seam/routes/noise_sensors.rb +1 -1
  43. data/lib/seam/routes/spaces.rb +3 -3
  44. data/lib/seam/routes/thermostats.rb +1 -1
  45. data/lib/seam/routes/user_identities.rb +23 -1
  46. data/lib/seam/version.rb +1 -1
  47. data/lib/seam/webhook.rb +5 -2
  48. metadata +1 -1
@@ -39,50 +39,503 @@ module Seam
39
39
  attr_accessor :user_level_name
40
40
  end
41
41
 
42
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
42
43
  class Errors < BaseResource
43
- class ModifiedFields < BaseResource
44
- # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`).
44
+ # Indicates a provider-specific issue that prevents the access code from being set or managed. Check the error message for details.
45
+ class ProviderIssue < Errors
46
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
45
47
  # @return [String]
46
- attr_accessor :field
47
- # The previous value of the field.
48
+ # Known values:
49
+ # - `provider_issue`
50
+ attr_accessor :error_code
51
+ # Indicates that this is an access code error.
52
+ # @return [TrueClass]
53
+ attr_accessor :is_access_code_error
54
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
55
+ # @return [String]
56
+ attr_accessor :message
57
+ # Date and time at which Seam created the error.
58
+ # @return [Time, nil]
59
+ date_accessor :created_at
60
+ end
61
+
62
+ # Failed to set code on device.
63
+ class FailedToSetOnDevice < Errors
64
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
65
+ # @return [String]
66
+ # Known values:
67
+ # - `failed_to_set_on_device`
68
+ attr_accessor :error_code
69
+ # Indicates that this is an access code error.
70
+ # @return [TrueClass]
71
+ attr_accessor :is_access_code_error
72
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
73
+ # @return [String]
74
+ attr_accessor :message
75
+ # Date and time at which Seam created the error.
76
+ # @return [Time, nil]
77
+ date_accessor :created_at
78
+ end
79
+
80
+ # Failed to remove code from device.
81
+ class FailedToRemoveFromDevice < Errors
82
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
83
+ # @return [String]
84
+ # Known values:
85
+ # - `failed_to_remove_from_device`
86
+ attr_accessor :error_code
87
+ # Indicates that this is an access code error.
88
+ # @return [TrueClass]
89
+ attr_accessor :is_access_code_error
90
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
91
+ # @return [String]
92
+ attr_accessor :message
93
+ # Date and time at which Seam created the error.
94
+ # @return [Time, nil]
95
+ date_accessor :created_at
96
+ end
97
+
98
+ # Duplicate access code detected on device.
99
+ class DuplicateCodeOnDevice < Errors
100
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
101
+ # @return [String]
102
+ # Known values:
103
+ # - `duplicate_code_on_device`
104
+ attr_accessor :error_code
105
+ # Indicates that this is an access code error.
106
+ # @return [TrueClass]
107
+ attr_accessor :is_access_code_error
108
+ # ID of the managed access code that conflicts with this managed access code, when Seam can identify it.
48
109
  # @return [String, nil]
49
- attr_accessor :from
50
- # The new value of the field.
110
+ attr_accessor :managed_access_code_id
111
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
112
+ # @return [String]
113
+ attr_accessor :message
114
+ # ID of the unmanaged access code that conflicts with this managed access code, when Seam can identify it.
51
115
  # @return [String, nil]
52
- attr_accessor :to
116
+ attr_accessor :unmanaged_access_code_id
117
+ # Date and time at which Seam created the error.
118
+ # @return [Time, nil]
119
+ date_accessor :created_at
120
+ end
121
+
122
+ # No space for access code on device.
123
+ class NoSpaceForAccessCodeOnDevice < Errors
124
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
125
+ # @return [String]
126
+ # Known values:
127
+ # - `no_space_for_access_code_on_device`
128
+ attr_accessor :error_code
129
+ # Indicates that this is an access code error.
130
+ # @return [TrueClass]
131
+ attr_accessor :is_access_code_error
132
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
133
+ # @return [String]
134
+ attr_accessor :message
135
+ # Date and time at which Seam created the error.
136
+ # @return [Time, nil]
137
+ date_accessor :created_at
138
+ end
139
+
140
+ # Code was modified or removed externally after Seam successfully set it on the device. The external change conflicts with the state that Seam is trying to apply, so Seam will attempt to set the code on the device again.
141
+ class ConflictingExternalModification < Errors
142
+ class ModifiedFields < BaseResource
143
+ # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`).
144
+ # @return [String]
145
+ attr_accessor :field
146
+ # The previous value of the field.
147
+ # @return [String, nil]
148
+ attr_accessor :from
149
+ # The new value of the field.
150
+ # @return [String, nil]
151
+ attr_accessor :to
152
+ end
153
+
154
+ # List of fields that were changed externally, with their previous and new values.
155
+ # @return [Array<ModifiedFields>]
156
+ resource_list_accessor :modified_fields, ModifiedFields
157
+ # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
158
+ # @return [String, nil]
159
+ # Known values:
160
+ # - `modified`
161
+ # - `removed`
162
+ attr_accessor :change_type
163
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
164
+ # @return [String]
165
+ # Known values:
166
+ # - `conflicting_external_modification`
167
+ attr_accessor :error_code
168
+ # Indicates that this is an access code error.
169
+ # @return [TrueClass]
170
+ attr_accessor :is_access_code_error
171
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
172
+ # @return [String]
173
+ attr_accessor :message
174
+ # Date and time at which Seam created the error.
175
+ # @return [Time, nil]
176
+ date_accessor :created_at
177
+ end
178
+
179
+ # Indicates that the access code is disabled or inactive on the device. The code exists but will not grant access until re-enabled.
180
+ class AccessCodeInactive < Errors
181
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
182
+ # @return [String]
183
+ # Known values:
184
+ # - `access_code_inactive`
185
+ attr_accessor :error_code
186
+ # Indicates that this is an access code error.
187
+ # @return [TrueClass]
188
+ attr_accessor :is_access_code_error
189
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
190
+ # @return [String]
191
+ attr_accessor :message
192
+ # Date and time at which Seam created the error.
193
+ # @return [Time, nil]
194
+ date_accessor :created_at
195
+ end
196
+
197
+ # The code cannot be set on the device because it violates the device's code constraints (for example, its length, digits, or a too-simple value). The code will not be retried until you change it. See the device's `code_constraints` and `supported_code_lengths`.
198
+ class CodeConstraintsViolated < Errors
199
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
200
+ # @return [String]
201
+ # Known values:
202
+ # - `code_constraints_violated`
203
+ attr_accessor :error_code
204
+ # Indicates that this is an access code error.
205
+ # @return [TrueClass]
206
+ attr_accessor :is_access_code_error
207
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
208
+ # @return [String]
209
+ attr_accessor :message
210
+ # Date and time at which Seam created the error.
211
+ # @return [Time, nil]
212
+ date_accessor :created_at
213
+ end
214
+
215
+ # Indicates that the account is disconnected.
216
+ class AccountDisconnected < Errors
217
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
218
+ # @return [String]
219
+ # Known values:
220
+ # - `account_disconnected`
221
+ attr_accessor :error_code
222
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
223
+ # @return [TrueClass]
224
+ attr_accessor :is_connected_account_error
225
+ # Indicates that the error is not a device error.
226
+ # @return [FalseClass]
227
+ attr_accessor :is_device_error
228
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
229
+ # @return [String]
230
+ attr_accessor :message
231
+ # Date and time at which Seam created the error.
232
+ # @return [Time]
233
+ date_accessor :created_at
234
+ end
235
+
236
+ # Indicates that the Salto site user limit has been reached.
237
+ class SaltoKsSubscriptionLimitExceeded < Errors
238
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
239
+ # @return [String]
240
+ # Known values:
241
+ # - `salto_ks_subscription_limit_exceeded`
242
+ attr_accessor :error_code
243
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
244
+ # @return [TrueClass]
245
+ attr_accessor :is_connected_account_error
246
+ # Indicates that the error is not a device error.
247
+ # @return [FalseClass]
248
+ attr_accessor :is_device_error
249
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
250
+ # @return [String]
251
+ attr_accessor :message
252
+ # Date and time at which Seam created the error.
253
+ # @return [Time]
254
+ date_accessor :created_at
255
+ end
256
+
257
+ # Indicates that Seam's integration user does not have sufficient permissions on the provider's system to which this device belongs, so Seam cannot manage access codes or unlock the device. See the error message for specifics, then either reauthorize the connected account in Seam or grant the integration user the required permissions in the provider's system.
258
+ class InsufficientPermissions < Errors
259
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
260
+ # @return [String]
261
+ # Known values:
262
+ # - `insufficient_permissions`
263
+ attr_accessor :error_code
264
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
265
+ # @return [TrueClass]
266
+ attr_accessor :is_connected_account_error
267
+ # Indicates that the error is not a device error.
268
+ # @return [FalseClass]
269
+ attr_accessor :is_device_error
270
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
271
+ # @return [String]
272
+ attr_accessor :message
273
+ # Date and time at which Seam created the error.
274
+ # @return [Time]
275
+ date_accessor :created_at
276
+ end
277
+
278
+ # Indicates that one or more dormakaba sites associated with the connected account could not be connected. Contact dormakaba support.
279
+ class DormakabaSitesDisconnected < Errors
280
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
281
+ # @return [String]
282
+ # Known values:
283
+ # - `dormakaba_sites_disconnected`
284
+ attr_accessor :error_code
285
+ # Indicates that the error is a [connected account](https://docs.seam.co/api/connected_accounts) error.
286
+ # @return [TrueClass]
287
+ attr_accessor :is_connected_account_error
288
+ # Indicates that the error is not a device error.
289
+ # @return [FalseClass]
290
+ attr_accessor :is_device_error
291
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
292
+ # @return [String]
293
+ attr_accessor :message
294
+ # Date and time at which Seam created the error.
295
+ # @return [Time]
296
+ date_accessor :created_at
297
+ end
298
+
299
+ # Indicates that the device is offline.
300
+ class DeviceOffline < Errors
301
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
302
+ # @return [String]
303
+ # Known values:
304
+ # - `device_offline`
305
+ attr_accessor :error_code
306
+ # Indicates that the error is a device error.
307
+ # @return [TrueClass]
308
+ attr_accessor :is_device_error
309
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
310
+ # @return [String]
311
+ attr_accessor :message
312
+ # Date and time at which Seam created the error.
313
+ # @return [Time]
314
+ date_accessor :created_at
315
+ end
316
+
317
+ # Indicates that the device has been removed.
318
+ class DeviceRemoved < Errors
319
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
320
+ # @return [String]
321
+ # Known values:
322
+ # - `device_removed`
323
+ attr_accessor :error_code
324
+ # Indicates that the error is a device error.
325
+ # @return [TrueClass]
326
+ attr_accessor :is_device_error
327
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
328
+ # @return [String]
329
+ attr_accessor :message
330
+ # Date and time at which Seam created the error.
331
+ # @return [Time]
332
+ date_accessor :created_at
333
+ end
334
+
335
+ # Indicates that the hub is disconnected.
336
+ class HubDisconnected < Errors
337
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
338
+ # @return [String]
339
+ # Known values:
340
+ # - `hub_disconnected`
341
+ attr_accessor :error_code
342
+ # Indicates that the error is a device error.
343
+ # @return [TrueClass]
344
+ attr_accessor :is_device_error
345
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
346
+ # @return [String]
347
+ attr_accessor :message
348
+ # Date and time at which Seam created the error.
349
+ # @return [Time]
350
+ date_accessor :created_at
351
+ end
352
+
353
+ # Indicates that the device is disconnected.
354
+ class DeviceDisconnected < Errors
355
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
356
+ # @return [String]
357
+ # Known values:
358
+ # - `device_disconnected`
359
+ attr_accessor :error_code
360
+ # Indicates that the error is a device error.
361
+ # @return [TrueClass]
362
+ attr_accessor :is_device_error
363
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
364
+ # @return [String]
365
+ attr_accessor :message
366
+ # Date and time at which Seam created the error.
367
+ # @return [Time]
368
+ date_accessor :created_at
369
+ end
370
+
371
+ # Indicates that the [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is empty.
372
+ class EmptyBackupAccessCodePool < Errors
373
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
374
+ # @return [String]
375
+ # Known values:
376
+ # - `empty_backup_access_code_pool`
377
+ attr_accessor :error_code
378
+ # Indicates that the error is a device error.
379
+ # @return [TrueClass]
380
+ attr_accessor :is_device_error
381
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
382
+ # @return [String]
383
+ attr_accessor :message
384
+ # Date and time at which Seam created the error.
385
+ # @return [Time]
386
+ date_accessor :created_at
387
+ end
388
+
389
+ # Indicates that the user is not authorized to use the August lock.
390
+ class AugustLockNotAuthorized < Errors
391
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
392
+ # @return [String]
393
+ # Known values:
394
+ # - `august_lock_not_authorized`
395
+ attr_accessor :error_code
396
+ # Indicates that the error is a device error.
397
+ # @return [TrueClass]
398
+ attr_accessor :is_device_error
399
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
400
+ # @return [String]
401
+ attr_accessor :message
402
+ # Date and time at which Seam created the error.
403
+ # @return [Time]
404
+ date_accessor :created_at
405
+ end
406
+
407
+ # Indicates that device credentials are missing.
408
+ class MissingDeviceCredentials < Errors
409
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
410
+ # @return [String]
411
+ # Known values:
412
+ # - `missing_device_credentials`
413
+ attr_accessor :error_code
414
+ # Indicates that the error is a device error.
415
+ # @return [TrueClass]
416
+ attr_accessor :is_device_error
417
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
418
+ # @return [String]
419
+ attr_accessor :message
420
+ # Date and time at which Seam created the error.
421
+ # @return [Time]
422
+ date_accessor :created_at
423
+ end
424
+
425
+ # Indicates that the auxiliary heat is running.
426
+ class AuxiliaryHeatRunning < Errors
427
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
428
+ # @return [String]
429
+ # Known values:
430
+ # - `auxiliary_heat_running`
431
+ attr_accessor :error_code
432
+ # Indicates that the error is a device error.
433
+ # @return [TrueClass]
434
+ attr_accessor :is_device_error
435
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
436
+ # @return [String]
437
+ attr_accessor :message
438
+ # Date and time at which Seam created the error.
439
+ # @return [Time]
440
+ date_accessor :created_at
441
+ end
442
+
443
+ # Indicates that a subscription is required to connect.
444
+ class SubscriptionRequired < Errors
445
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
446
+ # @return [String]
447
+ # Known values:
448
+ # - `subscription_required`
449
+ attr_accessor :error_code
450
+ # Indicates that the error is a device error.
451
+ # @return [TrueClass]
452
+ attr_accessor :is_device_error
453
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
454
+ # @return [String]
455
+ attr_accessor :message
456
+ # Date and time at which Seam created the error.
457
+ # @return [Time]
458
+ date_accessor :created_at
459
+ end
460
+
461
+ # Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if the Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline. See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system-errors-seam_bridge_disconnected).
462
+ class BridgeDisconnected < Errors
463
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
464
+ # @return [String]
465
+ # Known values:
466
+ # - `bridge_disconnected`
467
+ attr_accessor :error_code
468
+ # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
469
+ # @return [Boolean, nil]
470
+ attr_accessor :is_bridge_error
471
+ # Indicates whether the error is related specifically to the connected account.
472
+ # @return [Boolean, nil]
473
+ attr_accessor :is_connected_account_error
474
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
475
+ # @return [String]
476
+ attr_accessor :message
477
+ # Date and time at which Seam created the error.
478
+ # @return [Time]
479
+ date_accessor :created_at
53
480
  end
54
481
 
55
- # List of fields that were changed externally, with their previous and new values.
56
- # @return [Array<ModifiedFields>]
57
- resource_list_accessor :modified_fields, ModifiedFields
58
- # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
59
- # @return [String, nil]
60
- attr_accessor :change_type
61
482
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
62
483
  # @return [String]
484
+ # Known values:
485
+ # - `provider_issue`
486
+ # - `failed_to_set_on_device`
487
+ # - `failed_to_remove_from_device`
488
+ # - `duplicate_code_on_device`
489
+ # - `no_space_for_access_code_on_device`
490
+ # - `conflicting_external_modification`
491
+ # - `access_code_inactive`
492
+ # - `code_constraints_violated`
493
+ # - `account_disconnected`
494
+ # - `salto_ks_subscription_limit_exceeded`
495
+ # - `insufficient_permissions`
496
+ # - `dormakaba_sites_disconnected`
497
+ # - `device_offline`
498
+ # - `device_removed`
499
+ # - `hub_disconnected`
500
+ # - `device_disconnected`
501
+ # - `empty_backup_access_code_pool`
502
+ # - `august_lock_not_authorized`
503
+ # - `missing_device_credentials`
504
+ # - `auxiliary_heat_running`
505
+ # - `subscription_required`
506
+ # - `bridge_disconnected`
63
507
  attr_accessor :error_code
64
- # Indicates that this is an access code error.
65
- # @return [TrueClass]
66
- attr_accessor :is_access_code_error
67
- # Indicates whether the error is related to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).
68
- # @return [Boolean, nil]
69
- attr_accessor :is_bridge_error
70
- # @return [Boolean, nil]
71
- attr_accessor :is_connected_account_error
72
- # @return [Boolean]
73
- attr_accessor :is_device_error
74
- # ID of the managed access code that conflicts with this managed access code, when Seam can identify it.
75
- # @return [String, nil]
76
- attr_accessor :managed_access_code_id
77
508
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
78
509
  # @return [String]
79
510
  attr_accessor :message
80
- # ID of the unmanaged access code that conflicts with this managed access code, when Seam can identify it.
81
- # @return [String, nil]
82
- attr_accessor :unmanaged_access_code_id
83
511
  # Date and time at which Seam created the error.
84
512
  # @return [Time, nil]
85
513
  date_accessor :created_at
514
+
515
+ discriminated_by :error_code, {
516
+ "provider_issue" => ProviderIssue,
517
+ "failed_to_set_on_device" => FailedToSetOnDevice,
518
+ "failed_to_remove_from_device" => FailedToRemoveFromDevice,
519
+ "duplicate_code_on_device" => DuplicateCodeOnDevice,
520
+ "no_space_for_access_code_on_device" => NoSpaceForAccessCodeOnDevice,
521
+ "conflicting_external_modification" => ConflictingExternalModification,
522
+ "access_code_inactive" => AccessCodeInactive,
523
+ "code_constraints_violated" => CodeConstraintsViolated,
524
+ "account_disconnected" => AccountDisconnected,
525
+ "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
526
+ "insufficient_permissions" => InsufficientPermissions,
527
+ "dormakaba_sites_disconnected" => DormakabaSitesDisconnected,
528
+ "device_offline" => DeviceOffline,
529
+ "device_removed" => DeviceRemoved,
530
+ "hub_disconnected" => HubDisconnected,
531
+ "device_disconnected" => DeviceDisconnected,
532
+ "empty_backup_access_code_pool" => EmptyBackupAccessCodePool,
533
+ "august_lock_not_authorized" => AugustLockNotAuthorized,
534
+ "missing_device_credentials" => MissingDeviceCredentials,
535
+ "auxiliary_heat_running" => AuxiliaryHeatRunning,
536
+ "subscription_required" => SubscriptionRequired,
537
+ "bridge_disconnected" => BridgeDisconnected
538
+ }.freeze
86
539
  end
87
540
 
88
541
  class PendingMutations < BaseResource
@@ -124,6 +577,8 @@ module Seam
124
577
  # @return [String]
125
578
  attr_accessor :message
126
579
  # @return [String]
580
+ # Known values:
581
+ # - `creating`
127
582
  attr_accessor :mutation_code
128
583
  # Date and time at which the mutation was created.
129
584
  # @return [Time]
@@ -133,34 +588,229 @@ module Seam
133
588
  date_accessor :scheduled_at
134
589
  end
135
590
 
591
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
136
592
  class Warnings < BaseResource
137
- class ModifiedFields < BaseResource
138
- # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`).
593
+ # The access code's PIN rotates periodically when the code is renewed. Retrieve the latest code before each use.
594
+ class CodeRotatesPeriodically < Warnings
595
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
139
596
  # @return [String]
140
- attr_accessor :field
141
- # The previous value of the field.
142
- # @return [String, nil]
143
- attr_accessor :from
144
- # The new value of the field.
597
+ attr_accessor :message
598
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
599
+ # @return [String]
600
+ # Known values:
601
+ # - `code_rotates_periodically`
602
+ attr_accessor :warning_code
603
+ # Date and time at which Seam created the warning.
604
+ # @return [Time, nil]
605
+ date_accessor :created_at
606
+ end
607
+
608
+ # The device's time zone is unknown and this code's time frame crosses a daylight-saving transition in at least one plausible time zone. A 1-hour safety buffer has been applied to the side of the time frame affected by the transition (`ends_at` for spring-forward, `starts_at` for fall-back) so the code stays active through the shift — the code may be usable up to 1 hour beyond your requested window. Set the device's time zone via `/devices/report_provider_metadata` to clear the buffer and guarantee exact handling.
609
+ class TimeFrameAdjustedForUnknownTimeZone < Warnings
610
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
611
+ # @return [String]
612
+ attr_accessor :message
613
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
614
+ # @return [String]
615
+ # Known values:
616
+ # - `time_frame_adjusted_for_unknown_time_zone`
617
+ attr_accessor :warning_code
618
+ # Date and time at which Seam created the warning.
619
+ # @return [Time, nil]
620
+ date_accessor :created_at
621
+ end
622
+
623
+ # Code was modified or removed externally after Seam successfully set it on the device. External modification is allowed for this code, so the externally modified state is being honored.
624
+ class ExternalModificationInEffect < Warnings
625
+ class ModifiedFields < BaseResource
626
+ # The name of the field that was changed (e.g. `code`, `starts_at`, `ends_at`).
627
+ # @return [String]
628
+ attr_accessor :field
629
+ # The previous value of the field.
630
+ # @return [String, nil]
631
+ attr_accessor :from
632
+ # The new value of the field.
633
+ # @return [String, nil]
634
+ attr_accessor :to
635
+ end
636
+
637
+ # List of fields that were changed externally, with their previous and new values.
638
+ # @return [Array<ModifiedFields>]
639
+ resource_list_accessor :modified_fields, ModifiedFields
640
+ # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
145
641
  # @return [String, nil]
146
- attr_accessor :to
642
+ # Known values:
643
+ # - `modified`
644
+ # - `removed`
645
+ attr_accessor :change_type
646
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
647
+ # @return [String]
648
+ attr_accessor :message
649
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
650
+ # @return [String]
651
+ # Known values:
652
+ # - `external_modification_in_effect`
653
+ attr_accessor :warning_code
654
+ # Date and time at which Seam created the warning.
655
+ # @return [Time, nil]
656
+ date_accessor :created_at
657
+ end
658
+
659
+ # Delay in setting code on device.
660
+ class DelayInSettingOnDevice < Warnings
661
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
662
+ # @return [String]
663
+ attr_accessor :message
664
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
665
+ # @return [String]
666
+ # Known values:
667
+ # - `delay_in_setting_on_device`
668
+ attr_accessor :warning_code
669
+ # Date and time at which Seam created the warning.
670
+ # @return [Time, nil]
671
+ date_accessor :created_at
672
+ end
673
+
674
+ # Delay in removing code from device.
675
+ class DelayInRemovingFromDevice < Warnings
676
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
677
+ # @return [String]
678
+ attr_accessor :message
679
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
680
+ # @return [String]
681
+ # Known values:
682
+ # - `delay_in_removing_from_device`
683
+ attr_accessor :warning_code
684
+ # Date and time at which Seam created the warning.
685
+ # @return [Time, nil]
686
+ date_accessor :created_at
687
+ end
688
+
689
+ # Third-party integration detected that may cause access codes to fail.
690
+ class ThirdPartyIntegrationDetected < Warnings
691
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
692
+ # @return [String]
693
+ attr_accessor :message
694
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
695
+ # @return [String]
696
+ # Known values:
697
+ # - `third_party_integration_detected`
698
+ attr_accessor :warning_code
699
+ # Date and time at which Seam created the warning.
700
+ # @return [Time, nil]
701
+ date_accessor :created_at
702
+ end
703
+
704
+ # Algopins must be used within 24 hours.
705
+ class IglooAlgopinMustBeUsedWithinN24Hours < Warnings
706
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
707
+ # @return [String]
708
+ attr_accessor :message
709
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
710
+ # @return [String]
711
+ # Known values:
712
+ # - `igloo_algopin_must_be_used_within_24_hours`
713
+ attr_accessor :warning_code
714
+ # Date and time at which Seam created the warning.
715
+ # @return [Time, nil]
716
+ date_accessor :created_at
717
+ end
718
+
719
+ # Management was transferred to another workspace.
720
+ class ManagementTransferred < Warnings
721
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
722
+ # @return [String]
723
+ attr_accessor :message
724
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
725
+ # @return [String]
726
+ # Known values:
727
+ # - `management_transferred`
728
+ attr_accessor :warning_code
729
+ # Date and time at which Seam created the warning.
730
+ # @return [Time, nil]
731
+ date_accessor :created_at
732
+ end
733
+
734
+ # A backup access code has been pulled and is being used in place of this access code.
735
+ class UsingBackupAccessCode < Warnings
736
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
737
+ # @return [String]
738
+ attr_accessor :message
739
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
740
+ # @return [String]
741
+ # Known values:
742
+ # - `using_backup_access_code`
743
+ attr_accessor :warning_code
744
+ # Date and time at which Seam created the warning.
745
+ # @return [Time, nil]
746
+ date_accessor :created_at
747
+ end
748
+
749
+ # Access code is being deleted.
750
+ class BeingDeleted < Warnings
751
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
752
+ # @return [String]
753
+ attr_accessor :message
754
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
755
+ # @return [String]
756
+ # Known values:
757
+ # - `being_deleted`
758
+ attr_accessor :warning_code
759
+ # Date and time at which Seam created the warning.
760
+ # @return [Time, nil]
761
+ date_accessor :created_at
762
+ end
763
+
764
+ # An unknown issue occurred with the access code.
765
+ class UnknownIssueWithAccessCode < Warnings
766
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
767
+ # @return [String]
768
+ attr_accessor :message
769
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
770
+ # @return [String]
771
+ # Known values:
772
+ # - `unknown_issue_with_access_code`
773
+ attr_accessor :warning_code
774
+ # Date and time at which Seam created the warning.
775
+ # @return [Time, nil]
776
+ date_accessor :created_at
147
777
  end
148
778
 
149
- # List of fields that were changed externally, with their previous and new values.
150
- # @return [Array<ModifiedFields>]
151
- resource_list_accessor :modified_fields, ModifiedFields
152
- # Indicates the type of external modification. `modified` means the code's PIN or schedule was changed. `removed` means the code was deleted from the device.
153
- # @return [String, nil]
154
- attr_accessor :change_type
155
779
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
156
780
  # @return [String]
157
781
  attr_accessor :message
158
782
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
159
783
  # @return [String]
784
+ # Known values:
785
+ # - `code_rotates_periodically`
786
+ # - `time_frame_adjusted_for_unknown_time_zone`
787
+ # - `external_modification_in_effect`
788
+ # - `delay_in_setting_on_device`
789
+ # - `delay_in_removing_from_device`
790
+ # - `third_party_integration_detected`
791
+ # - `igloo_algopin_must_be_used_within_24_hours`
792
+ # - `management_transferred`
793
+ # - `using_backup_access_code`
794
+ # - `being_deleted`
795
+ # - `unknown_issue_with_access_code`
160
796
  attr_accessor :warning_code
161
797
  # Date and time at which Seam created the warning.
162
798
  # @return [Time, nil]
163
799
  date_accessor :created_at
800
+
801
+ discriminated_by :warning_code, {
802
+ "code_rotates_periodically" => CodeRotatesPeriodically,
803
+ "time_frame_adjusted_for_unknown_time_zone" => TimeFrameAdjustedForUnknownTimeZone,
804
+ "external_modification_in_effect" => ExternalModificationInEffect,
805
+ "delay_in_setting_on_device" => DelayInSettingOnDevice,
806
+ "delay_in_removing_from_device" => DelayInRemovingFromDevice,
807
+ "third_party_integration_detected" => ThirdPartyIntegrationDetected,
808
+ "igloo_algopin_must_be_used_within_24_hours" => IglooAlgopinMustBeUsedWithinN24Hours,
809
+ "management_transferred" => ManagementTransferred,
810
+ "using_backup_access_code" => UsingBackupAccessCode,
811
+ "being_deleted" => BeingDeleted,
812
+ "unknown_issue_with_access_code" => UnknownIssueWithAccessCode
813
+ }.freeze
164
814
  end
165
815
 
166
816
  # Metadata for a dormakaba Oracode managed access code. Only present for access codes from dormakaba Oracode devices.
@@ -219,9 +869,18 @@ module Seam
219
869
  attr_accessor :pulled_backup_access_code_id
220
870
  # Current status of the access code within the operational lifecycle. Values are `setting`, a transitional phase that indicates that the code is being configured or activated; `set`, which indicates that the code is active and operational; `unset`, which indicates a deactivated or unused state, either before activation or after deliberate deactivation; `removing`, which indicates a transitional period in which the code is being deleted or made inactive; and `unknown`, which indicates an indeterminate state, due to reasons such as system errors or incomplete data, that highlights a potential need for system review or troubleshooting. See also [Lifecycle of Access Codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/lifecycle-of-access-codes).
221
871
  # @return [String]
872
+ # Known values:
873
+ # - `setting`
874
+ # - `set`
875
+ # - `unset`
876
+ # - `removing`
877
+ # - `unknown`
222
878
  attr_accessor :status
223
879
  # Type of the access code. `ongoing` access codes are active continuously until deactivated manually. `time_bound` access codes have a specific duration.
224
880
  # @return [String]
881
+ # Known values:
882
+ # - `time_bound`
883
+ # - `ongoing`
225
884
  attr_accessor :type
226
885
  # Unique identifier for the Seam workspace associated with the access code.
227
886
  # @return [String]