seam 2.146.0 → 2.148.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: a45352597670141b7fcf4d8043acf833a4019e97523ac004acdf9a24d140d3ad
4
- data.tar.gz: cb4cf04a8b07d629f763f56b4f676150b431342abd6ad7365abfb64585af478a
3
+ metadata.gz: '06196d87a7db7cb6f396e2ce2f94f02d9dfb2c2eecff52fa314df6d95856ff57'
4
+ data.tar.gz: f7be00a016e5c13fc8e937595b80302453ae8625d27df6a0541d1eacf5b3504e
5
5
  SHA512:
6
- metadata.gz: 56fca9672c6ccd40f33ce7773ca672f3c4910885b396eb2b9b3d3c7d251821ecb694c47ebb940a1c39f1bcfa1324cd7a2dca7151aaa3ca244e32da6fa57bfabe
7
- data.tar.gz: 67313f9ffa5d35fe509944ed85c7c2f072480aedc62d48984ef2a656d150b6d11d5281d5721c270027b8ebc5e6646d2fde62ce918c228a43034f4649420710d6
6
+ metadata.gz: 68f7a956b71ae32046af99e15b612d1fa1ac4a689539dadf795776bdd873ea5bd4ed7ace6105f17678c760184567a02bd5b6d472d0c536ab19eba4fa3e45f655
7
+ data.tar.gz: 66906c6e6172416dc861bb7dc71b6e51a49baba23331b4ddc5d0ef1fa6f677fa13841bd913a6c2537cfbc00eaf74e9700f14cef44907efbff213960836ac5b75
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seam (2.146.0)
4
+ seam (2.148.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.146.0)
174
+ seam (2.148.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
@@ -212,6 +212,60 @@ module Seam
212
212
  date_accessor :created_at
213
213
  end
214
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
+
215
269
  # Indicates that the account is disconnected.
216
270
  class AccountDisconnected < Errors
217
271
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -490,6 +544,9 @@ module Seam
490
544
  # - `conflicting_external_modification`
491
545
  # - `access_code_inactive`
492
546
  # - `code_constraints_violated`
547
+ # - `failed_to_issue`
548
+ # - `failed_to_update`
549
+ # - `failed_to_expire`
493
550
  # - `account_disconnected`
494
551
  # - `salto_ks_subscription_limit_exceeded`
495
552
  # - `insufficient_permissions`
@@ -521,6 +578,9 @@ module Seam
521
578
  "conflicting_external_modification" => ConflictingExternalModification,
522
579
  "access_code_inactive" => AccessCodeInactive,
523
580
  "code_constraints_violated" => CodeConstraintsViolated,
581
+ "failed_to_issue" => FailedToIssue,
582
+ "failed_to_update" => FailedToUpdate,
583
+ "failed_to_expire" => FailedToExpire,
524
584
  "account_disconnected" => AccountDisconnected,
525
585
  "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
526
586
  "insufficient_permissions" => InsufficientPermissions,
@@ -686,6 +746,21 @@ module Seam
686
746
  date_accessor :created_at
687
747
  end
688
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
+
689
764
  # Third-party integration detected that may cause access codes to fail.
690
765
  class ThirdPartyIntegrationDetected < Warnings
691
766
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -787,6 +862,7 @@ module Seam
787
862
  # - `external_modification_in_effect`
788
863
  # - `delay_in_setting_on_device`
789
864
  # - `delay_in_removing_from_device`
865
+ # - `delay_in_issuing`
790
866
  # - `third_party_integration_detected`
791
867
  # - `igloo_algopin_must_be_used_within_24_hours`
792
868
  # - `management_transferred`
@@ -804,6 +880,7 @@ module Seam
804
880
  "external_modification_in_effect" => ExternalModificationInEffect,
805
881
  "delay_in_setting_on_device" => DelayInSettingOnDevice,
806
882
  "delay_in_removing_from_device" => DelayInRemovingFromDevice,
883
+ "delay_in_issuing" => DelayInIssuing,
807
884
  "third_party_integration_detected" => ThirdPartyIntegrationDetected,
808
885
  "igloo_algopin_must_be_used_within_24_hours" => IglooAlgopinMustBeUsedWithinN24Hours,
809
886
  "management_transferred" => ManagementTransferred,
@@ -320,7 +320,7 @@ 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.
323
+ # Human-readable sentence answering whether the user can currently get in, for example `Active`, `Awaiting issuance`, or `Upcoming`. 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
324
  # @return [String]
325
325
  attr_accessor :display_status
326
326
  # Instant Key URL. Only returned if the Access Grant has a single mobile_key access_method.
@@ -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
@@ -3481,8 +3481,12 @@ module Seam
3481
3481
 
3482
3482
  # A device battery level dropped below the low threshold.
3483
3483
  class DeviceLowBattery < SeamEvent
3484
- # Number in the range 0 to 1.0 indicating the amount of battery in the affected device, as reported by the device.
3484
+ # Number in the range 0 to 1.0 indicating the battery level of the affected device's paired accessory keypad, when the device has one and its level is known.
3485
+ # @return [Float, nil]
3486
+ attr_accessor :accessory_keypad_battery_level
3487
+ # Number in the range 0 to 1.0 indicating the level of the battery whose drop triggered this event.
3485
3488
  # @return [Float]
3489
+ # @deprecated Use device_battery_level and accessory_keypad_battery_level, which distinguish the device's own battery from a paired accessory keypad's battery.
3486
3490
  attr_accessor :battery_level
3487
3491
  # Custom metadata of the connected account, present when connected_account_id is provided.
3488
3492
  # @return [Hash{String => String, Boolean}, nil]
@@ -3493,6 +3497,9 @@ module Seam
3493
3497
  # The customer key associated with the device, if any.
3494
3498
  # @return [String, nil]
3495
3499
  attr_accessor :customer_key
3500
+ # Number in the range 0 to 1.0 indicating the affected device's own battery level, when known.
3501
+ # @return [Float, nil]
3502
+ attr_accessor :device_battery_level
3496
3503
  # Custom metadata of the device, present when device_id is provided.
3497
3504
  # @return [Hash{String => String, Boolean}, nil]
3498
3505
  attr_accessor :device_custom_metadata
@@ -5079,6 +5086,11 @@ module Seam
5079
5086
  # - `access_code.removed_from_device`
5080
5087
  # - `access_code.delay_in_setting_on_device`
5081
5088
  # - `access_code.failed_to_set_on_device`
5089
+ # - `access_code.issued`
5090
+ # - `access_code.delay_in_issuing`
5091
+ # - `access_code.failed_to_issue`
5092
+ # - `access_code.failed_to_update`
5093
+ # - `access_code.failed_to_expire`
5082
5094
  # - `access_code.deleted`
5083
5095
  # - `access_code.delay_in_removing_from_device`
5084
5096
  # - `access_code.failed_to_remove_from_device`
@@ -214,6 +214,60 @@ module Seam
214
214
  date_accessor :created_at
215
215
  end
216
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
+
217
271
  # Indicates that the account is disconnected.
218
272
  class AccountDisconnected < Errors
219
273
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
@@ -492,6 +546,9 @@ module Seam
492
546
  # - `conflicting_external_modification`
493
547
  # - `access_code_inactive`
494
548
  # - `code_constraints_violated`
549
+ # - `failed_to_issue`
550
+ # - `failed_to_update`
551
+ # - `failed_to_expire`
495
552
  # - `account_disconnected`
496
553
  # - `salto_ks_subscription_limit_exceeded`
497
554
  # - `insufficient_permissions`
@@ -523,6 +580,9 @@ module Seam
523
580
  "conflicting_external_modification" => ConflictingExternalModification,
524
581
  "access_code_inactive" => AccessCodeInactive,
525
582
  "code_constraints_violated" => CodeConstraintsViolated,
583
+ "failed_to_issue" => FailedToIssue,
584
+ "failed_to_update" => FailedToUpdate,
585
+ "failed_to_expire" => FailedToExpire,
526
586
  "account_disconnected" => AccountDisconnected,
527
587
  "salto_ks_subscription_limit_exceeded" => SaltoKsSubscriptionLimitExceeded,
528
588
  "insufficient_permissions" => InsufficientPermissions,
@@ -638,6 +698,21 @@ module Seam
638
698
  date_accessor :created_at
639
699
  end
640
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
+
641
716
  # Third-party integration detected that may cause access codes to fail.
642
717
  class ThirdPartyIntegrationDetected < Warnings
643
718
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
@@ -739,6 +814,7 @@ module Seam
739
814
  # - `external_modification_in_effect`
740
815
  # - `delay_in_setting_on_device`
741
816
  # - `delay_in_removing_from_device`
817
+ # - `delay_in_issuing`
742
818
  # - `third_party_integration_detected`
743
819
  # - `igloo_algopin_must_be_used_within_24_hours`
744
820
  # - `management_transferred`
@@ -756,6 +832,7 @@ module Seam
756
832
  "external_modification_in_effect" => ExternalModificationInEffect,
757
833
  "delay_in_setting_on_device" => DelayInSettingOnDevice,
758
834
  "delay_in_removing_from_device" => DelayInRemovingFromDevice,
835
+ "delay_in_issuing" => DelayInIssuing,
759
836
  "third_party_integration_detected" => ThirdPartyIntegrationDetected,
760
837
  "igloo_algopin_must_be_used_within_24_hours" => IglooAlgopinMustBeUsedWithinN24Hours,
761
838
  "management_transferred" => ManagementTransferred,
@@ -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
@@ -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
@@ -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]
@@ -196,7 +196,7 @@ module Seam
196
196
  # @param type [String, nil] Type to which you want to convert the access code. To convert a time-bound access code to an ongoing access code, set `type` to `ongoing`. See also [Changing a time-bound access code to permanent access](https://docs.seam.co/low-level-apis/smart-locks/access-codes/modifying-access-codes#special-case-2-changing-a-time-bound-access-code-to-permanent-access).
