seam 2.145.0 → 2.147.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86d8cf2a61186f64568c6604e6917819447ff105c6921f7cf62ee66d50e1299f
4
- data.tar.gz: 9d1d7eaf0d580309207c73b88e22800907cca39bf70e77d089a5a75864f21b82
3
+ metadata.gz: 470a850ce5dd503011b867a031c833b177fe0e5119443887ba8048b943ab51ce
4
+ data.tar.gz: b04262ca58b2d2975ce2a611ae726d18d2fc8f9fc4d98090a731c7630bdcb44a
5
5
  SHA512:
6
- metadata.gz: c9044764690069612b01f145aa5fe1b02fe2d5ac1c0f7bea8b05f68f616abac06830fa387f203d0d5d430b7b18cbaee0cd2ceeec3e7e1bae953a88a18a3294dc
7
- data.tar.gz: 9f2f841bdd627b134e4eaa621ad71c1570f21a3829284f01cbaec8faa95b9079894232144bfd9c5aa5828a1c643ac0072634c35838bbb1d04f8b066561bf14e9
6
+ metadata.gz: b7e9fbb08d1dff7832512701291ae80c5facaad8954fb55b620ae7947f66d80a605abf35a3523fcd58ae95d2a122e606688ee3d982283e7be202bd6d2753ae57
7
+ data.tar.gz: '075198d637457d867c8123d62e6e5e55022b914f131fa70c5be52489ad2e27e739bae09277a0786ce087d7b2fd43f0fd9b36d0c197e5ede2df9301448fbf422e'
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seam (2.145.0)
4
+ seam (2.147.0)
5
5
  faraday (~> 2.7)
6
6
  faraday-retry (~> 2.2)
7
7
  svix (~> 1.30)
@@ -171,7 +171,7 @@ CHECKSUMS
171
171
  rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
172
172
  rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
173
173
  ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
174
- seam (2.145.0)
174
+ seam (2.147.0)
175
175
  simplecov (1.1.1) sha256=25825ef13f0b2e74694d769817dad6ab8e90131dabdaa666e522fea105521e78
176
176
  simplecov-console (0.9.5) sha256=b1108bcfff5f210143e2b8301698c367b01586f20d25a73e95475a5df6fc6ff6
177
177
  standard (1.56.0) sha256=ae2af4d9669589162ac69ed5ef59dcf9f346d4afc81f7e62b84339310dfcb787
@@ -194,6 +194,78 @@ module Seam
194
194
  date_accessor :created_at
195
195
  end
196
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
+ # Seam was unable to issue this access code before its start time, so the recipient may be unable to unlock the device. This usually points to a problem that needs attention, such as an offline or disconnected device. Seam keeps retrying, and this error clears automatically if the access code is eventually issued.
216
+ class FailedToIssue < Errors
217
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
218
+ # @return [String]
219
+ # Known values:
220
+ # - `failed_to_issue`
221
+ attr_accessor :error_code
222
+ # Indicates that this is an access code error.
223
+ # @return [TrueClass]
224
+ attr_accessor :is_access_code_error
225
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
226
+ # @return [String]
227
+ attr_accessor :message
228
+ # Date and time at which Seam created the error.
229
+ # @return [Time, nil]
230
+ date_accessor :created_at
231
+ end
232
+
233
+ # Seam was unable to apply this access code's requested update to the device, so the code on the device does not match its requested state. Seam keeps retrying, and this error clears automatically once the update is applied.
234
+ class FailedToUpdate < Errors
235
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
236
+ # @return [String]
237
+ # Known values:
238
+ # - `failed_to_update`
239
+ attr_accessor :error_code
240
+ # Indicates that this is an access code error.
241
+ # @return [TrueClass]
242
+ attr_accessor :is_access_code_error
243
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
244
+ # @return [String]
245
+ attr_accessor :message
246
+ # Date and time at which Seam created the error.
247
+ # @return [Time, nil]
248
+ date_accessor :created_at
249
+ end
250
+
251
+ # This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to remove it, and this error clears automatically once the access code is no longer active.
252
+ class FailedToExpire < Errors
253
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
254
+ # @return [String]
255
+ # Known values:
256
+ # - `failed_to_expire`
257
+ attr_accessor :error_code
258
+ # Indicates that this is an access code error.
259
+ # @return [TrueClass]
260
+ attr_accessor :is_access_code_error
261
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
262
+ # @return [String]
263
+ attr_accessor :message
264
+ # Date and time at which Seam created the error.
265
+ # @return [Time, nil]
266
+ date_accessor :created_at
267
+ end
268
+
197
269
  # Indicates that the account is disconnected.
198
270
  class AccountDisconnected < Errors
199
271
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -471,6 +543,10 @@ module Seam
471
543
  # - `no_space_for_access_code_on_device`
472
544
  # - `conflicting_external_modification`
473
545
  # - `access_code_inactive`
546
+ # - `code_constraints_violated`
547
+ # - `failed_to_issue`
548
+ # - `failed_to_update`
549
+ # - `failed_to_expire`
474
550
  # - `account_disconnected`
475
551
  # - `salto_ks_subscription_limit_exceeded`
476
552
  # - `insufficient_permissions`
@@ -501,6 +577,10 @@ module Seam
501
577
  "no_space_for_access_code_on_device" => NoSpaceForAccessCodeOnDevice,
502
578
  "conflicting_external_modification" => ConflictingExternalModification,
503
579
  "access_code_inactive" => AccessCodeInactive,
580
+ "code_constraints_violated" => CodeConstraintsViolated,
581
+ "failed_to_issue" => FailedToIssue,
582
+ "failed_to_update" => FailedToUpdate,
583
+ "failed_to_expire" => FailedToExpire,
504
584
  "account_disconnected" => AccountDisconnected,
