seam 2.3.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/seam/routes/clients/access_codes.rb +1 -1
  4. data/lib/seam/routes/clients/acs_access_groups_unmanaged.rb +4 -4
  5. data/lib/seam/routes/clients/acs_credentials.rb +8 -2
  6. data/lib/seam/routes/clients/acs_credentials_unmanaged.rb +4 -4
  7. data/lib/seam/routes/clients/acs_encoders.rb +4 -4
  8. data/lib/seam/routes/clients/acs_encoders_simulate.rb +36 -0
  9. data/lib/seam/routes/clients/acs_users.rb +2 -2
  10. data/lib/seam/routes/clients/acs_users_unmanaged.rb +4 -4
  11. data/lib/seam/routes/clients/bridges.rb +24 -0
  12. data/lib/seam/routes/clients/index.rb +3 -0
  13. data/lib/seam/routes/clients/phones.rb +6 -0
  14. data/lib/seam/routes/clients/thermostats.rb +4 -0
  15. data/lib/seam/routes/clients/thermostats_simulate.rb +24 -0
  16. data/lib/seam/routes/resources/acs_access_group.rb +2 -0
  17. data/lib/seam/routes/resources/acs_credential.rb +1 -1
  18. data/lib/seam/routes/resources/acs_encoder.rb +13 -0
  19. data/lib/seam/routes/resources/acs_entrance.rb +1 -1
  20. data/lib/seam/routes/resources/acs_system.rb +1 -1
  21. data/lib/seam/routes/resources/client_session.rb +1 -1
  22. data/lib/seam/routes/resources/event.rb +1 -1
  23. data/lib/seam/routes/resources/index.rb +4 -1
  24. data/lib/seam/routes/resources/phone.rb +1 -1
  25. data/lib/seam/routes/resources/unmanaged_acs_access_group.rb +13 -0
  26. data/lib/seam/routes/resources/unmanaged_acs_credential.rb +14 -0
  27. data/lib/seam/routes/resources/unmanaged_acs_user.rb +14 -0
  28. data/lib/seam/routes/routes.rb +4 -0
  29. data/lib/seam/version.rb +1 -1
  30. metadata +12 -6
  31. data/lib/seam/routes/resources/service_health.rb +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8021a5c173122f3b94f93794cc375a3119af2237acc6d49fd4290a795eda9861
4
- data.tar.gz: 9abfaf6963d9fec7f764f9a7c644107d3b1bb8321bb47a861034f227037623f4
3
+ metadata.gz: 6fd920983a08afea0ad7077a09189dcd9431f214c450dd3356630333c6fbcf04
4
+ data.tar.gz: 238b1af59f8fcf390622185b640937bfc016d95756ead641c0499c7687577626
5
5
  SHA512:
6
- metadata.gz: 026f63d334ec08141c03e767dbf83acb7c13683371bcbfd7d11d85a7949e49e751b5513df761fc3dda93f42a2624ffa71f2d8fa531acc5322cd839b8c39fcd0d
7
- data.tar.gz: c6b4b366bf2dd2c016b1d221364edff29b63f476de8030cad9af3902a743607549f6a481f281d5dcc41fde706cedd69c790cbe0292e2219e5d9489b05e21b2c6
6
+ metadata.gz: b5400af12dc43967b8bcc53a6436ffbbbc3e612d112f7d63b9daf4fb3efa3a4bba01fdedbd0aca0388a443d4705f024bbca5192e1a1de2902886411608bfc581
7
+ data.tar.gz: 5693d3a1970b412f00849fa144f97604625b4cf285bf4ebc7e1ec66ee8efdbc214b19812cc0021de7e2187497626d6de87053f586fe0ab5e8a2a56a7cc390adc
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seam (2.3.2)
4
+ seam (2.4.0)
5
5
  faraday (~> 2.7)
6
6
  faraday-retry (~> 2.2)
7
7
  svix (~> 1.30)
@@ -55,7 +55,7 @@ module Seam
55
55
  def pull_backup_access_code(access_code_id:)
