seam 2.26.0 → 2.27.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: ea67d88559248dbb0c49c7788b0f03584c52aabae4ef6afccdc3f281d0b4f4d1
4
- data.tar.gz: c46d44fad4d24523d8c9485e9ec58f68ded0fb2267c961d625d9979c6ab22c8c
3
+ metadata.gz: b12a49b29b40e0ab9b60afe15e162c02388f7679c363d08ee70b8ea181a3c582
4
+ data.tar.gz: 16e5d4ea186e01cdae4ef92cd6a499c2e7ee95fb4961e4d7ad326b6dd2b8da8d
5
5
  SHA512:
6
- metadata.gz: b3175f2f1065ff097a91239b581a9898365bff67f7faaa886549ae94b4849e0b66c5f23567f67661ab71836d949c6d7415ab56d279d6b9f9ca421dcd5d768390
7
- data.tar.gz: d033ed1fa21bc55f62bf3f50a917107828d68c4e9b01bda00aa6764ee41de0904e68754dce9dd2b0e3d6b59b54c73acd28c541dedc6af2f004c724bfa9a66663
6
+ metadata.gz: 0a03e97676a28292c6d999fbb0413facc7d195f4a7950ecb11a53eb6ef9281034cc9e34b884d8200b972f769463baf43bc7683ec6767111366d4ac584df641d4
7
+ data.tar.gz: a4e9a562155151264ce87d442316d2c82c4a62eae447b8b94f03e9fe878ec7334c6f526f252027f5400013864ae0de328c53c202146f4bb44af061fc5db0b4f6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seam (2.26.0)
4
+ seam (2.27.0)
5
5
  faraday (~> 2.7)
6
6
  faraday-retry (~> 2.2)
7
7
  svix (~> 1.30)
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class AccessGrants
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def create(requested_access_methods:, user_identity_id: nil, user_identity: nil, acs_entrance_ids: nil, device_ids: nil, ends_at: nil, location: nil, location_ids: nil, space_ids: nil, starts_at: nil)
12
+ @client.post("/access_grants/create", {requested_access_methods: requested_access_methods, user_identity_id: user_identity_id, user_identity: user_identity, acs_entrance_ids: acs_entrance_ids, device_ids: device_ids, ends_at: ends_at, location: location, location_ids: location_ids, space_ids: space_ids, starts_at: starts_at}.compact)
13
+
14
+ nil
15
+ end
16
+
17
+ def delete(access_grant_id:)
18
+ @client.post("/access_grants/delete", {access_grant_id: access_grant_id}.compact)
19
+
20
+ nil
21
+ end
22
+
23
+ def get(access_grant_id:)
24
+ @client.post("/access_grants/get", {access_grant_id: access_grant_id}.compact)
25
+
26
+ nil
27
+ end
28
+
29
+ def list(acs_entrance_id: nil, acs_system_id: nil, location_id: nil, space_id: nil, user_identity_id: nil)
30
+ @client.post("/access_grants/list", {acs_entrance_id: acs_entrance_id, acs_system_id: acs_system_id, location_id: location_id, space_id: space_id, user_identity_id: user_identity_id}.compact)
31
+
32
+ nil
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class AccessMethods
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def delete(access_method_id:)
12
+ @client.post("/access_methods/delete", {access_method_id: access_method_id}.compact)
13
+
14
+ nil
15
+ end
16
+
17
+ def get(access_method_id:)
18
+ @client.post("/access_methods/get", {access_method_id: access_method_id}.compact)
19
+
20
+ nil
21
+ end
22
+
23
+ def list(access_grant_id:)
24
+ @client.post("/access_methods/list", {access_grant_id: access_grant_id}.compact)
25
+
26
+ nil
27
+ end
28
+ end
29
+ end
30
+ end
@@ -20,8 +20,8 @@ module Seam
20
20
  nil
21
21
  end
22
22
 
23
- def list(acs_credential_id: nil, acs_system_id: nil, location_id: nil)
24
- res = @client.post("/acs/entrances/list", {acs_credential_id: acs_credential_id, acs_system_id: acs_system_id, location_id: location_id}.compact)
23
+ def list(acs_credential_id: nil, acs_system_id: nil, location_id: nil, space_id: nil)
24
+ res = @client.post("/acs/entrances/list", {acs_credential_id: acs_credential_id, acs_system_id: acs_system_id, location_id: location_id, space_id: space_id}.compact)
25
25
 
26
26
  Seam::Resources::AcsEntrance.load_from_response(res.body["acs_entrances"])
27
27
  end
@@ -22,8 +22,8 @@ module Seam
22
22
  Seam::Resources::Device.load_from_response(res.body["device"])
23
23
  end
24
24
 