505
585
  "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
506
586
  "insufficient_permissions" => InsufficientPermissions,
@@ -666,6 +746,21 @@ module Seam
666
746
  date_accessor :created_at
667
747
  end
668
748
 
749
+ # Seam has not yet issued this access code, even though its start time is approaching, so access may not be ready when the recipient arrives. Seam is still attempting to issue it, and this warning clears automatically once issuance succeeds.
750
+ class DelayInIssuing < 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
+ # - `delay_in_issuing`
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
+
669
764
  # Third-party integration detected that may cause access codes to fail.
670
765
  class ThirdPartyIntegrationDetected < Warnings
671
766
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -767,6 +862,7 @@ module Seam
767
862
  # - `external_modification_in_effect`
768
863
  # - `delay_in_setting_on_device`
769
864
  # - `delay_in_removing_from_device`
865
+ # - `delay_in_issuing`
770
866
  # - `third_party_integration_detected`
771
867
  # - `igloo_algopin_must_be_used_within_24_hours`
772
868
  # - `management_transferred`
@@ -784,6 +880,7 @@ module Seam
784
880
  "external_modification_in_effect" => ExternalModificationInEffect,
785
881
  "delay_in_setting_on_device" => DelayInSettingOnDevice,
786
882
  "delay_in_removing_from_device" => DelayInRemovingFromDevice,
883
+ "delay_in_issuing" => DelayInIssuing,
787
884
  "third_party_integration_detected" => ThirdPartyIntegrationDetected,
788
885
  "igloo_algopin_must_be_used_within_24_hours" => IglooAlgopinMustBeUsedWithinN24Hours,
789
886
  "management_transferred" => ManagementTransferred,
@@ -320,6 +320,9 @@ module Seam
320
320
  # Display name of the Access Grant.
321
321
  # @return [String]
322
322
  attr_accessor :display_name
323
+ # Human-readable sentence answering whether the user can currently get in, for example `Awaiting encoding` on an access method or `Upcoming` here. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `starts_at`, `ends_at`, `errors`, and the access methods' own fields.
324
+ # @return [String]
325
+ attr_accessor :display_status
323
326
  # Instant Key URL. Only returned if the Access Grant has a single mobile_key access_method.
324
327
  # @return [String, nil]
325
328
  attr_accessor :instant_key_url
@@ -189,6 +189,9 @@ module Seam
189
189
  # Display name of the access method.
190
190
  # @return [String]
191
191
  attr_accessor :display_name
192
+ # Human-readable sentence describing where the access method sits in its relationship with the device or access system, for example `Awaiting encoding`. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `is_issued`, `errors`, and `pending_mutations`.
193
+ # @return [String]
194
+ attr_accessor :display_status
192
195
  # URL of the Instant Key for mobile key access methods.
193
196
  # @return [String, nil]
194
197
  attr_accessor :instant_key_url
@@ -1017,6 +1017,9 @@ module Seam
1017
1017
  # Display name of the access method.
1018
1018
  # @return [String]
1019
1019
  attr_accessor :display_name
1020
+ # Human-readable sentence describing where the access method sits in its relationship with the device or access system, for example `Awaiting encoding`. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `is_issued`, `errors`, and `pending_mutations`.
1021
+ # @return [String]
1022
+ attr_accessor :display_status
1020
1023
  # URL of the Instant Key for mobile key access methods.
1021
1024
  # @return [String, nil]
1022
1025
  attr_accessor :instant_key_url
@@ -38,7 +38,7 @@ module Seam
38
38
  # ID of the connected account associated with the Connect Webview.
39
39
  # @return [String, nil]
40
40
  attr_accessor :connected_account_id
41
- # 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.
41
+ # 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. Keys set to `null` or to an empty string are omitted.
42
42
  # @return [Hash{String => String, Boolean}]
43
43
  attr_accessor :custom_metadata
44
44
  # URL to which the Connect Webview should redirect when an unexpected error occurs.
@@ -368,7 +368,7 @@ module Seam
368
368
  # ID of the connected account.
369
369
  # @return [String]
370
370
  attr_accessor :connected_account_id
371
- # 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.
371
+ # 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. Keys set to `null` or to an empty string are omitted.
372
372
  # @return [Hash{String => String, Boolean}]
373
373
  attr_accessor :custom_metadata
374
374
  # Your unique key for the customer associated with this connected account.
@@ -1083,9 +1083,6 @@ module Seam
1083
1083
  # Set to true when the device does not support the /dual-setpoints API endpoint.
1084
1084
  # @return [Boolean, nil]
1085
1085
  attr_accessor :dual_setpoints_not_supported
1086
- # Enforced setpoint range in Celsius for a Sensi device, derived from an OutOfRange API error.
1087
- # @return [Array<Float>]
1088
- attr_accessor :enforced_setpoint_range_celsius
1089
1086
  # Product type for a Sensi device.
1090
1087
  # @return [String, nil]
1091
1088
  attr_accessor :product_type
@@ -2458,6 +2455,21 @@ module Seam
2458
2455
  date_accessor :created_at
2459
2456
  end
2460
2457
 
2458
+ # Indicates that the accessory keypad paired with this lock has a low or critically low battery. Replace its batteries so guests can keep entering their access codes.
2459
+ class AccessoryKeypadLowBattery < Warnings
2460
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
2461
+ # @return [String]
2462
+ attr_accessor :message
2463
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
2464
+ # @return [String]
2465
+ # Known values:
2466
+ # - `accessory_keypad_low_battery`
2467
+ attr_accessor :warning_code
2468
+ # Date and time at which Seam created the warning.
2469
+ # @return [Time]
2470
+ date_accessor :created_at
2471
+ end
2472
+
2461
2473
  # Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status.
