seam 2.132.0 → 2.133.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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/seam/resources/access_code.rb +55 -2
  4. data/lib/seam/resources/access_grant.rb +39 -2
  5. data/lib/seam/resources/access_method.rb +34 -2
  6. data/lib/seam/resources/acs_access_group.rb +32 -1
  7. data/lib/seam/resources/acs_credential.rb +61 -2
  8. data/lib/seam/resources/acs_encoder.rb +25 -1
  9. data/lib/seam/resources/acs_entrance.rb +48 -1
  10. data/lib/seam/resources/acs_system.rb +41 -1
  11. data/lib/seam/resources/acs_user.rb +50 -1
  12. data/lib/seam/resources/action_attempt.rb +10 -1
  13. data/lib/seam/resources/batch.rb +126 -1
  14. data/lib/seam/resources/client_session.rb +35 -2
  15. data/lib/seam/resources/connect_webview.rb +50 -2
  16. data/lib/seam/resources/connected_account.rb +33 -1
  17. data/lib/seam/resources/customer_portal.rb +16 -2
  18. data/lib/seam/resources/device.rb +70 -1
  19. data/lib/seam/resources/device_provider.rb +48 -1
  20. data/lib/seam/resources/event.rb +184 -2
  21. data/lib/seam/resources/instant_key.rb +22 -2
  22. data/lib/seam/resources/noise_threshold.rb +15 -1
  23. data/lib/seam/resources/pagination.rb +7 -1
  24. data/lib/seam/resources/phone.rb +16 -1
  25. data/lib/seam/resources/space.rb +22 -1
  26. data/lib/seam/resources/thermostat_daily_program.rb +12 -1
  27. data/lib/seam/resources/thermostat_schedule.rb +23 -2
  28. data/lib/seam/resources/unmanaged_access_code.rb +41 -2
  29. data/lib/seam/resources/unmanaged_access_grant.rb +31 -2
  30. data/lib/seam/resources/unmanaged_access_method.rb +28 -2
  31. data/lib/seam/resources/unmanaged_device.rb +60 -1
  32. data/lib/seam/resources/unmanaged_user_identity.rb +16 -1
  33. data/lib/seam/resources/user_identity.rb +18 -1
  34. data/lib/seam/resources/webhook.rb +9 -1
  35. data/lib/seam/resources/workspace.rb +20 -1
  36. data/lib/seam/routes/access_codes.rb +147 -0
  37. data/lib/seam/routes/access_codes_simulate.rb +5 -0
  38. data/lib/seam/routes/access_codes_unmanaged.rb +34 -0
  39. data/lib/seam/routes/access_grants.rb +59 -0
  40. data/lib/seam/routes/access_grants_unmanaged.rb +20 -0
  41. data/lib/seam/routes/access_methods.rb +35 -0
  42. data/lib/seam/routes/access_methods_unmanaged.rb +9 -0
  43. data/lib/seam/routes/acs_access_groups.rb +28 -0
  44. data/lib/seam/routes/acs_credentials.rb +49 -0
  45. data/lib/seam/routes/acs_encoders.rb +25 -0
  46. data/lib/seam/routes/acs_encoders_simulate.rb +19 -0
  47. data/lib/seam/routes/acs_entrances.rb +30 -0
  48. data/lib/seam/routes/acs_systems.rb +20 -0
  49. data/lib/seam/routes/acs_users.rb +72 -0
  50. data/lib/seam/routes/action_attempts.rb +9 -0
  51. data/lib/seam/routes/client_sessions.rb +48 -0
  52. data/lib/seam/routes/connect_webviews.rb +36 -0
  53. data/lib/seam/routes/connected_accounts.rb +31 -0
  54. data/lib/seam/routes/connected_accounts_simulate.rb +3 -0
  55. data/lib/seam/routes/customers.rb +57 -0
  56. data/lib/seam/routes/devices.rb +45 -0
  57. data/lib/seam/routes/devices_simulate.rb +28 -0
  58. data/lib/seam/routes/devices_unmanaged.rb +36 -0
  59. data/lib/seam/routes/events.rb +35 -0
  60. data/lib/seam/routes/instant_keys.rb +10 -0
  61. data/lib/seam/routes/locks.rb +35 -0
  62. data/lib/seam/routes/locks_simulate.rb +7 -0
  63. data/lib/seam/routes/noise_sensors.rb +19 -0
  64. data/lib/seam/routes/noise_sensors_noise_thresholds.rb +27 -0
  65. data/lib/seam/routes/noise_sensors_simulate.rb +3 -0
  66. data/lib/seam/routes/phones.rb +10 -0
  67. data/lib/seam/routes/phones_simulate.rb +6 -0
  68. data/lib/seam/routes/spaces.rb +61 -0
  69. data/lib/seam/routes/thermostats.rb +112 -0
  70. data/lib/seam/routes/thermostats_daily_programs.rb +13 -0
  71. data/lib/seam/routes/thermostats_schedules.rb +28 -0
  72. data/lib/seam/routes/thermostats_simulate.rb +13 -0
  73. data/lib/seam/routes/user_identities.rb +67 -0
  74. data/lib/seam/routes/user_identities_unmanaged.rb +16 -0
  75. data/lib/seam/routes/webhooks.rb +16 -0
  76. data/lib/seam/routes/workspaces.rb +31 -0
  77. data/lib/seam/version.rb +1 -1
  78. metadata +2 -2