25
- def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, unstable_location_id: nil, user_identifier_key: nil)
26
- res = @client.post("/devices/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
25
+ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil)
26
+ res = @client.post("/devices/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
27
27
 
28
28
  Seam::Resources::Device.load_from_response(res.body["devices"])
29
29
  end
@@ -14,8 +14,8 @@ module Seam
14
14
  Seam::Resources::UnmanagedDevice.load_from_response(res.body["device"])
15
15
  end
16
16
 
17
- def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, unstable_location_id: nil, user_identifier_key: nil)
18
- res = @client.post("/devices/unmanaged/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
17
+ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil)
18
+ res = @client.post("/devices/unmanaged/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
19
19
 
20
20
  Seam::Resources::UnmanagedDevice.load_from_response(res.body["devices"])
21
21
  end
@@ -3,6 +3,8 @@
3
3
  require_relative "access_codes"
4
4
  require_relative "access_codes_simulate"
5
5
  require_relative "access_codes_unmanaged"
6
+ require_relative "access_grants"
7
+ require_relative "access_methods"
6
8
  require_relative "acs_access_groups"
7
9
  require_relative "acs"
8
10
  require_relative "acs_credentials"
@@ -25,6 +27,7 @@ require_relative "noise_sensors_noise_thresholds"
25
27
  require_relative "noise_sensors_simulate"
26
28
  require_relative "phones"
27
29
  require_relative "phones_simulate"
30
+ require_relative "spaces"
28
31
  require_relative "thermostats"
29
32
  require_relative "thermostats_daily_programs"
30
33
  require_relative "thermostats_schedules"
@@ -16,8 +16,8 @@ module Seam
16
16
  Seam::Resources::Device.load_from_response(res.body["device"])
17
17
  end
18
18
 
19
- def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, unstable_location_id: nil, user_identifier_key: nil)
20
- res = @client.post("/locks/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
19
+ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil)
20
+ res = @client.post("/locks/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
21
21
 
22
22
  Seam::Resources::Device.load_from_response(res.body["devices"])
23
23
  end
@@ -16,8 +16,8 @@ module Seam
16
16
  @simulate ||= Seam::Clients::NoiseSensorsSimulate.new(client: @client, defaults: @defaults)
17
17
  end
18
18
 
19
- def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, unstable_location_id: nil, user_identifier_key: nil)
20
- res = @client.post("/noise_sensors/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
19
+ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil)
20
+ res = @client.post("/noise_sensors/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
21
21
 
22
22
  Seam::Resources::Device.load_from_response(res.body["devices"])
23
23
  end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class Spaces
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def add_acs_entrances(acs_entrance_ids:, space_id:)
12
+ @client.post("/spaces/add_acs_entrances", {acs_entrance_ids: acs_entrance_ids, space_id: space_id}.compact)
13
+
14
+ nil
15
+ end
16
+
17
+ def add_devices(device_ids:, space_id:)
18
+ @client.post("/spaces/add_devices", {device_ids: device_ids, space_id: space_id}.compact)
19
+
20
+ nil
21
+ end
22
+
23
+ def create(name:, acs_entrance_ids: nil, device_ids: nil)
24
+ res = @client.post("/spaces/create", {name: name, acs_entrance_ids: acs_entrance_ids, device_ids: device_ids}.compact)
25
+
26
+ Seam::Resources::Space.load_from_response(res.body["space"])
27
+ end
28
+
29
+ def delete(space_id:)
30
+ @client.post("/spaces/delete", {space_id: space_id}.compact)
31
+
32
+ nil
33
+ end
34
+
35
+ def get(space_id:)
36
+ res = @client.post("/spaces/get", {space_id: space_id}.compact)
37
+
38
+ Seam::Resources::Space.load_from_response(res.body["space"])
39
+ end
40
+
41
+ def list
42
+ res = @client.post("/spaces/list")
43
+
44
+ Seam::Resources::Space.load_from_response(res.body["spaces"])
45
+ end
46
+
47
+ def remove_acs_entrances(acs_entrance_ids:, space_id:)
48
+ @client.post("/spaces/remove_acs_entrances", {acs_entrance_ids: acs_entrance_ids, space_id: space_id}.compact)
49
+
50
+ nil
51
+ end
52
+
53
+ def remove_devices(device_ids:, space_id:)
54
+ @client.post("/spaces/remove_devices", {device_ids: device_ids, space_id: space_id}.compact)
55
+
56
+ nil
57
+ end
58
+
59
+ def update(space_id:, name: nil)
60
+ res = @client.post("/spaces/update", {space_id: space_id, name: name}.compact)
61
+
62
+ Seam::Resources::Space.load_from_response(res.body["space"])
63
+ end
64
+ end
65
+ end
66
+ end
@@ -66,8 +66,8 @@ module Seam
66
66
  Helpers::ActionAttempt.decide_and_wait(Seam::Resources::ActionAttempt.load_from_response(res.body["action_attempt"]), @client, wait_for_action_attempt)
67
67
  end
68
68
 
69
- def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, unstable_location_id: nil, user_identifier_key: nil)
70
- res = @client.post("/thermostats/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
69
+ def list(connect_webview_id: nil, connected_account_id: nil, connected_account_ids: nil, created_before: nil, custom_metadata_has: nil, customer_ids: nil, device_ids: nil, device_type: nil, device_types: nil, exclude_if: nil, include_if: nil, limit: nil, manufacturer: nil, page_cursor: nil, space_id: nil, unstable_location_id: nil, user_identifier_key: nil)
70
+ res = @client.post("/thermostats/list", {connect_webview_id: connect_webview_id, connected_account_id: connected_account_id, connected_account_ids: connected_account_ids, created_before: created_before, custom_metadata_has: custom_metadata_has, customer_ids: customer_ids, device_ids: device_ids, device_type: device_type, device_types: device_types, exclude_if: exclude_if, include_if: include_if, limit: limit, manufacturer: manufacturer, page_cursor: page_cursor, space_id: space_id, unstable_location_id: unstable_location_id, user_identifier_key: user_identifier_key}.compact)
71
71
 
72
72
  Seam::Resources::Device.load_from_response(res.body["devices"])
73
73
  end
@@ -24,12 +24,12 @@ require_relative "enrollment_automation"
24
24
  require_relative "event"
25
25
  require_relative "instant_key"
26
26
  require_relative "magic_link"
27
- require_relative "network"
28
27
  require_relative "noise_threshold"
29
28
  require_relative "pagination"
30
29
  require_relative "phone"
31
30
  require_relative "phone_registration"
32
31
  require_relative "phone_session"
32
+ require_relative "space"
33
33
  require_relative "thermostat_schedule"
34
34
  require_relative "unmanaged_access_code"
35
35
  require_relative "unmanaged_acs_access_group"
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
- class Network < BaseResource
6
- attr_accessor :display_name, :network_id, :workspace_id
5
+ class Space < BaseResource
6
+ attr_accessor :display_name, :name, :space_id, :workspace_id
7
7
 
8
8
  date_accessor :created_at
9
9
  end
@@ -6,6 +6,14 @@ module Seam
6
6
  @access_codes ||= Seam::Clients::AccessCodes.new(client: @client, defaults: @defaults)
7
7
  end
8
8
 
9
+ def access_grants
10
+ @access_grants ||= Seam::Clients::AccessGrants.new(client: @client, defaults: @defaults)
11
+ end
12
+
13
+ def access_methods
14
+ @access_methods ||= Seam::Clients::AccessMethods.new(client: @client, defaults: @defaults)
15
+ end
16
+
9
17
  def acs
10
18
  @acs ||= Seam::Clients::Acs.new(client: @client, defaults: @defaults)
11
19
  end
@@ -46,6 +54,10 @@ module Seam
46
54
  @phones ||= Seam::Clients::Phones.new(client: @client, defaults: @defaults)
47
55
  end
48
56
 
57
+ def spaces
58
+ @spaces ||= Seam::Clients::Spaces.new(client: @client, defaults: @defaults)
59
+ end
60
+
49
61
  def thermostats
50
62
  @thermostats ||= Seam::Clients::Thermostats.new(client: @client, defaults: @defaults)
51
63
  end
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.26.0"
4
+ VERSION = "2.27.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seam
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.26.0
4
+ version: 2.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seam Labs, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-06 00:00:00.000000000 Z
11
+ date: 2025-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -206,6 +206,8 @@ files:
206
206
  - lib/seam/routes/clients/access_codes.rb
207
207
  - lib/seam/routes/clients/access_codes_simulate.rb
208
208
  - lib/seam/routes/clients/access_codes_unmanaged.rb
209
+ - lib/seam/routes/clients/access_grants.rb
210
+ - lib/seam/routes/clients/access_methods.rb
209
211
  - lib/seam/routes/clients/acs.rb
210
212
  - lib/seam/routes/clients/acs_access_groups.rb
211
213
  - lib/seam/routes/clients/acs_credentials.rb
@@ -229,6 +231,7 @@ files:
229
231
  - lib/seam/routes/clients/noise_sensors_simulate.rb
230
232
  - lib/seam/routes/clients/phones.rb
231
233
  - lib/seam/routes/clients/phones_simulate.rb
234
+ - lib/seam/routes/clients/spaces.rb
232
235
  - lib/seam/routes/clients/thermostats.rb
233
236
  - lib/seam/routes/clients/thermostats_daily_programs.rb
234
237
  - lib/seam/routes/clients/thermostats_schedules.rb
@@ -257,7 +260,6 @@ files:
257
260
  - lib/seam/routes/resources/index.rb
258
261
  - lib/seam/routes/resources/instant_key.rb
259
262
  - lib/seam/routes/resources/magic_link.rb
260
- - lib/seam/routes/resources/network.rb
261
263
  - lib/seam/routes/resources/noise_threshold.rb
262
264
  - lib/seam/routes/resources/pagination.rb
263
265
  - lib/seam/routes/resources/phone.rb
@@ -267,6 +269,7 @@ files:
267
269
  - lib/seam/routes/resources/resource_errors_support.rb
268
270
  - lib/seam/routes/resources/resource_warning.rb
269
271
  - lib/seam/routes/resources/resource_warnings_support.rb
272
+ - lib/seam/routes/resources/space.rb
270
273
  - lib/seam/routes/resources/thermostat_schedule.rb
271
274
  - lib/seam/routes/resources/unmanaged_access_code.rb
272
275
  - lib/seam/routes/resources/unmanaged_acs_access_group.rb