56
56
  res = @client.post("/access_codes/pull_backup_access_code", {access_code_id: access_code_id}.compact)
57
57
 
58
- Seam::Resources::AccessCode.load_from_response(res.body["backup_access_code"])
58
+ Seam::Resources::AccessCode.load_from_response(res.body["access_code"])
59
59
  end
60
60
 
61
61
  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, is_offline_access_code: nil, is_one_time_use: nil, max_time_rounding: nil, name: nil, prefer_native_scheduling: nil, preferred_code_length: nil, starts_at: nil, sync: nil, type: nil, use_backup_access_code_pool: nil, use_offline_access_code: nil)
@@ -9,15 +9,15 @@ module Seam
9
9
  end
10
10
 
11
11
  def get(acs_access_group_id:)
12
- @client.post("/acs/access_groups/unmanaged/get", {acs_access_group_id: acs_access_group_id}.compact)
12
+ res = @client.post("/acs/access_groups/unmanaged/get", {acs_access_group_id: acs_access_group_id}.compact)
13
13
 
14
- nil
14
+ Seam::Resources::UnmanagedAcsAccessGroup.load_from_response(res.body["acs_access_group"])
15
15
  end
16
16
 
17
17
  def list(acs_system_id: nil, acs_user_id: nil)
18
- @client.post("/acs/access_groups/unmanaged/list", {acs_system_id: acs_system_id, acs_user_id: acs_user_id}.compact)
18
+ res = @client.post("/acs/access_groups/unmanaged/list", {acs_system_id: acs_system_id, acs_user_id: acs_user_id}.compact)
19
19
 
20
- nil
20
+ Seam::Resources::UnmanagedAcsAccessGroup.load_from_response(res.body["acs_access_groups"])
21
21
  end
22
22
  end
23
23
  end
@@ -14,8 +14,14 @@ module Seam
14
14
  nil
15
15
  end
16
16
 
17
- def create(access_method:, acs_user_id:, allowed_acs_entrance_ids: nil, assa_abloy_vostio_metadata: nil, code: nil, credential_manager_acs_system_id: nil, ends_at: nil, is_multi_phone_sync_credential: nil, starts_at: nil, visionline_metadata: nil)
18
- res = @client.post("/acs/credentials/create", {access_method: access_method, acs_user_id: acs_user_id, allowed_acs_entrance_ids: allowed_acs_entrance_ids, assa_abloy_vostio_metadata: assa_abloy_vostio_metadata, code: code, credential_manager_acs_system_id: credential_manager_acs_system_id, ends_at: ends_at, is_multi_phone_sync_credential: is_multi_phone_sync_credential, starts_at: starts_at, visionline_metadata: visionline_metadata}.compact)
17
+ def create(access_method:, acs_user_id:, allowed_acs_entrance_ids: nil, assa_abloy_vostio_metadata: nil, code: nil, credential_manager_acs_system_id: nil, ends_at: nil, is_multi_phone_sync_credential: nil, salto_space_metadata: nil, starts_at: nil, visionline_metadata: nil)
18
+ res = @client.post("/acs/credentials/create", {access_method: access_method, acs_user_id: acs_user_id, allowed_acs_entrance_ids: allowed_acs_entrance_ids, assa_abloy_vostio_metadata: assa_abloy_vostio_metadata, code: code, credential_manager_acs_system_id: credential_manager_acs_system_id, ends_at: ends_at, is_multi_phone_sync_credential: is_multi_phone_sync_credential, salto_space_metadata: salto_space_metadata, starts_at: starts_at, visionline_metadata: visionline_metadata}.compact)
19
+
20
+ Seam::Resources::AcsCredential.load_from_response(res.body["acs_credential"])
21
+ end
22
+
23
+ def create_offline_code(acs_user_id:, allowed_acs_entrance_id:, ends_at: nil, is_one_time_use: nil, starts_at: nil)
24
+ res = @client.post("/acs/credentials/create_offline_code", {acs_user_id: acs_user_id, allowed_acs_entrance_id: allowed_acs_entrance_id, ends_at: ends_at, is_one_time_use: is_one_time_use, starts_at: starts_at}.compact)
19
25
 