@@ -8,30 +8,58 @@ module Seam
8
8
  @defaults = defaults
9
9
  end
10
10
 
11
+ # Creates a new [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).
12
+ # @param climate_preset_key Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the new thermostat schedule.
13
+ # @param device_id ID of the thermostat device for which you want to create a schedule.
14
+ # @param ends_at Date and time at which the new thermostat schedule ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
15
+ # @param starts_at Date and time at which the new thermostat schedule starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
16
+ # @param is_override_allowed Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the new schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
17
+ # @param max_override_period_minutes Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
18
+ # @param name Name of the thermostat schedule.
19
+ # @return [Seam::Resources::ThermostatSchedule] OK
11
20
  def create(climate_preset_key:, device_id:, ends_at:, starts_at:, is_override_allowed: nil, max_override_period_minutes: nil, name: nil)
12
21
  res = @client.post("/thermostats/schedules/create", {climate_preset_key: climate_preset_key, device_id: device_id, ends_at: ends_at, starts_at: starts_at, is_override_allowed: is_override_allowed, max_override_period_minutes: max_override_period_minutes, name: name}.compact)
13
22
 
14
23
  Seam::Resources::ThermostatSchedule.load_from_response(res.body["thermostat_schedule"])
15
24
  end
16
25
 
26
+ # Deletes a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).
27
+ # @param thermostat_schedule_id ID of the thermostat schedule that you want to delete.
28
+ # @return [nil] OK
17
29
  def delete(thermostat_schedule_id:)
18
30
  @client.post("/thermostats/schedules/delete", {thermostat_schedule_id: thermostat_schedule_id}.compact)
19
31
 
20
32
  nil
21
33
  end
22
34
 
35
+ # Returns a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
36
+ # @param thermostat_schedule_id ID of the thermostat schedule that you want to get.
37
+ # @return [Seam::Resources::ThermostatSchedule] OK
23
38
  def get(thermostat_schedule_id:)
24
39
  res = @client.post("/thermostats/schedules/get", {thermostat_schedule_id: thermostat_schedule_id}.compact)
25
40
 
26
41
  Seam::Resources::ThermostatSchedule.load_from_response(res.body["thermostat_schedule"])
27
42
  end
28
43
 
44
+ # Returns a list of all [thermostat schedules](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) for a specified [thermostat](https://docs.seam.co/capability-guides/thermostats).
45
+ # @param device_id ID of the thermostat device for which you want to list schedules.
46
+ # @param user_identifier_key User identifier key by which to filter the list of returned thermostat schedules.
47
+ # @return [Seam::Resources::ThermostatSchedule] OK
29
48
  def list(device_id:, user_identifier_key: nil)