2462
2474
  class UnreliableOnlineStatus < Warnings
2463
2475
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -2525,6 +2537,7 @@ module Seam
2525
2537
  # - `provider_issue`
2526
2538
  # - `keynest_unsupported_locker`
2527
2539
  # - `accessory_keypad_setup_required`
2540
+ # - `accessory_keypad_low_battery`
2528
2541
  # - `unreliable_online_status`
2529
2542
  # - `max_access_codes_reached`
2530
2543
  attr_accessor :warning_code
@@ -2558,6 +2571,7 @@ module Seam
2558
2571
  "provider_issue" => ProviderIssue,
2559
2572
  "keynest_unsupported_locker" => KeynestUnsupportedLocker,
2560
2573
  "accessory_keypad_setup_required" => AccessoryKeypadSetupRequired,
2574
+ "accessory_keypad_low_battery" => AccessoryKeypadLowBattery,
2561
2575
  "unreliable_online_status" => UnreliableOnlineStatus,
2562
2576
  "max_access_codes_reached" => MaxAccessCodesReached
2563
2577
  }.freeze
@@ -2654,7 +2668,7 @@ module Seam
2654
2668
  # Unique identifier for the account associated with the device.
2655
2669
  # @return [String]
2656
2670
  attr_accessor :connected_account_id
2657
- # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.
2671
+ # 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. Keys set to `null` or to an empty string are omitted.
2658
2672
  # @return [Hash{String => String, Boolean}]
2659
2673
  attr_accessor :custom_metadata
2660
2674
  # ID of the device.
@@ -3484,6 +3484,12 @@ module Seam
3484
3484
  # Number in the range 0 to 1.0 indicating the amount of battery in the affected device, as reported by the device.
3485
3485
  # @return [Float]
3486
3486
  attr_accessor :battery_level
3487
+ # Battery that dropped below the low threshold. `lock`: the lock's own battery. `accessory_keypad`: a paired accessory keypad's battery. Omitted for events emitted before this field existed, which always refer to the lock's own battery.
3488
+ # @return [String, nil]
3489
+ # Known values:
3490
+ # - `lock`
3491
+ # - `accessory_keypad`
3492
+ attr_accessor :battery_source
3487
3493
  # Custom metadata of the connected account, present when connected_account_id is provided.
3488
3494
  # @return [Hash{String => String, Boolean}, nil]
3489
3495
  attr_accessor :connected_account_custom_metadata
@@ -5079,6 +5085,11 @@ module Seam
5079
5085
  # - `access_code.removed_from_device`
5080
5086
  # - `access_code.delay_in_setting_on_device`
5081
5087
  # - `access_code.failed_to_set_on_device`
5088
+ # - `access_code.issued`
5089
+ # - `access_code.delay_in_issuing`
5090
+ # - `access_code.failed_to_issue`
5091
+ # - `access_code.failed_to_update`
5092
+ # - `access_code.failed_to_expire`
5082
5093
  # - `access_code.deleted`
5083
5094
  # - `access_code.delay_in_removing_from_device`
5084
5095
  # - `access_code.failed_to_remove_from_device`
@@ -196,6 +196,78 @@ module Seam
196
196
  date_accessor :created_at
197
197
  end
198
198
 
199
+ # 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`.
200
+ class CodeConstraintsViolated < Errors
201
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
202
+ # @return [String]
203
+ # Known values:
204
+ # - `code_constraints_violated`
205
+ attr_accessor :error_code
206
+ # Indicates that this is an access code error.
207
+ # @return [TrueClass]
208
+ attr_accessor :is_access_code_error
209
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
210
+ # @return [String]
211
+ attr_accessor :message
212
+ # Date and time at which Seam created the error.
213
+ # @return [Time, nil]
214
+ date_accessor :created_at
215
+ end
216
+
217
+ # Seam was unable to issue this access code before its start time, so the recipient may be unable to unlock the device. This usually points to a problem that needs attention, such as an offline or disconnected device. Seam keeps retrying, and this error clears automatically if the access code is eventually issued.
218
+ class FailedToIssue < Errors
219
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
220
+ # @return [String]
221
+ # Known values:
222
+ # - `failed_to_issue`
223
+ attr_accessor :error_code
224
+ # Indicates that this is an access code error.
225
+ # @return [TrueClass]
226
+ attr_accessor :is_access_code_error
227
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
228
+ # @return [String]
229
+ attr_accessor :message
230
+ # Date and time at which Seam created the error.
231
+ # @return [Time, nil]
232
+ date_accessor :created_at
233
+ end
234
+
235
+ # Seam was unable to apply this access code's requested update to the device, so the code on the device does not match its requested state. Seam keeps retrying, and this error clears automatically once the update is applied.
236
+ class FailedToUpdate < Errors
237
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
238
+ # @return [String]
239
+ # Known values:
240
+ # - `failed_to_update`
241
+ attr_accessor :error_code
242
+ # Indicates that this is an access code error.
243
+ # @return [TrueClass]
244
+ attr_accessor :is_access_code_error
245
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
246
+ # @return [String]
247
+ attr_accessor :message
248
+ # Date and time at which Seam created the error.
249
+ # @return [Time, nil]
250
+ date_accessor :created_at
251
+ end
252
+
253
+ # This access code is still active on the device even though its `ends_at` has passed, so the recipient may still be able to unlock the device after their access window ended. Seam is attempting to remove it, and this error clears automatically once the access code is no longer active.
254
+ class FailedToExpire < Errors
255
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
256
+ # @return [String]
257
+ # Known values:
258
+ # - `failed_to_expire`
259
+ attr_accessor :error_code
260
+ # Indicates that this is an access code error.
261
+ # @return [TrueClass]
262
+ attr_accessor :is_access_code_error
263
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
264
+ # @return [String]
265
+ attr_accessor :message
266
+ # Date and time at which Seam created the error.
267
+ # @return [Time, nil]
268
+ date_accessor :created_at
269
+ end
270
+
199
271
  # Indicates that the account is disconnected.