20
26
  Seam::Resources::AcsCredential.load_from_response(res.body["acs_credential"])
21
27
  end
@@ -9,15 +9,15 @@ module Seam
9
9
  end
10
10
 
11
11
  def get(acs_credential_id:)
12
- @client.post("/acs/credentials/unmanaged/get", {acs_credential_id: acs_credential_id}.compact)
12
+ res = @client.post("/acs/credentials/unmanaged/get", {acs_credential_id: acs_credential_id}.compact)
13
13
 
14
- nil
14
+ Seam::Resources::UnmanagedAcsCredential.load_from_response(res.body["acs_credential"])
15
15
  end
16
16
 
17
17
  def list(acs_user_id: nil, acs_system_id: nil, user_identity_id: nil)
18
- @client.post("/acs/credentials/unmanaged/list", {acs_user_id: acs_user_id, acs_system_id: acs_system_id, user_identity_id: user_identity_id}.compact)
18
+ res = @client.post("/acs/credentials/unmanaged/list", {acs_user_id: acs_user_id, acs_system_id: acs_system_id, user_identity_id: user_identity_id}.compact)
19
19
 
20
- nil
20
+ Seam::Resources::UnmanagedAcsCredential.load_from_response(res.body["acs_credentials"])
21
21
  end
22
22
  end
23
23
  end
@@ -19,13 +19,13 @@ module Seam
19
19
  end
20
20
 
21
21
  def list(acs_system_id: nil, limit: nil, acs_system_ids: nil, acs_encoder_ids: nil)
22
- @client.post("/acs/encoders/list", {acs_system_id: acs_system_id, limit: limit, acs_system_ids: acs_system_ids, acs_encoder_ids: acs_encoder_ids}.compact)
22
+ res = @client.post("/acs/encoders/list", {acs_system_id: acs_system_id, limit: limit, acs_system_ids: acs_system_ids, acs_encoder_ids: acs_encoder_ids}.compact)
23
23
 
24
- nil
24
+ Seam::Resources::AcsEncoder.load_from_response(res.body["acs_encoders"])
25
25
  end
26
26
 
27
- def scan_credential(acs_encoder_id:, acs_system_id:, wait_for_action_attempt: nil)
28
- res = @client.post("/acs/encoders/scan_credential", {acs_encoder_id: acs_encoder_id, acs_system_id: acs_system_id}.compact)
27
+ def scan_credential(acs_encoder_id:, wait_for_action_attempt: nil)
28
+ res = @client.post("/acs/encoders/scan_credential", {acs_encoder_id: acs_encoder_id}.compact)
29
29
 
30
30
  wait_for_action_attempt = wait_for_action_attempt.nil? ? @defaults.wait_for_action_attempt : wait_for_action_attempt
31
31
 
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class AcsEncodersSimulate
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def next_credential_encode_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id: nil)
12
+ @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)
13
+
14
+ nil
15
+ end
16
+
17
+ def next_credential_encode_will_succeed(acs_encoder_id:, scenario: nil)
18
+ @client.post("/acs/encoders/simulate/next_credential_encode_will_succeed", {acs_encoder_id: acs_encoder_id, scenario: scenario}.compact)
19
+
20
+ nil
21
+ end
22
+
23
+ def next_credential_scan_will_fail(acs_encoder_id:, error_code: nil, acs_credential_id_on_seam: nil)
24
+ @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)
25
+
26
+ nil
27
+ end
28
+
29
+ def next_credential_scan_will_succeed(acs_encoder_id:, acs_credential_id_on_seam: nil, scenario: nil)
30
+ @client.post("/acs/encoders/simulate/next_credential_scan_will_succeed", {acs_encoder_id: acs_encoder_id, acs_credential_id_on_seam: acs_credential_id_on_seam, scenario: scenario}.compact)
31
+
32
+ nil
33
+ end
34
+ end
35
+ end
36
+ end
@@ -14,8 +14,8 @@ module Seam
14
14
  nil
15
15
  end
16
16
 