197
197
  # @return [nil] OK
198
198
  def update(access_code_id:, allow_external_modification: nil, attempt_for_offline_device: nil, code: nil, device_id: nil, ends_at: nil, is_external_modification_allowed: nil, is_managed: nil, name: nil, starts_at: nil, type: nil)
199
- @client.put("/access_codes/update", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, code: code, device_id: device_id, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, is_managed: is_managed, name: name, starts_at: starts_at, type: type}.compact)
199
+ @client.patch("/access_codes/update", {access_code_id: access_code_id, allow_external_modification: allow_external_modification, attempt_for_offline_device: attempt_for_offline_device, code: code, device_id: device_id, ends_at: ends_at, is_external_modification_allowed: is_external_modification_allowed, is_managed: is_managed, name: name, starts_at: starts_at, type: type}.compact)
200
200
 
201
201
  nil
202
202
  end
@@ -14,8 +14,6 @@ module Seam
14
14
 
15
15
  # Creates a new [Access Grant](https://docs.seam.co/use-cases/granting-access/access-grants). Access Grants are the default and recommended way to grant a user access to any physical space, irrespective of the locking hardware. They work with both standalone smart locks (using `device_ids`) and access control systems (using `acs_entrance_ids` or `space_ids`), and can issue PIN codes, key cards, and mobile keys through a single request.