200
272
  class AccountDisconnected < Errors
201
273
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -473,6 +545,10 @@ module Seam
473
545
  # - `no_space_for_access_code_on_device`
474
546
  # - `conflicting_external_modification`
475
547
  # - `access_code_inactive`
548
+ # - `code_constraints_violated`
549
+ # - `failed_to_issue`
550
+ # - `failed_to_update`
551
+ # - `failed_to_expire`
476
552
  # - `account_disconnected`
477
553
  # - `salto_ks_subscription_limit_exceeded`
478
554
  # - `insufficient_permissions`
@@ -503,6 +579,10 @@ module Seam
503
579
  "no_space_for_access_code_on_device" => NoSpaceForAccessCodeOnDevice,
504
580
  "conflicting_external_modification" => ConflictingExternalModification,
505
581
  "access_code_inactive" => AccessCodeInactive,
582
+ "code_constraints_violated" => CodeConstraintsViolated,
583
+ "failed_to_issue" => FailedToIssue,
584
+ "failed_to_update" => FailedToUpdate,
585
+ "failed_to_expire" => FailedToExpire,
506
586
  "account_disconnected" => AccountDisconnected,
507
587
  "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
508
588
  "insufficient_permissions" => InsufficientPermissions,
@@ -618,6 +698,21 @@ module Seam
618
698
  date_accessor :created_at
619
699
  end
620
700
 
701
+ # Seam has not yet issued this access code, even though its start time is approaching, so access may not be ready when the recipient arrives. Seam is still attempting to issue it, and this warning clears automatically once issuance succeeds.
702
+ class DelayInIssuing < Warnings
703
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
704
+ # @return [String]
705
+ attr_accessor :message
706
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
707
+ # @return [String]
708
+ # Known values:
709
+ # - `delay_in_issuing`
710
+ attr_accessor :warning_code
711
+ # Date and time at which Seam created the warning.
712
+ # @return [Time, nil]
713
+ date_accessor :created_at
714
+ end
715
+
621
716
  # Third-party integration detected that may cause access codes to fail.
622
717
  class ThirdPartyIntegrationDetected < Warnings
623
718
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -719,6 +814,7 @@ module Seam
719
814
  # - `external_modification_in_effect`
720
815
  # - `delay_in_setting_on_device`
721
816
  # - `delay_in_removing_from_device`
817
+ # - `delay_in_issuing`
722
818
  # - `third_party_integration_detected`
723
819
  # - `igloo_algopin_must_be_used_within_24_hours`
724
820
  # - `management_transferred`
@@ -736,6 +832,7 @@ module Seam
736
832
  "external_modification_in_effect" => ExternalModificationInEffect,
737
833
  "delay_in_setting_on_device" => DelayInSettingOnDevice,
738
834
  "delay_in_removing_from_device" => DelayInRemovingFromDevice,
835
+ "delay_in_issuing" => DelayInIssuing,
739
836
  "third_party_integration_detected" => ThirdPartyIntegrationDetected,
740
837
  "igloo_algopin_must_be_used_within_24_hours" => IglooAlgopinMustBeUsedWithinN24Hours,
741
838
  "management_transferred" => ManagementTransferred,
@@ -183,6 +183,9 @@ module Seam
183
183
  # Display name of the access method.
184
184
  # @return [String]
185
185
  attr_accessor :display_name
186
+ # Human-readable sentence describing where the access method sits in its relationship with the device or access system, for example `Awaiting encoding`. For display only. The wording is not stable and is not an enumeration — it may change at any time, so never compare against or branch on it. To make decisions, read `is_issued`, `errors`, and `pending_mutations`.
187
+ # @return [String]
188
+ attr_accessor :display_status
186
189
  # Indicates whether an existing card credential must be assigned to this access method before it can be issued. Only applies to card-mode access methods on systems that support credential assignment.
187
190
  # @return [Boolean, nil]
188
191
  attr_accessor :is_assignment_required
@@ -800,6 +800,21 @@ module Seam
800
800
  date_accessor :created_at
801
801
  end
802
802
 
803
+ # Indicates that the accessory keypad paired with this lock has a low or critically low battery. Replace its batteries so guests can keep entering their access codes.
804
+ class AccessoryKeypadLowBattery < Warnings
805
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
806
+ # @return [String]
807
+ attr_accessor :message
808
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
809
+ # @return [String]
810
+ # Known values:
811
+ # - `accessory_keypad_low_battery`
812
+ attr_accessor :warning_code
813
+ # Date and time at which Seam created the warning.
814
+ # @return [Time]
815
+ date_accessor :created_at
816
+ end
817
+
803
818
  # Indicates that the device may optimistically be reported as online because the provider does not reliably report its online status.
804
819
  class UnreliableOnlineStatus < Warnings
805
820
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -867,6 +882,7 @@ module Seam
867
882
  # - `provider_issue`
868
883
  # - `keynest_unsupported_locker`
869
884
  # - `accessory_keypad_setup_required`
885
+ # - `accessory_keypad_low_battery`
870
886
  # - `unreliable_online_status`