30
49
  res = @client.post("/thermostats/schedules/list", {device_id: device_id, user_identifier_key: user_identifier_key}.compact)
31
50
 
32
51
  Seam::Resources::ThermostatSchedule.load_from_response(res.body["thermostat_schedules"])
33
52
  end
34
53
 
54
+ # Updates a specified [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
55
+ # @param thermostat_schedule_id ID of the thermostat schedule that you want to update.
56
+ # @param climate_preset_key Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the thermostat schedule.
57
+ # @param ends_at Date and time at which the thermostat schedule ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
58
+ # @param is_override_allowed Indicates whether a person at the thermostat or using the API can change the thermostat's settings while the schedule is active. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
59
+ # @param max_override_period_minutes Number of minutes for which a person at the thermostat or using the API can change the thermostat's settings after the activation of the scheduled climate preset. See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
60
+ # @param name Name of the thermostat schedule.
61
+ # @param starts_at Date and time at which the thermostat schedule starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
62
+ # @return [nil] OK
35
63
  def update(thermostat_schedule_id:, climate_preset_key: nil, ends_at: nil, is_override_allowed: nil, max_override_period_minutes: nil, name: nil, starts_at: nil)
36
64
  @client.post("/thermostats/schedules/update", {thermostat_schedule_id: thermostat_schedule_id, climate_preset_key: climate_preset_key, ends_at: ends_at, is_override_allowed: is_override_allowed, max_override_period_minutes: max_override_period_minutes, name: name, starts_at: starts_at}.compact)
37
65
 
@@ -8,12 +8,25 @@ module Seam
8
8
  @defaults = defaults
9
9
  end
10
10
 
11
+ # Simulates having adjusted the [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) for a [thermostat](https://docs.seam.co/capability-guides/thermostats). Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).
12
+ # @param device_id ID of the thermostat device for which you want to simulate having adjusted the HVAC mode.
13
+ # @param hvac_mode HVAC mode that you want to simulate.
14
+ # @param cooling_set_point_celsius Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `cooling_set_point_celsius` or `cooling_set_point_fahrenheit`.
15
+ # @param cooling_set_point_fahrenheit Cooling [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `cooling_set_point_fahrenheit` or `cooling_set_point_celsius`.
16
+ # @param heating_set_point_celsius Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °C that you want to simulate. You must set `heating_set_point_celsius` or `heating_set_point_fahrenheit`.
17
+ # @param heating_set_point_fahrenheit Heating [set point](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points) in °F that you want to simulate. You must set `heating_set_point_fahrenheit` or `heating_set_point_celsius`.
18
+ # @return [nil] OK
11
19
  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
20
  @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
21
 
14
22
  nil
15
23
  end
16
24
 
25
+ # Simulates a [thermostat](https://docs.seam.co/capability-guides/thermostats) reaching a specified temperature. Only applicable for [sandbox devices](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces). See also [Testing Your Thermostat App with Simulate Endpoints](https://docs.seam.co/capability-guides/thermostats/testing-your-thermostat-app-with-simulate-endpoints).
26
+ # @param device_id ID of the thermostat device that you want to simulate reaching a specified temperature.
27
+ # @param temperature_celsius Temperature in °C that you want simulate the thermostat reaching. You must set `temperature_celsius` or `temperature_fahrenheit`.
28
+ # @param temperature_fahrenheit Temperature in °F that you want simulate the thermostat reaching. You must set `temperature_fahrenheit` or `temperature_celsius`.
29
+ # @return [nil] OK
17
30
  def temperature_reached(device_id:, temperature_celsius: nil, temperature_fahrenheit: nil)
18
31
  @client.post("/thermostats/simulate/temperature_reached", {device_id: device_id, temperature_celsius: temperature_celsius, temperature_fahrenheit: temperature_fahrenheit}.compact)
19
32
 