16
16
  # @param requested_access_methods [Array<Hash>]
17
- # @param user_identity_id [String, nil] ID of user identity for whom access is being granted.
18
- # @param user_identity [Hash, nil] When used, creates a new user identity with the given details, and grants them access.
19
17
  # @param access_grant_key [String, nil] Unique key for the access grant within the workspace.
20
18
  # @param acs_entrance_ids [Array<String>, nil] Set of IDs of the [entrances](https://docs.seam.co/api/acs/systems/list) to which access is being granted.
21
19
  # @param customization_profile_id [String, nil] ID of the customization profile to apply to the Access Grant and its access methods.
@@ -30,9 +28,11 @@ module Seam
30
28
  # @param space_ids [Array<String>, nil] Set of IDs of existing spaces to which access is being granted.
31
29
  # @param space_keys [Array<String>, nil] Set of keys of existing spaces to which access is being granted.
32
30
  # @param starts_at [String, nil] Date and time at which the validity of the new grant starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
31
+ # @param user_identity [Hash, nil] When used, creates a new user identity with the given details, and grants them access.
32
+ # @param user_identity_id [String, nil] ID of user identity for whom access is being granted.
33
33
  # @return [Seam::Resources::AccessGrant] OK
34
- def create(requested_access_methods:, user_identity_id: nil, user_identity: nil, access_grant_key: nil, acs_entrance_ids: nil, customization_profile_id: nil, device_ids: nil, ends_at: nil, location: nil, location_ids: nil, name: nil, reservation_key: nil, space_ids: nil, space_keys: nil, starts_at: nil)
35
- res = @client.post("/access_grants/create", {requested_access_methods: requested_access_methods, user_identity_id: user_identity_id, user_identity: user_identity, access_grant_key: access_grant_key, acs_entrance_ids: acs_entrance_ids, customization_profile_id: customization_profile_id, device_ids: device_ids, ends_at: ends_at, location: location, location_ids: location_ids, name: name, reservation_key: reservation_key, space_ids: space_ids, space_keys: space_keys, starts_at: starts_at}.compact)
34
+ def create(requested_access_methods:, access_grant_key: nil, acs_entrance_ids: nil, customization_profile_id: nil, device_ids: nil, ends_at: nil, location: nil, location_ids: nil, name: nil, reservation_key: nil, space_ids: nil, space_keys: nil, starts_at: nil, user_identity: nil, user_identity_id: nil)
35
+ res = @client.post("/access_grants/create", {requested_access_methods: requested_access_methods, access_grant_key: access_grant_key, acs_entrance_ids: acs_entrance_ids, customization_profile_id: customization_profile_id, device_ids: device_ids, ends_at: ends_at, location: location, location_ids: location_ids, name: name, reservation_key: reservation_key, space_ids: space_ids, space_keys: space_keys, starts_at: starts_at, user_identity: user_identity, user_identity_id: user_identity_id}.compact)
36
36
 