871
887
  # - `max_access_codes_reached`
872
888
  attr_accessor :warning_code
@@ -900,6 +916,7 @@ module Seam
900
916
  "provider_issue" => ProviderIssue,
901
917
  "keynest_unsupported_locker" => KeynestUnsupportedLocker,
902
918
  "accessory_keypad_setup_required" => AccessoryKeypadSetupRequired,
919
+ "accessory_keypad_low_battery" => AccessoryKeypadLowBattery,
903
920
  "unreliable_online_status" => UnreliableOnlineStatus,
904
921
  "max_access_codes_reached" => MaxAccessCodesReached
905
922
  }.freeze
@@ -990,7 +1007,7 @@ module Seam
990
1007
  # Unique identifier for the account associated with the device.
991
1008
  # @return [String]
992
1009
  attr_accessor :connected_account_id
993
- # 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.
1010
+ # 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. Keys set to `null` or to an empty string are omitted.
994
1011
  # @return [Hash{String => String, Boolean}]
995
1012
  attr_accessor :custom_metadata
996
1013
  # ID of the device.
@@ -1043,6 +1060,9 @@ module Seam
1043
1060
  # - `android_phone`
1044
1061
  # - `ring_camera`
1045
1062
  attr_accessor :device_type
1063
+ # 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.
1064
+ # @return [String]
1065
+ attr_accessor :display_name
1046
1066
  # Indicates that Seam does not manage the device.
1047
1067
  # @return [FalseClass]
1048
1068
  attr_accessor :is_managed
@@ -119,6 +119,12 @@ module Seam
119
119
  # Full name of the user associated with the user identity.
120
120
  # @return [String, nil]
121
121
  attr_accessor :full_name
122
+ # IDs that other user identities used to have before they were merged into this user identity. Looking up any of them returns this user identity.
123
+ # @return [Array<String>]
124
+ attr_accessor :merged_user_identity_ids
125
+ # Keys that other user identities used to have before they were merged into this user identity. Looking up any of them returns this user identity.
126
+ # @return [Array<String>]
127
+ attr_accessor :merged_user_identity_keys
122
128
  # Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100).
123
129
  # @return [String, nil]
124
130
  attr_accessor :phone_number
@@ -119,6 +119,12 @@ module Seam
119
119
  # Full name of the user associated with the user identity.
120
120
  # @return [String, nil]
121
121
  attr_accessor :full_name
122
+ # IDs that other user identities used to have before they were merged into this user identity. Looking up any of them returns this user identity.
123
+ # @return [Array<String>]
124
+ attr_accessor :merged_user_identity_ids
125
+ # Keys that other user identities used to have before they were merged into this user identity. Looking up any of them returns this user identity.
126
+ # @return [Array<String>]
127
+ attr_accessor :merged_user_identity_keys
122
128
  # Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100).
123
129
  # @return [String, nil]
124
130
  attr_accessor :phone_number
@@ -29,9 +29,10 @@ module Seam
29
29
  resource_accessor :connect_webview_customization, ConnectWebviewCustomization
30
30
  # Company name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces).
31
31
  # @return [String]
32
+ # @deprecated Use `connect_partner_name` instead.
32
33
  attr_accessor :company_name
34
+ # Seam Connect partner name associated with the [workspace](https://docs.seam.co/core-concepts/workspaces).
33
35
  # @return [String, nil]
34
- # @deprecated Use `company_name` instead.
35
36
  attr_accessor :connect_partner_name
36
37
  # Indicates whether publishable key authentication is enabled for this workspace.
37
38
  # @return [Boolean]
@@ -59,17 +59,17 @@ module Seam
59
59
  end
60
60
 
61
61
  # Returns a list of all [credentials](https://docs.seam.co/low-level-apis/access-systems/managing-credentials).
62
- # @param acs_user_id [String, nil] ID of the access system user for which you want to retrieve all credentials.
63
62
  # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all credentials.
64
- # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all credentials.
63
+ # @param acs_user_id [String, nil] ID of the access system user for which you want to retrieve all credentials.
65
64
  # @param created_before [Time, nil] Date and time, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format, before which events to return were created.
66
65
  # @param is_multi_phone_sync_credential [Boolean, nil] Indicates whether you want to retrieve only multi-phone sync credentials or non-multi-phone sync credentials.
67
66
  # @param limit [Float, nil] Number of credentials to return.
68
67
  # @param page_cursor [String, Seam::Null, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
69
68
  # @param search [String, nil] String for which to search. Filters returned credentials to include all records that satisfy a partial match using `display_name`, `code`, `card_number`, `acs_user_id` or `acs_credential_id`.
69
+ # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all credentials.
70
70
  # @return [Seam::Resources::AcsCredential] OK
71
- def list(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil, created_before: nil, is_multi_phone_sync_credential: nil, limit: nil, page_cursor: nil, search: nil)
72
- res = @client.get("/acs/credentials/list", {acs_user_id: acs_user_id, acs_system_id: acs_system_id, user_identity_id: user_identity_id, created_before: created_before, is_multi_phone_sync_credential: is_multi_phone_sync_credential, limit: limit, page_cursor: page_cursor, search: search}.compact)
71
+ def list(acs_system_id: nil, acs_user_id: nil, created_before: nil, is_multi_phone_sync_credential: nil, limit: nil, page_cursor: nil, search: nil, user_identity_id: nil)
72
+ res = @client.get("/acs/credentials/list", {acs_system_id: acs_system_id, acs_user_id: acs_user_id, created_before: created_before, is_multi_phone_sync_credential: is_multi_phone_sync_credential, limit: limit, page_cursor: page_cursor, search: search, user_identity_id: user_identity_id}.compact)
73
73
 
