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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/seam/resources/access_code.rb +55 -2
- data/lib/seam/resources/access_grant.rb +39 -2
- data/lib/seam/resources/access_method.rb +34 -2
- data/lib/seam/resources/acs_access_group.rb +32 -1
- data/lib/seam/resources/acs_credential.rb +61 -2
- data/lib/seam/resources/acs_encoder.rb +25 -1
- data/lib/seam/resources/acs_entrance.rb +48 -1
- data/lib/seam/resources/acs_system.rb +41 -1
- data/lib/seam/resources/acs_user.rb +50 -1
- data/lib/seam/resources/action_attempt.rb +10 -1
- data/lib/seam/resources/batch.rb +126 -1
- data/lib/seam/resources/client_session.rb +35 -2
- data/lib/seam/resources/connect_webview.rb +50 -2
- data/lib/seam/resources/connected_account.rb +33 -1
- data/lib/seam/resources/customer_portal.rb +16 -2
- data/lib/seam/resources/device.rb +70 -1
- data/lib/seam/resources/device_provider.rb +48 -1
- data/lib/seam/resources/event.rb +184 -2
- data/lib/seam/resources/instant_key.rb +22 -2
- data/lib/seam/resources/noise_threshold.rb +15 -1
- data/lib/seam/resources/pagination.rb +7 -1
- data/lib/seam/resources/phone.rb +16 -1
- data/lib/seam/resources/space.rb +22 -1
- data/lib/seam/resources/thermostat_daily_program.rb +12 -1
- data/lib/seam/resources/thermostat_schedule.rb +23 -2
- data/lib/seam/resources/unmanaged_access_code.rb +41 -2
- data/lib/seam/resources/unmanaged_access_grant.rb +31 -2
- data/lib/seam/resources/unmanaged_access_method.rb +28 -2
- data/lib/seam/resources/unmanaged_device.rb +60 -1
- data/lib/seam/resources/unmanaged_user_identity.rb +16 -1
- data/lib/seam/resources/user_identity.rb +18 -1
- data/lib/seam/resources/webhook.rb +9 -1
- data/lib/seam/resources/workspace.rb +20 -1
- data/lib/seam/routes/access_codes.rb +147 -0
- data/lib/seam/routes/access_codes_simulate.rb +5 -0
- data/lib/seam/routes/access_codes_unmanaged.rb +34 -0
- data/lib/seam/routes/access_grants.rb +59 -0
- data/lib/seam/routes/access_grants_unmanaged.rb +20 -0
- data/lib/seam/routes/access_methods.rb +35 -0
- data/lib/seam/routes/access_methods_unmanaged.rb +9 -0
- data/lib/seam/routes/acs_access_groups.rb +28 -0
- data/lib/seam/routes/acs_credentials.rb +49 -0
- data/lib/seam/routes/acs_encoders.rb +25 -0
- data/lib/seam/routes/acs_encoders_simulate.rb +19 -0
- data/lib/seam/routes/acs_entrances.rb +30 -0
- data/lib/seam/routes/acs_systems.rb +20 -0
- data/lib/seam/routes/acs_users.rb +72 -0
- data/lib/seam/routes/action_attempts.rb +9 -0
- data/lib/seam/routes/client_sessions.rb +48 -0
- data/lib/seam/routes/connect_webviews.rb +36 -0
- data/lib/seam/routes/connected_accounts.rb +31 -0
- data/lib/seam/routes/connected_accounts_simulate.rb +3 -0
- data/lib/seam/routes/customers.rb +57 -0
- data/lib/seam/routes/devices.rb +45 -0
- data/lib/seam/routes/devices_simulate.rb +28 -0
- data/lib/seam/routes/devices_unmanaged.rb +36 -0
- data/lib/seam/routes/events.rb +35 -0
- data/lib/seam/routes/instant_keys.rb +10 -0
- data/lib/seam/routes/locks.rb +35 -0
- data/lib/seam/routes/locks_simulate.rb +7 -0
- data/lib/seam/routes/noise_sensors.rb +19 -0
- data/lib/seam/routes/noise_sensors_noise_thresholds.rb +27 -0
- data/lib/seam/routes/noise_sensors_simulate.rb +3 -0
- data/lib/seam/routes/phones.rb +10 -0
- data/lib/seam/routes/phones_simulate.rb +6 -0
- data/lib/seam/routes/spaces.rb +61 -0
- data/lib/seam/routes/thermostats.rb +112 -0
- data/lib/seam/routes/thermostats_daily_programs.rb +13 -0
- data/lib/seam/routes/thermostats_schedules.rb +28 -0
- data/lib/seam/routes/thermostats_simulate.rb +13 -0
- data/lib/seam/routes/user_identities.rb +67 -0
- data/lib/seam/routes/user_identities_unmanaged.rb +16 -0
- data/lib/seam/routes/webhooks.rb +16 -0
- data/lib/seam/routes/workspaces.rb +31 -0
- data/lib/seam/version.rb +1 -1
- 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
|
|
data/lib/seam/routes/webhooks.rb
CHANGED
|
@@ -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
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.
|
|
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-
|
|
11
|
+
date: 2026-07-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|