17
- def create(acs_system_id:, access_schedule: nil, acs_access_group_ids: nil, email: nil, email_address: nil, full_name: nil, phone_number: nil, user_identity_id: nil)
18
- res = @client.post("/acs/users/create", {acs_system_id: acs_system_id, access_schedule: access_schedule, acs_access_group_ids: acs_access_group_ids, email: email, email_address: email_address, full_name: full_name, phone_number: phone_number, user_identity_id: user_identity_id}.compact)
17
+ def create(acs_system_id:, full_name:, access_schedule: nil, acs_access_group_ids: nil, email: nil, email_address: nil, phone_number: nil, user_identity_id: nil)
18
+ res = @client.post("/acs/users/create", {acs_system_id: acs_system_id, full_name: full_name, access_schedule: access_schedule, acs_access_group_ids: acs_access_group_ids, email: email, email_address: email_address, phone_number: phone_number, user_identity_id: user_identity_id}.compact)
19
19
 
20
20
  Seam::Resources::AcsUser.load_from_response(res.body["acs_user"])
21
21
  end
@@ -9,15 +9,15 @@ module Seam
9
9
  end
10
10
 
11
11
  def get(acs_user_id:)
12
- @client.post("/acs/users/unmanaged/get", {acs_user_id: acs_user_id}.compact)
12
+ res = @client.post("/acs/users/unmanaged/get", {acs_user_id: acs_user_id}.compact)
13
13
 
14
- nil
14
+ Seam::Resources::UnmanagedAcsUser.load_from_response(res.body["acs_user"])
15
15
  end
16
16
 
17
17
  def list(acs_system_id: nil, limit: nil, user_identity_email_address: nil, user_identity_id: nil, user_identity_phone_number: nil)
18
- @client.post("/acs/users/unmanaged/list", {acs_system_id: acs_system_id, limit: limit, user_identity_email_address: user_identity_email_address, user_identity_id: user_identity_id, user_identity_phone_number: user_identity_phone_number}.compact)
18
+ res = @client.post("/acs/users/unmanaged/list", {acs_system_id: acs_system_id, limit: limit, user_identity_email_address: user_identity_email_address, user_identity_id: user_identity_id, user_identity_phone_number: user_identity_phone_number}.compact)
19
19
 
20
- nil
20
+ Seam::Resources::UnmanagedAcsUser.load_from_response(res.body["acs_users"])
21
21
  end
22
22
  end
23
23
  end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class Bridges
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def get(bridge_id:)
12
+ @client.post("/bridges/get", {bridge_id: bridge_id}.compact)
13
+
14
+ nil
15
+ end
16
+
17
+ def list
18
+ @client.post("/bridges/list")
19
+
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
@@ -11,11 +11,13 @@ require_relative "acs_credential_provisioning_automations"
11
11
  require_relative "acs_credentials"
12
12
  require_relative "acs_credentials_unmanaged"
13
13
  require_relative "acs_encoders"
14
+ require_relative "acs_encoders_simulate"
14
15
  require_relative "acs_entrances"
15
16
  require_relative "acs_systems"
16
17
  require_relative "acs_users"
17
18
  require_relative "acs_users_unmanaged"
18
19
  require_relative "action_attempts"
20
+ require_relative "bridges"
19
21
  require_relative "client_sessions"
20
22
  require_relative "connect_webviews"
21
23
  require_relative "connected_accounts"
@@ -32,6 +34,7 @@ require_relative "phones"
32
34
  require_relative "phones_simulate"
33
35
  require_relative "thermostats"
34
36
  require_relative "thermostats_schedules"
37
+ require_relative "thermostats_simulate"
35
38
  require_relative "user_identities"
36
39
  require_relative "user_identities_enrollment_automations"
37
40
  require_relative "webhooks"
@@ -18,6 +18,12 @@ module Seam
18
18
  nil
19
19
  end
20
20
 
21
+ def get(device_id:)
22
+ res = @client.post("/phones/get", {device_id: device_id}.compact)
23
+
24
+ Seam::Resources::Phone.load_from_response(res.body["phone"])
25
+ end
26
+
21
27
  def list(acs_credential_id: nil, owner_user_identity_id: nil)