74
74
  Seam::Resources::AcsCredential.load_from_response(res.body["acs_credentials"])
75
75
  end
@@ -37,14 +37,14 @@ module Seam
37
37
  end
38
38
 
39
39
  # Returns a list of all [encoders](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners).
40
+ # @param acs_encoder_ids [Array<String>, nil] IDs of the encoders that you want to retrieve.
40
41
  # @param acs_system_id [String, nil] ID of the access system for which you want to retrieve all encoders.
41
42
  # @param acs_system_ids [Array<String>, nil] IDs of the access systems for which you want to retrieve all encoders.
42
- # @param acs_encoder_ids [Array<String>, nil] IDs of the encoders that you want to retrieve.
43
43
  # @param limit [Float, nil] Number of encoders to return.
44
44
  # @param page_cursor [String, Seam::Null, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
45
45
  # @return [Seam::Resources::AcsEncoder] OK
46
- def list(acs_system_id: nil, acs_system_ids: nil, acs_encoder_ids: nil, limit: nil, page_cursor: nil)
47
- res = @client.get("/acs/encoders/list", {acs_system_id: acs_system_id, acs_system_ids: acs_system_ids, acs_encoder_ids: acs_encoder_ids, limit: limit, page_cursor: page_cursor}.compact)
46
+ def list(acs_encoder_ids: nil, acs_system_id: nil, acs_system_ids: nil, limit: nil, page_cursor: nil)
47
+ res = @client.get("/acs/encoders/list", {acs_encoder_ids: acs_encoder_ids, acs_system_id: acs_system_id, acs_system_ids: acs_system_ids, limit: limit, page_cursor: page_cursor}.compact)
48
48
 
49
49
  Seam::Resources::AcsEncoder.load_from_response(res.body["acs_encoders"])
50
50
  end
@@ -71,9 +71,9 @@ module Seam
71
71
  # @param limit [Integer, nil] Maximum number of records to return per page.
72
72
  # @param page_cursor [String, Seam::Null, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
73
73
  # @param search [String, nil] String for which to search. Filters returned access system users to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address`, `acs_user_id`, `user_identity_id`, `user_identity_full_name` or `user_identity_phone_number`.
74
- # @param user_identity_email_address [String, nil] Email address of the user identity for which you want to retrieve all access system users.
74
+ # @param user_identity_email_address [String, Seam::Null, nil] Email address of the user identity for which you want to retrieve all access system users. Specify `null` to retrieve access system users whose user identity has no email address.
75
75
  # @param user_identity_id [String, nil] ID of the user identity for which you want to retrieve all access system users.
76
- # @param user_identity_phone_number [String, nil] Phone number of the user identity for which you want to retrieve all access system users, in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, `+15555550100`).
76
+ # @param user_identity_phone_number [String, Seam::Null, nil] Phone number of the user identity for which you want to retrieve all access system users, in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, `+15555550100`). Specify `null` to retrieve access system users whose user identity has no phone number.
77
77
  # @return [Seam::Resources::AcsUser] OK
78
78
  def list(acs_system_id: nil, created_before: nil, limit: nil, page_cursor: nil, search: nil, user_identity_email_address: nil, user_identity_id: nil, user_identity_phone_number: nil)
79
79
  res = @client.get("/acs/users/list", {acs_system_id: acs_system_id, created_before: created_before, limit: limit, page_cursor: page_cursor, search: search, user_identity_email_address: user_identity_email_address, user_identity_id: user_identity_id, user_identity_phone_number: user_identity_phone_number}.compact)
@@ -80,9 +80,9 @@ module Seam
80
80
 
81
81
  # Returns a list of all [client sessions](https://docs.seam.co/core-concepts/authentication/client-session-tokens).
82
82
  # @param client_session_id [String, nil] ID of the client session that you want to retrieve.
83
- # @param connect_webview_id [String, nil] ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions.
83
+ # @param connect_webview_id [String, Seam::Null, nil] ID of the [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) for which you want to retrieve client sessions. Specify `null` to retrieve client sessions that are not associated with a Connect Webview.
84
84
  # @param user_identifier_key [String, nil] Your user ID for the user by which you want to filter client sessions.
85
- # @param user_identity_id [String, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions.
85
+ # @param user_identity_id [String, Seam::Null, nil] ID of the [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) for which you want to retrieve client sessions. Specify `null` to retrieve client sessions that are not associated with a user identity.
86
86
  # @param without_user_identifier_key [Boolean, nil] Indicates whether to retrieve only client sessions without associated user identifier keys.
87
87
  # @return [Seam::Resources::ClientSession] OK
88
88
  def list(client_session_id: nil, connect_webview_id: nil, user_identifier_key: nil, user_identity_id: nil, without_user_identifier_key: nil)
@@ -18,7 +18,7 @@ module Seam
18
18
  # @param accepted_capabilities [Array<String>, nil] List of accepted device capabilities that restrict the types of devices that can be connected through the Connect Webview. If not provided, defaults will be determined based on the accepted providers.
19
19
  # @param accepted_providers [Array<String>, nil] Accepted device provider keys as an alternative to `provider_category`. Use this parameter to specify accepted providers explicitly. See [Customize the Brands to Display in Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-brands-to-display-in-your-connect-webviews). To list all provider keys, use [`/devices/list_device_providers`](https://docs.seam.co/api/devices/list_device_providers) with no filters.
20
20
  # @param automatically_manage_new_devices [Boolean, nil] Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). See also: [Customize the Behavior Settings of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-behavior-settings-of-your-connect-webviews).