@@ -12,84 +12,151 @@ module Seam
12
12
  @unmanaged ||= Seam::Clients::UserIdentitiesUnmanaged.new(client: @client, defaults: @defaults)
13
13
  end
14
14
 
15
+ # Adds a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
16
+ #
17
+ # You must specify either `user_identity_id` or `user_identity_key` to identify the user identity.
18
+ #
19
+ # If `user_identity_key` is provided, but the user identity doesn't exist, a new user identity will be created automatically using information from the ACS user.
20
+ # @param acs_user_id ID of the access system user that you want to add to the user identity.
21
+ # @param user_identity_id ID of the user identity to which you want to add an access system user.
22
+ # @param user_identity_key Key of the user identity to which you want to add an access system user.
23
+ # @return [nil] OK
15
24
  def add_acs_user(acs_user_id:, user_identity_id: nil, user_identity_key: nil)
16
25
  @client.post("/user_identities/add_acs_user", {acs_user_id: acs_user_id, user_identity_id: user_identity_id, user_identity_key: user_identity_key}.compact)
17
26
 
18
27
  nil
19
28
  end
20
29
 
30
+ # Creates a new [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
31
+ # @param acs_system_ids List of access system IDs to associate with the new user identity through access system users. If there's no user with the same email address or phone number in the specified access systems, a new access system user is created. If there is an existing user with the same email or phone number in the specified access systems, the user is linked to the user identity.
32
+ # @param email_address Unique email address for the new user identity.
33
+ # @param full_name Full name of the user associated with the new user identity.
34
+ # @param phone_number Unique phone number for the new user identity in E.164 format (for example, +15555550100).
35
+ # @param user_identity_key Unique key for the new user identity.
36
+ # @return [Seam::Resources::UserIdentity] OK
21
37
  def create(acs_system_ids: nil, email_address: nil, full_name: nil, phone_number: nil, user_identity_key: nil)
22
38
  res = @client.post("/user_identities/create", {acs_system_ids: acs_system_ids, email_address: email_address, full_name: full_name, phone_number: phone_number, user_identity_key: user_identity_key}.compact)
23
39
 
24
40
  Seam::Resources::UserIdentity.load_from_response(res.body["user_identity"])
25
41
  end
26
42
 
43
+ # Deletes a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This deletes the user identity and all associated resources, including any [credentials](https://docs.seam.co/api/acs/credentials), [acs users](https://docs.seam.co/api/acs/users) and [client sessions](https://docs.seam.co/api/client_sessions).
44
+ # @param user_identity_id ID of the user identity that you want to delete.
45
+ # @return [nil] OK
27
46
  def delete(user_identity_id:)
28
47
  @client.post("/user_identities/delete", {user_identity_id: user_identity_id}.compact)
29
48
 
30
49
  nil
31
50
  end
32
51
 
52
+ # Generates a new [instant key](https://docs.seam.co/capability-guides/instant-keys) for a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
53
+ # @param user_identity_id ID of the user identity for which you want to generate an instant key.
54
+ # @param customization_profile_id
55
+ # @param max_use_count Maximum number of times the instant key can be used. Default: 1.
56
+ # @return [Seam::Resources::InstantKey] OK
33
57
  def generate_instant_key(user_identity_id:, customization_profile_id: nil, max_use_count: nil)
34
58
  res = @client.post("/user_identities/generate_instant_key", {user_identity_id: user_identity_id, customization_profile_id: customization_profile_id, max_use_count: max_use_count}.compact)
35
59
 
36
60
  Seam::Resources::InstantKey.load_from_response(res.body["instant_key"])
37
61
  end
38
62
 
63
+ # Returns a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
64
+ # @param user_identity_id ID of the user identity that you want to get.
65
+ # @param user_identity_key
66
+ # @return [Seam::Resources::UserIdentity] OK
39
67
  def get(user_identity_id: nil, user_identity_key: nil)
40
68
  res = @client.post("/user_identities/get", {user_identity_id: user_identity_id, user_identity_key: user_identity_key}.compact)
