seam 2.147.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 +4 -4
- data/Gemfile.lock +2 -2
- data/lib/seam/resources/access_grant.rb +1 -1
- data/lib/seam/resources/event.rb +8 -7
- data/lib/seam/routes/access_codes.rb +1 -1
- data/lib/seam/routes/access_grants.rb +4 -4
- data/lib/seam/routes/access_methods.rb +4 -4
- data/lib/seam/routes/acs_encoders_simulate.rb +6 -6
- data/lib/seam/routes/customers.rb +3 -3
- data/lib/seam/routes/noise_sensors_noise_thresholds.rb +1 -1
- data/lib/seam/routes/user_identities.rb +4 -4
- data/lib/seam/routes/workspaces.rb +1 -1
- data/lib/seam/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: '06196d87a7db7cb6f396e2ce2f94f02d9dfb2c2eecff52fa314df6d95856ff57'
|
|
4
|
+
data.tar.gz: f7be00a016e5c13fc8e937595b80302453ae8625d27df6a0541d1eacf5b3504e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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.
|
|
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.
|
|
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
|
|
@@ -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 `
|
|
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.
|
data/lib/seam/resources/event.rb
CHANGED
|
@@ -3481,15 +3481,13 @@ 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
|
|
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
|
-
# 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
|
|
3493
3491
|
# Custom metadata of the connected account, present when connected_account_id is provided.
|
|
3494
3492
|
# @return [Hash{String => String, Boolean}, nil]
|
|
3495
3493
|
attr_accessor :connected_account_custom_metadata
|
|
@@ -3499,6 +3497,9 @@ module Seam
|
|
|
3499
3497
|
# The customer key associated with the device, if any.
|
|
3500
3498
|
# @return [String, nil]
|
|
3501
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
|
|
3502
3503
|
# Custom metadata of the device, present when device_id is provided.
|
|
3503
3504
|
# @return [Hash{String => String, Boolean}, nil]
|
|
3504
3505
|
attr_accessor :device_custom_metadata
|
|
@@ -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.
|
|
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:,
|
|
35
|
-
res = @client.post("/access_grants/create", {requested_access_methods: requested_access_methods,
|
|
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(
|
|
35
|
-
if
|
|
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", {
|
|
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:,
|
|
17
|
-
@client.post("/acs/encoders/simulate/next_credential_encode_will_fail", {acs_encoder_id: acs_encoder_id,
|
|
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:,
|
|
38
|
-
@client.post("/acs/encoders/simulate/next_credential_scan_will_fail", {acs_encoder_id: acs_encoder_id,
|
|
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
|
|
@@ -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
|
|
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
|
|
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
|
|
@@ -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.
|
|
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,
|
|
150
|
-
if merged_user_identity_ids.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,
|
|
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
|
|
@@ -17,7 +17,7 @@ module Seam
|
|
|
17
17
|
# @param connect_partner_name [String, Seam::Null, nil] Connect partner name for the new workspace.
|
|
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