21
- # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata).
21
+ # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the Connect Webview. Supports up to 50 JSON key:value pairs, with key names up to 40 characters long that cannot contain a period (.). [Adding custom metadata to a Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview) enables you to store custom information, like customer details or internal IDs from your application. The custom metadata is then transferred to any [connected accounts](https://docs.seam.co/core-concepts/connected-accounts) that were connected using the Connect Webview, making it easy to find and filter these resources in your [workspace](https://docs.seam.co/core-concepts/workspaces). You can also [filter Connect Webviews by custom metadata](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Set a key to `null` or to an empty string to remove that key from the custom metadata.
22
22
  # @param custom_redirect_failure_url [String, nil] Alternative URL that you want to redirect the user to on an error. If you do not set this parameter, the Connect Webview falls back to the `custom_redirect_url`.
23
23
  # @param custom_redirect_url [String, nil] URL that you want to redirect the user to after the provider login is complete.
24
24
  # @param customer_key [String, nil] Associate the Connect Webview, the connected account, and all resources under the connected account with a customer. If the connected account already exists, it will be associated with the customer. If the connected account already exists, but is already associated with a customer, the Connect Webview will show an error.
@@ -55,7 +55,7 @@ module Seam
55
55
  end
56
56
 
57
57
  # Returns a list of all [Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews).
58
- # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs.
58
+ # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Custom metadata pairs by which you want to [filter Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/filtering-connect-webviews-by-custom-metadata). Returns Connect Webviews with `custom_metadata` that contains all of the provided key:value pairs. Key names cannot contain a period (.). Specify `null` to match a key that is unset. A key given an empty string is omitted from the filter.
59
59
  # @param customer_key [String, nil] Customer key for which you want to list connect webviews.
60
60
  # @param limit [Float, nil] Maximum number of records to return per page.
61
61
  # @param page_cursor [String, Seam::Null, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
@@ -40,7 +40,7 @@ module Seam
40
40
  end
41
41
 
42
42
  # Returns a list of all [connected accounts](https://docs.seam.co/core-concepts/connected-accounts).
43
- # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs.
43
+ # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Custom metadata pairs by which you want to filter connected accounts. Returns connected accounts with `custom_metadata` that contains all of the provided key:value pairs. Key names cannot contain a period (.). Specify `null` to match a key that is unset. A key given an empty string is omitted from the filter.
44
44
  # @param customer_key [String, nil] Customer key by which you want to filter connected accounts.
45
45
  # @param limit [Integer, nil] Maximum number of records to return per page.
46
46
  # @param page_cursor [String, Seam::Null, nil] Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
@@ -67,7 +67,7 @@ module Seam
67
67
  # @param connected_account_id [String] ID of the connected account that you want to update.
68
68
  # @param accepted_capabilities [Array<String>, nil] List of accepted device capabilities that restrict the types of devices that can be connected through this connected account. Valid values are `lock`, `thermostat`, `noise_sensor`, and `access_control`.
69
69
  # @param automatically_manage_new_devices [Boolean, nil] Indicates whether newly-added devices should appear as [managed devices](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).
70
- # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata).
70
+ # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the connected account. Entirely replaces the existing custom metadata object. If a new Connect Webview contains custom metadata and is used to reconnect a connected account, the custom metadata from the Connect Webview will entirely replace the entire custom metadata object on the connected account. Supports up to 50 JSON key:value pairs, with key names up to 40 characters long that cannot contain a period (.). [Adding custom metadata to a connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account) enables you to store custom information, like customer details or internal IDs from your application. Then, you can [filter connected accounts by the desired metadata](https://docs.seam.co/core-concepts/connected-accounts/filtering-connected-accounts-by-custom-metadata). Set a key to `null` or to an empty string to remove that key from the custom metadata.
71
71
  # @param customer_key [String, nil] The customer key to associate with this connected account. If provided, the connected account and all resources under the connected account will be moved to this customer. May only be provided if the connected account is not already associated with a customer.
72
72
  # @param display_name [String, nil] Human-readable name for the connected account, shown in the dashboard. For example, `Booking from Airbnb House 1`.
73
73
  # @return [nil] OK
@@ -37,7 +37,7 @@ module Seam
37
37
  # @param connected_account_id [String, nil] ID of the connected account for which you want to list devices.
38
38
  # @param connected_account_ids [Array<String>, nil] Array of IDs of the connected accounts for which you want to list devices.
39
39
  # @param created_before [Time, nil] Timestamp by which to limit returned devices. Returns devices created before this timestamp.
40
- # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices.
40
+ # @param custom_metadata_has [Hash{String => String, Boolean}, nil] Set of key:value [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) pairs for which you want to list devices. Key names cannot contain a period (.). Specify `null` to match a key that is unset. A key given an empty string is omitted from the filter.
41
41
  # @param customer_key [String, nil] Customer key for which you want to list devices.
42
42
  # @param device_ids [Array<String>, nil] Array of device IDs for which you want to list devices.
43
43
  # @param device_type [String, nil] Device type for which you want to list devices.
@@ -84,7 +84,7 @@ module Seam
84
84
  # You can add or change [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for a device, change the device's name, or [convert a managed device to unmanaged](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices).
85
85
  # @param device_id [String] ID of the device that you want to update.
86
86
  # @param backup_access_code_pool_enabled [Boolean, nil] Indicates whether the device's [backup access code pool](https://docs.seam.co/low-level-apis/smart-locks/access-codes/backup-access-codes) is enabled. Set to `false` to disable the pool: Seam stops refilling it and removes any backup codes that have not yet been pulled into active use.