41
69
 
42
70
  Seam::Resources::UserIdentity.load_from_response(res.body["user_identity"])
43
71
  end
44
72
 
73
+ # Grants a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) access to a specified [device](https://docs.seam.co/core-concepts/devices/).
74
+ # @param device_id ID of the managed device to which you want to grant access to the user identity.
75
+ # @param user_identity_id ID of the user identity that you want to grant access to a device.
76
+ # @return [nil] OK
45
77
  def grant_access_to_device(device_id:, user_identity_id:)
46
78
  @client.post("/user_identities/grant_access_to_device", {device_id: device_id, user_identity_id: user_identity_id}.compact)
47
79
 
48
80
  nil
49
81
  end
50
82
 
83
+ # Returns a list of all [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
84
+ # @param created_before Timestamp by which to limit returned user identities. Returns user identities created before this timestamp.
85
+ # @param credential_manager_acs_system_id `acs_system_id` of the credential manager by which you want to filter the list of user identities.
86
+ # @param limit Maximum number of records to return per page.
87
+ # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
88
+ # @param search String for which to search. Filters returned user identities to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address` or `user_identity_id`.
89
+ # @param user_identity_ids Array of user identity IDs by which to filter the list of user identities.
90
+ # @return [Seam::Resources::UserIdentity] OK
51
91
  def list(created_before: nil, credential_manager_acs_system_id: nil, limit: nil, page_cursor: nil, search: nil, user_identity_ids: nil)
52
92
  res = @client.post("/user_identities/list", {created_before: created_before, credential_manager_acs_system_id: credential_manager_acs_system_id, limit: limit, page_cursor: page_cursor, search: search, user_identity_ids: user_identity_ids}.compact)
53
93
 
54
94
  Seam::Resources::UserIdentity.load_from_response(res.body["user_identities"])
55
95
  end
56
96
 
97
+ # Returns a list of all [devices](https://docs.seam.co/core-concepts/devices) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes devices derived from the access grants assigned to the user identity and devices directly linked to the user identity.
98
+ # @param user_identity_id ID of the user identity for which you want to retrieve all accessible devices.
99
+ # @return [Seam::Resources::Device] OK
57
100
  def list_accessible_devices(user_identity_id:)
58
101
  res = @client.post("/user_identities/list_accessible_devices", {user_identity_id: user_identity_id}.compact)
59
102
 
60
103
  Seam::Resources::Device.load_from_response(res.body["devices"])
61
104
  end
62
105
 
106
+ # Returns a list of all [ACS entrances](https://docs.seam.co/api/acs/entrances) accessible to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity). This includes entrances derived from the access grants assigned to the user identity and entrances accessible through ACS users linked to the user identity.
107
+ # @param user_identity_id ID of the user identity for which you want to retrieve all accessible entrances.
108
+ # @return [Seam::Resources::AcsEntrance] OK
63
109
  def list_accessible_entrances(user_identity_id:)
64
110
  res = @client.post("/user_identities/list_accessible_entrances", {user_identity_id: user_identity_id}.compact)
65
111
 
66
112
  Seam::Resources::AcsEntrance.load_from_response(res.body["acs_entrances"])
67
113
  end
68
114
 
115
+ # Returns a list of all [access systems](https://docs.seam.co/low-level-apis/access-systems) associated with a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
116
+ # @param user_identity_id ID of the user identity for which you want to retrieve all access systems.
117
+ # @return [Seam::Resources::AcsSystem] OK
69
118
  def list_acs_systems(user_identity_id:)
70
119
  res = @client.post("/user_identities/list_acs_systems", {user_identity_id: user_identity_id}.compact)
71
120
 
72
121
  Seam::Resources::AcsSystem.load_from_response(res.body["acs_systems"])
73
122
  end
74
123
 
124
+ # Returns a list of all [access system users](https://docs.seam.co/low-level-apis/access-systems/user-management) assigned to a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
125
+ # @param user_identity_id ID of the user identity for which you want to retrieve all access system users.
126
+ # @return [Seam::Resources::AcsUser] OK
75
127
  def list_acs_users(user_identity_id:)