37
37
  Seam::Resources::AccessGrant.load_from_response(res.body["access_grant"])
38
38
  end
@@ -27,16 +27,16 @@ module Seam
27
27
  end
28
28
 
29
29
  # Deletes an access method.
30
- # @param access_method_id [String, nil] ID of access method to delete.
31
30
  # @param access_grant_id [String, nil] ID of access grant whose access methods should be deleted.
31
+ # @param access_method_id [String, nil] ID of access method to delete.
32
32
  # @param reservation_key [String, nil] Reservation key of the access grant whose access methods should be deleted.
33
33
  # @return [nil] OK
34
- def delete(access_method_id: nil, access_grant_id: nil, reservation_key: nil)
35
- if access_method_id.nil? && access_grant_id.nil? && reservation_key.nil?
34
+ def delete(access_grant_id: nil, access_method_id: nil, reservation_key: nil)
35
+ if access_grant_id.nil? && access_method_id.nil? && reservation_key.nil?
36
36
  raise TypeError, "At least one parameter is required for /access_methods/delete"
37
37
  end
38
38
 
39
- @client.delete("/access_methods/delete", {access_method_id: access_method_id, access_grant_id: access_grant_id, reservation_key: reservation_key}.compact)
39
+ @client.delete("/access_methods/delete", {access_grant_id: access_grant_id, access_method_id: access_method_id, reservation_key: reservation_key}.compact)
40
40
 
41
41
  nil
42
42
  end
@@ -10,11 +10,11 @@ module Seam
10
10
 
11
11
  # Simulates that the next attempt to encode a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).
12
12
  # @param acs_encoder_id [String] ID of the `acs_encoder` that will be used in the next request to encode the `acs_credential`.