22
28
  res = @client.post("/phones/list", {acs_credential_id: acs_credential_id, owner_user_identity_id: owner_user_identity_id}.compact)
23
29
 
@@ -14,6 +14,10 @@ module Seam
14
14
  @schedules ||= Seam::Clients::ThermostatsSchedules.new(client: @client, defaults: @defaults)
15
15
  end
16
16
 
17
+ def simulate
18
+ @simulate ||= Seam::Clients::ThermostatsSimulate.new(client: @client, defaults: @defaults)
19
+ end
20
+
17
21
  def activate_climate_preset(climate_preset_key:, device_id:, wait_for_action_attempt: nil)
18
22
  res = @client.post("/thermostats/activate_climate_preset", {climate_preset_key: climate_preset_key, device_id: device_id}.compact)
19
23
 
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Clients
5
+ class ThermostatsSimulate
6
+ def initialize(client:, defaults:)
7
+ @client = client
8
+ @defaults = defaults
9
+ end
10
+
11
+ def hvac_mode_adjusted(device_id:, hvac_mode:, cooling_set_point_celsius: nil, cooling_set_point_fahrenheit: nil, heating_set_point_celsius: nil, heating_set_point_fahrenheit: nil)
12
+ @client.post("/thermostats/simulate/hvac_mode_adjusted", {device_id: device_id, hvac_mode: hvac_mode, cooling_set_point_celsius: cooling_set_point_celsius, cooling_set_point_fahrenheit: cooling_set_point_fahrenheit, heating_set_point_celsius: heating_set_point_celsius, heating_set_point_fahrenheit: heating_set_point_fahrenheit}.compact)
13
+
14
+ nil
15
+ end
16
+
17
+ def temperature_reached(device_id:, temperature_celsius: nil, temperature_fahrenheit: nil)
18
+ @client.post("/thermostats/simulate/temperature_reached", {device_id: device_id, temperature_celsius: temperature_celsius, temperature_fahrenheit: temperature_fahrenheit}.compact)
19
+
20
+ nil
21
+ end
22
+ end
23
+ end
24
+ end
@@ -6,6 +6,8 @@ module Seam
6
6
  attr_accessor :access_group_type, :access_group_type_display_name, :acs_access_group_id, :acs_system_id, :display_name, :external_type, :external_type_display_name, :is_managed, :name, :workspace_id
7
7
 
8
8
  date_accessor :created_at
9
+
10
+ include Seam::Resources::ResourceWarningsSupport
9
11
  end
10
12
  end
11
13
  end
@@ -3,7 +3,7 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class AcsCredential < BaseResource
6
- attr_accessor :access_method, :acs_credential_id, :acs_credential_pool_id, :acs_system_id, :acs_user_id, :card_number, :code, :display_name, :ends_at, :external_type, :external_type_display_name, :is_issued, :is_latest_desired_state_synced_with_provider, :is_managed, :is_multi_phone_sync_credential, :parent_acs_credential_id, :starts_at, :visionline_metadata, :workspace_id
6
+ attr_accessor :access_method, :acs_credential_id, :acs_credential_pool_id, :acs_system_id, :acs_user_id, :assa_abloy_vostio_metadata, :card_number, :code, :display_name, :ends_at, :external_type, :external_type_display_name, :is_issued, :is_latest_desired_state_synced_with_provider, :is_managed, :is_multi_phone_sync_credential, :is_one_time_use, :parent_acs_credential_id, :starts_at, :visionline_metadata, :workspace_id
7
7
 
8
8
  date_accessor :created_at, :issued_at, :latest_desired_state_synced_with_provider_at