76
128
  res = @client.post("/user_identities/list_acs_users", {user_identity_id: user_identity_id}.compact)
77
129
 
78
130
  Seam::Resources::AcsUser.load_from_response(res.body["acs_users"])
79
131
  end
80
132
 
133
+ # Removes a specified [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
134
+ # @param acs_user_id ID of the access system user that you want to remove from the user identity..
135
+ # @param user_identity_id ID of the user identity from which you want to remove an access system user.
136
+ # @return [nil] OK
81
137
  def remove_acs_user(acs_user_id:, user_identity_id:)
82
138
  @client.post("/user_identities/remove_acs_user", {acs_user_id: acs_user_id, user_identity_id: user_identity_id}.compact)
83
139
 
84
140
  nil
85
141
  end
86
142
 
143
+ # Revokes access to a specified [device](https://docs.seam.co/core-concepts/devices/) from a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
144
+ # @param device_id ID of the managed device to which you want to revoke access from the user identity.
145
+ # @param user_identity_id ID of the user identity from which you want to revoke access to a device.
146
+ # @return [nil] OK
87
147
  def revoke_access_to_device(device_id:, user_identity_id:)
88
148
  @client.post("/user_identities/revoke_access_to_device", {device_id: device_id, user_identity_id: user_identity_id}.compact)
89
149
 
90
150
  nil
91
151
  end
92
152
 
153
+ # Updates a specified [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity).
154
+ # @param user_identity_id ID of the user identity that you want to update.
155
+ # @param email_address Unique email address for the user identity.
156
+ # @param full_name Full name of the user associated with the user identity.
157
+ # @param phone_number Unique phone number for the user identity.
158
+ # @param user_identity_key Unique key for the user identity.
159
+ # @return [nil] OK
93
160
  def update(user_identity_id:, email_address: nil, full_name: nil, phone_number: nil, user_identity_key: nil)
94
161
  @client.post("/user_identities/update", {user_identity_id: user_identity_id, email_address: email_address, full_name: full_name, phone_number: phone_number, user_identity_key: user_identity_key}.compact)
95
162
 
@@ -8,18 +8,34 @@ module Seam
8
8
  @defaults = defaults
9
9
  end
10
10
 
11
+ # Returns a specified unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).
12
+ # @param user_identity_id ID of the unmanaged user identity that you want to get.
13
+ # @return [Seam::Resources::UnmanagedUserIdentity] OK
11
14
  def get(user_identity_id:)
12
15
  res = @client.post("/user_identities/unmanaged/get", {user_identity_id: user_identity_id}.compact)
13
16
 
14
17
  Seam::Resources::UnmanagedUserIdentity.load_from_response(res.body["user_identity"])
15
18
  end
16
19
 
20
+ # Returns a list of all unmanaged [user identities](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) (where is_managed = false).
21
+ # @param created_before Timestamp by which to limit returned unmanaged user identities. Returns user identities created before this timestamp.
22
+ # @param limit Maximum number of records to return per page.
23
+ # @param page_cursor Identifies the specific page of results to return, obtained from the previous page's `next_page_cursor`.
24
+ # @param search String for which to search. Filters returned unmanaged user identities to include all records that satisfy a partial match using `full_name`, `phone_number`, `email_address`, `user_identity_id` or `acs_system_id`.
25
+ # @return [Seam::Resources::UnmanagedUserIdentity] OK
17
26
  def list(created_before: nil, limit: nil, page_cursor: nil, search: nil)
18
27
  res = @client.post("/user_identities/unmanaged/list", {created_before: created_before, limit: limit, page_cursor: page_cursor, search: search}.compact)
19
28
 
20
29
  Seam::Resources::UnmanagedUserIdentity.load_from_response(res.body["user_identities"])
21
30
  end
22
31
 