13
- # @param error_code [String, nil] Code of the error to simulate.
14
13
  # @param acs_credential_id [String, nil] ID of the `acs_credential` that will fail to be encoded onto a card in the next request.
14
+ # @param error_code [String, nil] Code of the error to simulate.
15
15
  # @return [nil] OK
16
- def next_credential_encode_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id: nil)
17
- @client.post("/acs/encoders/simulate/next_credential_encode_will_fail", {acs_encoder_id: acs_encoder_id, error_code: error_code, acs_credential_id: acs_credential_id}.compact)
16
+ def next_credential_encode_will_fail(acs_encoder_id:, acs_credential_id: nil, error_code: nil)
17
+ @client.post("/acs/encoders/simulate/next_credential_encode_will_fail", {acs_encoder_id: acs_encoder_id, acs_credential_id: acs_credential_id, error_code: error_code}.compact)
18
18
 
19
19
  nil
20
20
  end
@@ -31,11 +31,11 @@ module Seam
31
31
 
32
32
  # Simulates that the next attempt to scan a [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) using the specified [encoder](https://docs.seam.co/low-level-apis/access-systems/working-with-card-encoders-and-scanners) will fail. You can only perform this action within a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).
33
33
  # @param acs_encoder_id [String] ID of the `acs_encoder` that will fail to scan the `acs_credential` in the next request.
34
- # @param error_code [String, nil]
35
34
  # @param acs_credential_id_on_seam [String, nil]
35
+ # @param error_code [String, nil]
36
36
  # @return [nil] OK
37
- def next_credential_scan_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id_on_seam: nil)
38
- @client.post("/acs/encoders/simulate/next_credential_scan_will_fail", {acs_encoder_id: acs_encoder_id, error_code: error_code, acs_credential_id_on_seam: acs_credential_id_on_seam}.compact)
37
+ def next_credential_scan_will_fail(acs_encoder_id:, acs_credential_id_on_seam: nil, error_code: nil)
38
+ @client.post("/acs/encoders/simulate/next_credential_scan_will_fail", {acs_encoder_id: acs_encoder_id, acs_credential_id_on_seam: acs_credential_id_on_seam, error_code: error_code}.compact)
39
39
 
40
40
  nil
41
41
  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)