9
9
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Resources
5
+ class AcsEncoder < BaseResource
6
+ attr_accessor :acs_encoder_id, :acs_system_id, :display_name, :workspace_id
7
+
8
+ date_accessor :created_at
9
+
10
+ include Seam::Resources::ResourceErrorsSupport
11
+ end
12
+ end
13
+ end
@@ -3,7 +3,7 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class AcsEntrance < BaseResource
6
- attr_accessor :acs_entrance_id, :acs_system_id, :assa_abloy_vostio_metadata, :display_name, :dormakaba_community_metadata, :latch_metadata, :salto_ks_metadata, :visionline_metadata
6
+ attr_accessor :acs_entrance_id, :acs_system_id, :assa_abloy_vostio_metadata, :display_name, :dormakaba_community_metadata, :latch_metadata, :salto_ks_metadata, :salto_space_metadata, :visionline_metadata
7
7
 
8
8
  date_accessor :created_at
9
9
 
@@ -3,7 +3,7 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class AcsSystem < BaseResource
6
- attr_accessor :acs_system_id, :can_add_acs_users_to_acs_access_groups, :can_automate_enrollment, :can_create_acs_access_groups, :can_remove_acs_users_from_acs_access_groups, :connected_account_ids, :default_credential_manager_acs_system_id, :external_type, :external_type_display_name, :image_alt_text, :image_url, :is_credential_manager, :location, :name, :system_type, :system_type_display_name, :visionline_metadata, :workspace_id
6
+ attr_accessor :acs_system_id, :can_add_acs_users_to_acs_access_groups, :can_automate_enrollment, :can_create_acs_access_groups, :can_remove_acs_users_from_acs_access_groups, :connected_account_id, :connected_account_ids, :default_credential_manager_acs_system_id, :external_type, :external_type_display_name, :image_alt_text, :image_url, :is_credential_manager, :location, :name, :system_type, :system_type_display_name, :visionline_metadata, :workspace_id
7
7
 
8
8
  date_accessor :created_at
9
9
 
@@ -5,7 +5,7 @@ module Seam
5
5
  class ClientSession < BaseResource
6
6
  attr_accessor :client_session_id, :connect_webview_ids, :connected_account_ids, :device_count, :token, :user_identifier_key, :user_identity_ids, :workspace_id
7
7
 
8
- date_accessor :created_at
8
+ date_accessor :created_at, :expires_at
9
9
  end
10
10
  end
11
11
  end
@@ -3,7 +3,7 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class SeamEvent < BaseResource
6
- attr_accessor :acs_credential_id, :acs_system_id, :acs_user_id, :action_attempt_id, :client_session_id, :climate_preset_key, :cooling_set_point_celsius, :cooling_set_point_fahrenheit, :device_id, :enrollment_automation_id, :event_description, :event_id, :event_type, :fan_mode_setting, :heating_set_point_celsius, :heating_set_point_fahrenheit, :hvac_mode_setting, :is_fallback_climate_preset, :method, :thermostat_schedule_id, :workspace_id
6
+ attr_accessor :access_code_id, :connected_account_id, :device_id, :event_id, :event_type, :workspace_id, :code, :backup_access_code_id, :acs_system_id, :acs_credential_id, :acs_user_id, :acs_encoder_id, :acs_access_group_id, :client_session_id, :connect_webview_id, :action_attempt_id, :action_type, :status, :error_code, :battery_level, :battery_status, :minut_metadata, :noise_level_decibels, :noise_level_nrs, :noise_threshold_id, :noise_threshold_name, :noiseaware_metadata, :method, :climate_preset_key, :is_fallback_climate_preset, :thermostat_schedule_id, :cooling_set_point_celsius, :cooling_set_point_fahrenheit, :fan_mode_setting, :heating_set_point_celsius, :heating_set_point_fahrenheit, :hvac_mode_setting, :lower_limit_celsius, :lower_limit_fahrenheit, :temperature_celsius, :temperature_fahrenheit, :upper_limit_celsius, :upper_limit_fahrenheit, :desired_temperature_celsius, :desired_temperature_fahrenheit, :enrollment_automation_id
7
7
 
8
8
  date_accessor :created_at, :occurred_at
9
9
  end
@@ -10,6 +10,7 @@ require_relative "acs_access_group"
10
10
  require_relative "acs_credential"
11
11
  require_relative "acs_credential_pool"
12
12
  require_relative "acs_credential_provisioning_automation"
13
+ require_relative "acs_encoder"
13
14
  require_relative "acs_entrance"
14
15
  require_relative "acs_system"
15
16
  require_relative "acs_user"
@@ -24,9 +25,11 @@ require_relative "event"
24
25
  require_relative "network"
25
26
  require_relative "noise_threshold"
26
27
  require_relative "phone"
27
- require_relative "service_health"
28
28
  require_relative "thermostat_schedule"
29
29
  require_relative "unmanaged_access_code"
30
+ require_relative "unmanaged_acs_access_group"
31
+ require_relative "unmanaged_acs_credential"
32
+ require_relative "unmanaged_acs_user"
30
33
  require_relative "unmanaged_device"
31
34
  require_relative "user_identity"
32
35
  require_relative "webhook"
@@ -3,7 +3,7 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class Phone < BaseResource
6
- attr_accessor :can_hvac_cool, :can_hvac_heat, :can_hvac_heat_cool, :can_program_offline_access_codes, :can_program_online_access_codes, :can_remotely_lock, :can_remotely_unlock, :can_simulate_connection, :can_simulate_disconnection, :can_simulate_removal, :can_turn_off_hvac, :capabilities_supported, :custom_metadata, :device_id, :device_type, :display_name, :is_managed, :location, :nickname, :properties, :workspace_id
6
+ attr_accessor :custom_metadata, :device_id, :device_type, :display_name, :nickname, :properties, :workspace_id
7
7
 
8
8
  date_accessor :created_at
9
9
 
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Resources
5
+ class UnmanagedAcsAccessGroup < BaseResource
6
+ attr_accessor :access_group_type, :access_group_type_display_name, :acs_access_group_id, :acs_system_id, :display_name, :external_type, :external_type_display_name, :is_managed, :name, :workspace_id
7
+
8
+ date_accessor :created_at
9
+
10
+ include Seam::Resources::ResourceWarningsSupport
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Resources
5
+ class UnmanagedAcsCredential < BaseResource
6
+ attr_accessor :access_method, :acs_credential_id, :acs_credential_pool_id, :acs_system_id, :acs_user_id, :assa_abloy_vostio_metadata, :card_number, :code, :display_name, :ends_at, :external_type, :external_type_display_name, :is_issued, :is_latest_desired_state_synced_with_provider, :is_managed, :is_multi_phone_sync_credential, :is_one_time_use, :parent_acs_credential_id, :starts_at, :visionline_metadata, :workspace_id
7
+
8
+ date_accessor :created_at, :issued_at, :latest_desired_state_synced_with_provider_at
9
+
10
+ include Seam::Resources::ResourceErrorsSupport
11
+ include Seam::Resources::ResourceWarningsSupport
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Seam
4
+ module Resources
5
+ class UnmanagedAcsUser < BaseResource
6
+ attr_accessor :access_schedule, :acs_system_id, :acs_user_id, :display_name, :email, :email_address, :external_type, :external_type_display_name, :full_name, :hid_acs_system_id, :is_latest_desired_state_synced_with_provider, :is_managed, :is_suspended, :phone_number, :user_identity_email_address, :user_identity_full_name, :user_identity_id, :user_identity_phone_number, :workspace_id
7
+
8
+ date_accessor :created_at, :latest_desired_state_synced_with_provider_at
9
+
10
+ include Seam::Resources::ResourceErrorsSupport
11
+ include Seam::Resources::ResourceWarningsSupport
12
+ end
13
+ end
14
+ end
@@ -14,6 +14,10 @@ module Seam
14
14
  @action_attempts ||= Seam::Clients::ActionAttempts.new(client: @client, defaults: @defaults)
15
15
  end
16
16
 
17
+ def bridges
18
+ @bridges ||= Seam::Clients::Bridges.new(client: @client, defaults: @defaults)
19
+ end
20
+
17
21
  def client_sessions
18
22
  @client_sessions ||= Seam::Clients::ClientSessions.new(client: @client, defaults: @defaults)
19
23
  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.3.2"
4
+ VERSION = "2.4.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.3.2
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seam Labs, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-16 00:00:00.000000000 Z
11
+ date: 2025-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -213,11 +213,13 @@ files:
213
213
  - lib/seam/routes/clients/acs_credentials.rb
214
214
  - lib/seam/routes/clients/acs_credentials_unmanaged.rb
215
215
  - lib/seam/routes/clients/acs_encoders.rb
216
+ - lib/seam/routes/clients/acs_encoders_simulate.rb
216
217
  - lib/seam/routes/clients/acs_entrances.rb
217
218
  - lib/seam/routes/clients/acs_systems.rb
218
219
  - lib/seam/routes/clients/acs_users.rb
219
220
  - lib/seam/routes/clients/acs_users_unmanaged.rb
220
221
  - lib/seam/routes/clients/action_attempts.rb
222
+ - lib/seam/routes/clients/bridges.rb
221
223
  - lib/seam/routes/clients/client_sessions.rb
222
224
  - lib/seam/routes/clients/connect_webviews.rb
223
225
  - lib/seam/routes/clients/connected_accounts.rb
@@ -235,6 +237,7 @@ files:
235
237
  - lib/seam/routes/clients/phones_simulate.rb
236
238
  - lib/seam/routes/clients/thermostats.rb
237
239
  - lib/seam/routes/clients/thermostats_schedules.rb
240
+ - lib/seam/routes/clients/thermostats_simulate.rb
238
241
  - lib/seam/routes/clients/user_identities.rb
239
242
  - lib/seam/routes/clients/user_identities_enrollment_automations.rb
240
243
  - lib/seam/routes/clients/webhooks.rb
@@ -244,6 +247,7 @@ files:
244
247
  - lib/seam/routes/resources/acs_credential.rb
245
248
  - lib/seam/routes/resources/acs_credential_pool.rb
246
249
  - lib/seam/routes/resources/acs_credential_provisioning_automation.rb
250
+ - lib/seam/routes/resources/acs_encoder.rb
247
251
  - lib/seam/routes/resources/acs_entrance.rb
248
252
  - lib/seam/routes/resources/acs_system.rb
249
253
  - lib/seam/routes/resources/acs_user.rb
@@ -263,9 +267,11 @@ files:
263
267
  - lib/seam/routes/resources/resource_errors_support.rb
264
268
  - lib/seam/routes/resources/resource_warning.rb
265
269
  - lib/seam/routes/resources/resource_warnings_support.rb
266
- - lib/seam/routes/resources/service_health.rb
267
270
  - lib/seam/routes/resources/thermostat_schedule.rb
268
271
  - lib/seam/routes/resources/unmanaged_access_code.rb
272
+ - lib/seam/routes/resources/unmanaged_acs_access_group.rb
273
+ - lib/seam/routes/resources/unmanaged_acs_credential.rb
274
+ - lib/seam/routes/resources/unmanaged_acs_user.rb
269
275
  - lib/seam/routes/resources/unmanaged_device.rb
270
276
  - lib/seam/routes/resources/user_identity.rb
271
277
  - lib/seam/routes/resources/webhook.rb
@@ -284,7 +290,7 @@ metadata:
284
290
  bug_tracker_uri: https://github.com/seamapi/ruby-next/issues
285
291
  changelog_uri: https://github.com/seamapi/ruby-next/blob/main/CHANGELOG.md
286
292
  github_repo: git@github.com:seamapi/ruby-next.git
287
- post_install_message:
293
+ post_install_message:
288
294
  rdoc_options: []
289
295
  require_paths:
290
296
  - lib
@@ -300,7 +306,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
300
306
  version: '0'
301
307
  requirements: []
302
308
  rubygems_version: 3.5.3
303
- signing_key:
309
+ signing_key:
304
310
  specification_version: 4
305
311
  summary: Seam Ruby SDK
306
312
  test_files: []
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Seam
4
- module Resources
5
- class ServiceHealth < BaseResource
6
- attr_accessor :description, :service, :status
7
- end
8
- end
9
- end