32
+ # Updates an unmanaged [user identity](https://docs.seam.co/capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities#what-is-a-user-identity) to make it managed.
33
+ #
34
+ # This endpoint can only be used to convert unmanaged user identities to managed ones by setting `is_managed` to `true`. It cannot be used to convert managed user identities back to unmanaged.
35
+ # @param is_managed Must be set to true to convert the unmanaged user identity to managed.
36
+ # @param user_identity_id ID of the unmanaged user identity that you want to update.
37
+ # @param user_identity_key Unique key for the user identity. If not provided, the existing key will be preserved.
38
+ # @return [nil] OK
23
39
  def update(is_managed:, user_identity_id:, user_identity_key: nil)
24
40
  @client.post("/user_identities/unmanaged/update", {is_managed: is_managed, user_identity_id: user_identity_id, user_identity_key: user_identity_key}.compact)
25
41
 
@@ -8,30 +8,46 @@ module Seam
8
8
  @defaults = defaults
9
9
  end
10
10
 
11
+ # Creates a new [webhook](https://docs.seam.co/developer-tools/webhooks).
12
+ # @param url URL for the new webhook.
13
+ # @param event_types Types of events that you want the new webhook to receive.
14
+ # @return [Seam::Resources::Webhook] OK
11
15
  def create(url:, event_types: nil)
12
16
  res = @client.post("/webhooks/create", {url: url, event_types: event_types}.compact)
13
17
 
14
18
  Seam::Resources::Webhook.load_from_response(res.body["webhook"])
15
19
  end
16
20
 
21
+ # Deletes a specified [webhook](https://docs.seam.co/developer-tools/webhooks).
22
+ # @param webhook_id ID of the webhook that you want to delete.
23
+ # @return [nil] OK
17
24
  def delete(webhook_id:)
18
25
  @client.post("/webhooks/delete", {webhook_id: webhook_id}.compact)
19
26
 
20
27
  nil
21
28
  end
22
29
 
30
+ # Gets a specified [webhook](https://docs.seam.co/developer-tools/webhooks).
31
+ # @param webhook_id ID of the webhook that you want to get.
32
+ # @return [Seam::Resources::Webhook] OK
23
33
  def get(webhook_id:)
24
34
  res = @client.post("/webhooks/get", {webhook_id: webhook_id}.compact)
25
35
 
26
36
  Seam::Resources::Webhook.load_from_response(res.body["webhook"])
27
37
  end
28
38
 
39
+ # Returns a list of all [webhooks](https://docs.seam.co/developer-tools/webhooks).
40
+ # @return [Seam::Resources::Webhook] OK
29
41
  def list
30
42
  res = @client.post("/webhooks/list")
31
43
 
32
44
  Seam::Resources::Webhook.load_from_response(res.body["webhooks"])
33
45
  end
34
46
 
47
+ # Updates a specified [webhook](https://docs.seam.co/developer-tools/webhooks).
48
+ # @param event_types Types of events that you want the webhook to receive.
49
+ # @param webhook_id ID of the webhook that you want to update.
50
+ # @return [nil] OK
35
51
  def update(event_types:, webhook_id:)
36
52
  @client.post("/webhooks/update", {event_types: event_types, webhook_id: webhook_id}.compact)
37
53
 
@@ -10,24 +10,47 @@ module Seam
10
10
  @defaults = defaults
11
11
  end
12
12
 