@@ -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. Key names cannot contain a period (.). Specify an empty string to match a key that is unset or set to an empty string.
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. Key names cannot contain a period (.). Specify an empty string to match a key that is unset or set to an empty string.
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`.
@@ -9,6 +9,7 @@ module Seam
9
9
  end
10
10
 
11
11
  # Creates a new customer portal magic link with configurable features.
12
+ # @param customer_data [Hash, nil]
12
13
  # @param customer_resources_filters [Array<Hash>, nil] Filter configuration for resources based on their custom_metadata. Each filter specifies a field, operation, and value to match against resource custom_metadata.
13
14
  # @param customization_profile_id [String, nil] The ID of the customization profile to use for the portal.
14
15
  # @param deep_link [Hash, nil] Deep link target resource for initial redirect. When set, the portal will navigate directly to the specified resource.
@@ -19,10 +20,9 @@ module Seam
19
20
  # @param locale [String, nil] The locale to use for the portal.
20
21
  # @param navigation_mode [String, nil] Navigation mode for the portal. 'restricted' tells frontend to hide navigation UI, typically used for embedded deep links.
21
22
  # @param read_only [Boolean, nil] Whether the portal is read-only. When true, the customer can browse the portal but cannot perform any mutating action; write requests made with the portal's client session are rejected.
22
- # @param customer_data [Hash, nil]
23
23
  # @return [Seam::Resources::CustomerPortal] OK
24
- def create_portal(customer_resources_filters: nil, customization_profile_id: nil, deep_link: nil, exclude_locale_picker: nil, features: nil, is_embedded: nil, landing_page: nil, locale: nil, navigation_mode: nil, read_only: nil, customer_data: nil)
25
- res = @client.post("/customers/create_portal", {customer_resources_filters: customer_resources_filters, customization_profile_id: customization_profile_id, deep_link: deep_link, exclude_locale_picker: exclude_locale_picker, features: features, is_embedded: is_embedded, landing_page: landing_page, locale: locale, navigation_mode: navigation_mode, read_only: read_only, customer_data: customer_data}.compact)
24
+ def create_portal(customer_data: nil, customer_resources_filters: nil, customization_profile_id: nil, deep_link: nil, exclude_locale_picker: nil, features: nil, is_embedded: nil, landing_page: nil, locale: nil, navigation_mode: nil, read_only: nil)
25
+ res = @client.post("/customers/create_portal", {customer_data: customer_data, customer_resources_filters: customer_resources_filters, customization_profile_id: customization_profile_id, deep_link: deep_link, exclude_locale_picker: exclude_locale_picker, features: features, is_embedded: is_embedded, landing_page: landing_page, locale: locale, navigation_mode: navigation_mode, read_only: read_only}.compact)
26
26
 
27
27
  Seam::Resources::CustomerPortal.load_from_response(res.body["customer_portal"])
28
28
  end
@@ -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. Key names cannot contain a period (.). Specify an empty string to match a key that is unset or set to an empty string.
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.
@@ -60,7 +60,7 @@ module Seam
60
60
  # @param starts_daily_at [String, nil] Time at which the noise threshold should become active daily.
61
61
  # @return [nil] OK
62
62
  def update(device_id:, noise_threshold_id:, ends_daily_at: nil, name: nil, noise_threshold_decibels: nil, noise_threshold_nrs: nil, starts_daily_at: nil)
63
- @client.put("/noise_sensors/noise_thresholds/update", {device_id: device_id, noise_threshold_id: noise_threshold_id, ends_daily_at: ends_daily_at, name: name, noise_threshold_decibels: noise_threshold_decibels, noise_threshold_nrs: noise_threshold_nrs, starts_daily_at: starts_daily_at}.compact)
63
+ @client.patch("/noise_sensors/noise_thresholds/update", {device_id: device_id, noise_threshold_id: noise_threshold_id, ends_daily_at: ends_daily_at, name: name, noise_threshold_decibels: noise_threshold_decibels, noise_threshold_nrs: noise_threshold_nrs, starts_daily_at: starts_daily_at}.compact)
64
64
 
65
65
  nil
66
66
  end
@@ -142,16 +142,16 @@ module Seam
142
142
  #
143
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
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
145
  # @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.
146
+ # @param user_identity_id [String, nil] ID of the primary user identity to keep.
147
147
  # @param user_identity_key [String, nil] Key of the primary user identity to keep.
148
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?
149
+ def merge(merged_user_identity_ids: nil, merged_user_identity_keys: nil, user_identity_id: nil, user_identity_key: nil)
150
+ if merged_user_identity_ids.nil? && merged_user_identity_keys.nil? && user_identity_id.nil? && user_identity_key.nil?
151
151
  raise TypeError, "At least one parameter is required for /user_identities/merge"
152
152
  end
153
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)
154
+ @client.post("/user_identities/merge", {merged_user_identity_ids: merged_user_identity_ids, merged_user_identity_keys: merged_user_identity_keys, user_identity_id: user_identity_id, user_identity_key: user_identity_key}.compact)
155
155
 
156
156
  nil
157
157
  end
@@ -13,11 +13,11 @@ 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
- # @param organization_id [String, nil] ID of the organization to associate with the new workspace.
20
+ # @param organization_id [String, nil] ID of the organization to associate with the new workspace. If omitted, the new workspace is associated with the organization that you administer, if you administer exactly one.
21
21
  # @param webview_logo_shape [String, nil]
22
22
  # @deprecated webview_logo_shape: Use `connect_webview_customization.webview_logo_shape` instead.
23
23
  # @param webview_primary_button_color [String, nil]
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.146.0"
4
+ VERSION = "2.148.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.146.0
4
+ version: 2.148.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seam Labs, Inc.