87
- # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs. [Adding custom metadata to a 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. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata).
87
+ # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs, with key names up to 40 characters long that cannot contain a period (.). [Adding custom metadata to a 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. Then, you can [filter devices by the desired metadata](https://docs.seam.co/core-concepts/devices/filtering-devices-by-custom-metadata). Set a key to `null` or to an empty string to remove that key from the custom metadata.
88
88
  # @param is_managed [Boolean, nil] Indicates whether the device is managed. To unmanage a device, set `is_managed` to `false`.
89
89
  # @param name [String, Seam::Null, nil] Name for the device.
90
90
  # @param properties [Hash, nil]
@@ -52,7 +52,7 @@ module Seam
52
52
  #
53
53
  # An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).
54
54
  # @param device_id [String] ID of the unmanaged device that you want to update.
55
- # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs.
55
+ # @param custom_metadata [Hash{String => String, Boolean}, nil] Custom metadata that you want to associate with the device. Supports up to 50 JSON key:value pairs, with key names up to 40 characters long that cannot contain a period (.). Set a key to `null` or to an empty string to remove that key from the custom metadata.
56
56
  # @param is_managed [TrueClass, nil] Indicates whether the device is managed. Set this parameter to `true` to convert an unmanaged device to managed.
57
57
  # @return [nil] OK
58
58
  def update(device_id:, custom_metadata: nil, is_managed: nil)
@@ -37,7 +37,7 @@ module Seam
37
37
  # @param acs_system_id [String, nil] ID of the access system for which you want to list events.
38
38
  # @param acs_system_ids [Array<String>, nil] IDs of the access systems for which you want to list events.
39
39
  # @param acs_user_id [String, nil] ID of the ACS user for which you want to list events.
40
- # @param between [Array<Time>, nil] Lower and upper timestamps to define an exclusive interval containing the events that you want to list. You must include `since` or `between`.
40
+ # @param between [Array<String>, nil] Lower and upper timestamps to define an exclusive interval containing the events that you want to list. You must include `since` or `between`.
41
41
  # @param connect_webview_id [String, nil] ID of the Connect Webview for which you want to list events.
42
42
  # @param connected_account_id [String, nil] ID of the connected account for which you want to list events.
43
43
  # @param customer_key [String, nil] Customer key for which you want to list events.
@@ -134,6 +134,28 @@ module Seam
134
134
  Seam::Resources::AcsUser.load_from_response(res.body["acs_users"])
135
135
  end
136
136
 
137
+ # Merges one or more [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) into a primary user identity, for when the same person ended up with more than one user identity.
138
+ #
139
+ # The primary user identity takes on any email address or phone number it was missing from the user identities merged into it, and the merged user identities are then deleted. Their IDs and keys keep working: looking one up returns the primary user identity, and they are listed on it as `merged_user_identity_ids` and `merged_user_identity_keys`.
140
+ #
141
+ # Access grants, access system users, client sessions and other resources belonging to the merged user identities are moved to the primary user identity.
142
+ #
143
+ # Identify the user identities either by ID or by key, but not both in the same request. Repeating a merge that has already been applied makes no further changes.
144
+ # @param merged_user_identity_ids [Array<String>, nil] IDs of the user identities to merge into the primary user identity. These user identities are deleted.
145
+ # @param user_identity_id [String, nil] ID of the primary user identity to keep.
146
+ # @param merged_user_identity_keys [Array<String>, nil] Keys of the user identities to merge into the primary user identity. These user identities are deleted.
147
+ # @param user_identity_key [String, nil] Key of the primary user identity to keep.
148
+ # @return [nil] OK
149
+ def merge(merged_user_identity_ids: nil, user_identity_id: nil, merged_user_identity_keys: nil, user_identity_key: nil)
150
+ if merged_user_identity_ids.nil? && user_identity_id.nil? && merged_user_identity_keys.nil? && user_identity_key.nil?
151
+ raise TypeError, "At least one parameter is required for /user_identities/merge"
152
+ end
153
+
154
+ @client.post("/user_identities/merge", {merged_user_identity_ids: merged_user_identity_ids, user_identity_id: user_identity_id, merged_user_identity_keys: merged_user_identity_keys, user_identity_key: user_identity_key}.compact)
155
+
156
+ nil
157
+ end
158
+
137
159
  # Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
138
160
  # @param acs_user_id [String] ID of the access system user that you want to remove from the user identity..
139
161
  # @param user_identity_id [String] ID of the user identity from which you want to remove an access system user.
@@ -13,8 +13,8 @@ module Seam
13
13
  # Creates a new [workspace](https://docs.seam.co/core-concepts/workspaces).
14
14
  # @param name [String] Name of the new workspace.
15
15
  # @param company_name [String, nil] Company name for the new workspace.
16
+ # @deprecated company_name: Use `connect_partner_name` instead.
16
17
  # @param connect_partner_name [String, Seam::Null, nil] Connect partner name for the new workspace.
17
- # @deprecated connect_partner_name: Use `company_name` instead.
18
18
  # @param connect_webview_customization [Hash, nil] [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the new workspace. See also [Customize the Look and Feel of Your Connect Webviews](https://docs.seam.co/core-concepts/connect-webviews/customizing-connect-webviews#customize-the-look-and-feel-of-your-connect-webviews).
19
19
  # @param is_sandbox [Boolean, nil] Indicates whether the new workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).
20
20
  # @param organization_id [String, nil] ID of the organization to associate with the new workspace.
data/lib/seam/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Seam
4
- VERSION = "2.145.0"
4
+ VERSION = "2.147.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seam
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.145.0
4
+ version: 2.147.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seam Labs, Inc.