13
+ # Creates a new [workspace](https://docs.seam.co/core-concepts/workspaces).
14
+ # @param name Name of the new workspace.
15
+ # @param company_name Company name for the new workspace.
16
+ # @param connect_partner_name Connect partner name for the new workspace.
17
+ # @deprecated connect_partner_name: Use `company_name` instead.
18
+ # @param connect_webview_customization [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
+ # @param is_sandbox Indicates whether the new workspace is a [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces).
20
+ # @param organization_id ID of the organization to associate with the new workspace.
21
+ # @param webview_logo_shape
22
+ # @deprecated webview_logo_shape: Use `connect_webview_customization.webview_logo_shape` instead.
23
+ # @param webview_primary_button_color
24
+ # @deprecated webview_primary_button_color: Use `connect_webview_customization.webview_primary_button_color` instead.
25
+ # @param webview_primary_button_text_color
26
+ # @deprecated webview_primary_button_text_color: Use `connect_webview_customization.webview_primary_button_text_color` instead.
27
+ # @param webview_success_message
28
+ # @deprecated webview_success_message: Use `connect_webview_customization.webview_success_message` instead.
29
+ # @return [Seam::Resources::Workspace] OK
13
30
  def create(name:, company_name: nil, connect_partner_name: nil, connect_webview_customization: nil, is_sandbox: nil, organization_id: nil, webview_logo_shape: nil, webview_primary_button_color: nil, webview_primary_button_text_color: nil, webview_success_message: nil)
14
31
  res = @client.post("/workspaces/create", {name: name, company_name: company_name, connect_partner_name: connect_partner_name, connect_webview_customization: connect_webview_customization, is_sandbox: is_sandbox, organization_id: organization_id, webview_logo_shape: webview_logo_shape, webview_primary_button_color: webview_primary_button_color, webview_primary_button_text_color: webview_primary_button_text_color, webview_success_message: webview_success_message}.compact)
15
32
 
16
33
  Seam::Resources::Workspace.load_from_response(res.body["workspace"])
17
34
  end
18
35
 
36
+ # Returns the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.
37
+ # @return [Seam::Resources::Workspace] OK
19
38
  def get
20
39
  res = @client.post("/workspaces/get")
21
40
 
22
41
  Seam::Resources::Workspace.load_from_response(res.body["workspace"])
23
42
  end
24
43
 
44
+ # Returns a list of [workspaces](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.
45
+ # @return [Seam::Resources::Workspace] OK
25
46
  def list
26
47
  res = @client.post("/workspaces/list")
27
48
 
28
49
  Seam::Resources::Workspace.load_from_response(res.body["workspaces"])
29
50
  end
30
51
 
52
+ # Resets the [sandbox workspace](https://docs.seam.co/core-concepts/workspaces#sandbox-workspaces) associated with the authentication value. Note that this endpoint is only available for sandbox workspaces.
53
+ # @return [Seam::Resources::ActionAttempt] OK
31
54
  def reset_sandbox(wait_for_action_attempt: nil)
32
55
  res = @client.post("/workspaces/reset_sandbox")
33
56
 
@@ -36,6 +59,14 @@ module Seam
36
59
  Helpers::ActionAttempt.decide_and_wait(Seam::Resources::ActionAttempt.load_from_response(res.body["action_attempt"]), @client, wait_for_action_attempt)
37
60
  end
38
61
 
62
+ # Updates the [workspace](https://docs.seam.co/core-concepts/workspaces) associated with the authentication value.
63
+ # @param connect_partner_name Connect partner name for the workspace.
64
+ # @param connect_webview_customization [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews) customizations for the 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).
65
+ # @param is_publishable_key_auth_enabled Indicates whether publishable key authentication is enabled for this workspace.
66
+ # @param is_suspended Indicates whether the workspace is suspended.
67
+ # @param name Name of the workspace.
68
+ # @param organization_id ID of the organization to assign the workspace to. The authenticated user must be the owner of the workspace and an admin of the target organization.
69
+ # @return [nil] OK
39
70
  def update(connect_partner_name: nil, connect_webview_customization: nil, is_publishable_key_auth_enabled: nil, is_suspended: nil, name: nil, organization_id: nil)
40
71
  @client.post("/workspaces/update", {connect_partner_name: connect_partner_name, connect_webview_customization: connect_webview_customization, is_publishable_key_auth_enabled: is_publishable_key_auth_enabled, is_suspended: is_suspended, name: name, organization_id: organization_id}.compact)
41
72
 
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.132.0"
4
+ VERSION = "2.133.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.132.0
4
+ version: 2.133.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: 2026-07-28 00:00:00.000000000 Z
11
+ date: 2026-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday