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
@@ -3,9 +3,191 @@
3
3
  module Seam
4
4
  module Resources
5
5
  class SeamEvent < BaseResource
6
- attr_accessor :access_code_errors, :access_code_id, :access_code_is_managed, :access_code_warnings, :access_grant_id, :access_grant_ids, :access_grant_key, :access_grant_keys, :access_method_id, :acs_access_group_id, :acs_credential_id, :acs_encoder_id, :acs_entrance_id, :acs_entrance_ids, :acs_system_errors, :acs_system_id, :acs_system_warnings, :acs_user_id, :action_attempt_id, :action_type, :activation_reason, :backup_access_code_id, :battery_level, :battery_status, :change_reason, :changed_properties, :client_session_id, :climate_preset_key, :code, :connect_webview_id, :connected_account_custom_metadata, :connected_account_errors, :connected_account_id, :connected_account_type, :connected_account_warnings, :cooling_set_point_celsius, :cooling_set_point_fahrenheit, :customer_key, :description, :desired_temperature_celsius, :desired_temperature_fahrenheit, :device_custom_metadata, :device_errors, :device_id, :device_ids, :device_name, :device_warnings, :ends_at, :error_code, :error_message, :event_description, :event_id, :event_type, :fan_mode_setting, :from, :heating_set_point_celsius, :heating_set_point_fahrenheit, :hvac_mode_setting, :image_url, :is_backup_code, :is_fallback_climate_preset, :is_via_bluetooth, :is_via_nfc, :lower_limit_celsius, :lower_limit_fahrenheit, :method, :minut_metadata, :missing_device_ids, :motion_sub_type, :noise_level_decibels, :noise_level_nrs, :noise_threshold_id, :noise_threshold_name, :noiseaware_metadata, :reason, :requested_mutations, :space_id, :space_key, :starts_at, :status, :temperature_celsius, :temperature_fahrenheit, :thermostat_schedule_id, :to, :upper_limit_celsius, :upper_limit_fahrenheit, :user_identity_id, :video_url, :workspace_id
6
+ # Errors associated with the access code.
7
+ attr_accessor :access_code_errors
8
+ # ID of the affected access code.
9
+ attr_accessor :access_code_id
10
+ # Whether the access code is managed by Seam (true) or unmanaged (false). Only present when access_code_id is set.
11
+ attr_accessor :access_code_is_managed
12
+ # Warnings associated with the access code.
13
+ attr_accessor :access_code_warnings
14
+ # ID of the affected Access Grant.
15
+ attr_accessor :access_grant_id
16
+ # IDs of the access grants associated with this access method.
17
+ attr_accessor :access_grant_ids
18
+ # Key of the affected Access Grant (if present).
19
+ attr_accessor :access_grant_key
20
+ # Keys of the access grants associated with this access method (if present).
21
+ attr_accessor :access_grant_keys
22
+ # ID of the affected access method.
23
+ attr_accessor :access_method_id
24
+ # ID of the affected access group.
25
+ attr_accessor :acs_access_group_id
26
+ # ID of the affected credential.
27
+ attr_accessor :acs_credential_id
28
+ # ID of the affected encoder.
29
+ attr_accessor :acs_encoder_id
30
+ # ID of the affected [entrance](https://docs.seam.co/low-level-apis/access-systems/retrieving-entrance-details).
31
+ attr_accessor :acs_entrance_id
32
+ # IDs of all ACS entrances currently attached to the space.
33
+ attr_accessor :acs_entrance_ids
34
+ # Errors associated with the access control system.
35
+ attr_accessor :acs_system_errors
36
+ # ID of the access system.
37
+ attr_accessor :acs_system_id
38
+ # Warnings associated with the access control system.
39
+ attr_accessor :acs_system_warnings
40
+ # ID of the affected access system user.
41
+ attr_accessor :acs_user_id
42
+ # ID of the affected action attempt.
43
+ attr_accessor :action_attempt_id
44
+ # Type of the action.
45
+ attr_accessor :action_type
46
+ # The reason the camera was activated.
47
+ attr_accessor :activation_reason
48
+ # ID of the backup access code that was pulled from the pool.
49
+ attr_accessor :backup_access_code_id
50
+ # Number in the range 0 to 1.0 indicating the amount of battery in the affected device, as reported by the device.
51
+ attr_accessor :battery_level
52
+ # Battery status of the affected device, calculated from the numeric `battery_level` value.
53
+ attr_accessor :battery_status
54
+ # Human-readable reason for the change (e.g. `ongoing code auto-renewed`).
55
+ attr_accessor :change_reason
56
+ # List of properties that changed on the access code.
57
+ attr_accessor :changed_properties
58
+ # ID of the affected client session.
59
+ attr_accessor :client_session_id
60
+ # Key of the climate preset that was activated.
61
+ attr_accessor :climate_preset_key
62
+ # Code for the affected access code.
63
+ attr_accessor :code
64
+ # ID of the Connect Webview associated with the event.
65
+ attr_accessor :connect_webview_id
66
+ # Custom metadata of the connected account, present when connected_account_id is provided.
67
+ attr_accessor :connected_account_custom_metadata
68
+ # Errors associated with the connected account.
69
+ attr_accessor :connected_account_errors
70
+ # ID of the connected account associated with the affected access code.
71
+ attr_accessor :connected_account_id
72
+ # undocumented: Unreleased.
73
+ attr_accessor :connected_account_type
74
+ # Warnings associated with the connected account.
75
+ attr_accessor :connected_account_warnings
76
+ # Temperature to which the thermostat should cool (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
77
+ attr_accessor :cooling_set_point_celsius
78
+ # Temperature to which the thermostat should cool (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
79
+ attr_accessor :cooling_set_point_fahrenheit
80
+ # The customer key associated with this connected account, if any.
81
+ attr_accessor :customer_key
82
+ # Human-readable description of the change and its source.
83
+ attr_accessor :description
84
+ # Desired temperature, in °C, defined by the affected thermostat's cooling or heating set point.
85
+ attr_accessor :desired_temperature_celsius
86
+ # Desired temperature, in °F, defined by the affected thermostat's cooling or heating set point.
87
+ attr_accessor :desired_temperature_fahrenheit
88
+ # Custom metadata of the device, present when device_id is provided.
89
+ attr_accessor :device_custom_metadata
90
+ # Errors associated with the device.
91
+ attr_accessor :device_errors
92
+ # ID of the device associated with the affected access code.
93
+ attr_accessor :device_id
94
+ # IDs of all devices currently attached to the space.
95
+ attr_accessor :device_ids
96
+ # Name of the deleted device, captured at deletion time. The device record no longer exists when this event fires, so the name is preserved here. Null when the device had no resolvable name.
97
+ attr_accessor :device_name
98
+ # Warnings associated with the device.
99
+ attr_accessor :device_warnings
100
+ # The new end time for the access grant.
101
+ attr_accessor :ends_at
102
+ # Error code associated with the disconnection event, if any.
103
+ attr_accessor :error_code
104
+ # Description of why the access methods could not be created.
105
+ attr_accessor :error_message
106
+ # Human-readable description of the event. Persisted when the event is created (so the creating code, including a provider, can supply a tailored description) and otherwise derived from the event.
107
+ attr_accessor :event_description
108
+ # ID of the event.
109
+ attr_accessor :event_id
110
+ attr_accessor :event_type
111
+ # Desired [fan mode setting](https://docs.seam.co/capability-guides/thermostats/configure-current-climate-settings#fan-mode-settings), such as `on`, `auto`, or `circulate`.
112
+ attr_accessor :fan_mode_setting
113
+ # Previous access code name configuration.
114
+ attr_accessor :from
115
+ # Temperature to which the thermostat should heat (in °C). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
116
+ attr_accessor :heating_set_point_celsius
117
+ # Temperature to which the thermostat should heat (in °F). See also [Set Points](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/set-points).
118
+ attr_accessor :heating_set_point_fahrenheit
119
+ # Desired [HVAC mode](https://docs.seam.co/capability-guides/thermostats/understanding-thermostat-concepts/hvac-mode) setting, such as `heat`, `cool`, `heat_cool`, or `off`.
120
+ attr_accessor :hvac_mode_setting
121
+ # URL to a thumbnail image captured at the time of activation.
122
+ attr_accessor :image_url
123
+ # Indicates whether the code is a backup code (only present when mode is 'code' and a backup code was used).
124
+ attr_accessor :is_backup_code
125
+ # Indicates whether the climate preset that was activated is the fallback climate preset for the thermostat.
126
+ attr_accessor :is_fallback_climate_preset
127
+ # Whether the lock action was performed over Bluetooth by a remote client (such as the provider's mobile app), rather than a direct physical interaction or a Seam-initiated remote action.
128
+ attr_accessor :is_via_bluetooth
129
+ # Whether the lock action was performed by an NFC credential tap (such as an Apple Home Key or an NFC key fob) presented to the lock, rather than a direct physical interaction or a Seam-initiated remote action.
130
+ attr_accessor :is_via_nfc
131
+ # Lower temperature limit, in °C, defined by the set threshold.
132
+ attr_accessor :lower_limit_celsius
133
+ # Lower temperature limit, in °F, defined by the set threshold.
134
+ attr_accessor :lower_limit_fahrenheit
135
+ # Method by which the lock was locked. `keycode`: an access code was used (see `access_code_id`). `manual`: a physical action such as a thumbturn or button press. `remote`: a remote action via an app, Bluetooth, or the Seam API (see `action_attempt_id` if Seam-initiated; see `is_via_bluetooth` or `is_via_nfc` for the transport). `automatic`: triggered automatically, for example by an auto-relock timer. `unknown`: could not be determined.
136
+ attr_accessor :method
137
+ # Metadata from Minut.
138
+ attr_accessor :minut_metadata
139
+ # IDs of the devices that did not receive a requested access method. Use these to identify which specific devices failed without having to fetch the Access Grant.
140
+ attr_accessor :missing_device_ids
141
+ # Sub-type of motion detected, if available.
142
+ attr_accessor :motion_sub_type
143
+ # Detected noise level in decibels.
144
+ attr_accessor :noise_level_decibels
145
+ # Detected noise level in Noiseaware Noise Risk Score (NRS).
146
+ attr_accessor :noise_level_nrs
147
+ # ID of the noise threshold that was triggered.
148
+ attr_accessor :noise_threshold_id
149
+ # Name of the noise threshold that was triggered.
150
+ attr_accessor :noise_threshold_name
151
+ # Metadata from Noiseaware.
152
+ attr_accessor :noiseaware_metadata
153
+ # Why access was denied, when the provider reports a determinable cause. Omitted when unknown.
154
+ attr_accessor :reason
155
+ # Array of mutations requested on the access code, each containing the mutation type and from/to values.
156
+ attr_accessor :requested_mutations
157
+ # ID of the affected space.
158
+ attr_accessor :space_id
159
+ # Unique key for the space within the workspace.
160
+ attr_accessor :space_key
161
+ # The new start time for the access grant.
162
+ attr_accessor :starts_at
163
+ # Status of the action.
164
+ attr_accessor :status
165
+ # Temperature, in °C, reported by the affected thermostat.
166
+ attr_accessor :temperature_celsius
167
+ # Temperature, in °F, reported by the affected thermostat.
168
+ attr_accessor :temperature_fahrenheit
169
+ # ID of the thermostat schedule that prompted the affected climate preset to be activated.
170
+ attr_accessor :thermostat_schedule_id
171
+ # New access code name configuration.
172
+ attr_accessor :to
173
+ # Upper temperature limit, in °C, defined by the set threshold.
174
+ attr_accessor :upper_limit_celsius
175
+ # Upper temperature limit, in °F, defined by the set threshold.
176
+ attr_accessor :upper_limit_fahrenheit
177
+ # undocumented: Unreleased.
178
+ # ---
179
+ # ID of the user identity associated with the lock event.
180
+ attr_accessor :user_identity_id
181
+ # URL to a short video clip captured at the time of activation.
182
+ attr_accessor :video_url
183
+ # ID of the workspace associated with the event.
184
+ attr_accessor :workspace_id
7
185
 
8
- date_accessor :created_at, :occurred_at
186
+ # Date and time at which the event was created.
187
+ date_accessor :created_at
188
+
189
+ # Date and time at which the event occurred.
190
+ date_accessor :occurred_at
9
191
  end
10
192
  end
11
193
  end
@@ -2,10 +2,30 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents a Seam Instant Key. For issuing Bluetooth mobile keys, Instant Keys are the fastest way to share access. With a single API call, you can create a mobile key and send it through text or email or embed it in your own app.
6
+ #
7
+ # There’s no app to install, nor account to create. Your user just taps a link and gets a lightweight, native-feeling experience using iOS App Clip or Instant Apps on Android. Further, Instant Keys work offline, so even in areas with poor cellular or Wi-Fi, like elevator banks or concrete-walled hallways, the Instant Keys still work.
5
8
  class InstantKey < BaseResource
6
- attr_accessor :client_session_id, :customization, :customization_profile_id, :instant_key_id, :instant_key_url, :user_identity_id, :workspace_id
9
+ # ID of the client session associated with the Instant Key.
10
+ attr_accessor :client_session_id
11
+ # Customization applied to the Instant Key UI.
12
+ attr_accessor :customization
13
+ # ID of the customization profile associated with the Instant Key.
14
+ attr_accessor :customization_profile_id
15
+ # ID of the Instant Key.
16
+ attr_accessor :instant_key_id
17
+ # Shareable URL for the Instant Key. Use the URL to deliver the Instant Key to your user through a link in a text message or email or by embedding it in your web app.
18
+ attr_accessor :instant_key_url
19
+ # ID of the user identity associated with the Instant Key.
20
+ attr_accessor :user_identity_id
21
+ # ID of the workspace that contains the Instant Key.
22
+ attr_accessor :workspace_id
7
23
 
8
- date_accessor :created_at, :expires_at
24
+ # Date and time at which the Instant Key was created.
25
+ date_accessor :created_at
26
+
27
+ # Date and time at which the Instant Key expires.
28
+ date_accessor :expires_at
9
29
  end
10
30
  end
11
31
  end
@@ -2,8 +2,22 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents a [noise threshold](https://docs.seam.co/capability-guides/noise-sensors/configure-noise-threshold-settings) for a [noise sensor](https://docs.seam.co/capability-guides/noise-sensors). Thresholds represent the limits of noise tolerated at a property, which can be customized for each hour of the day. Each device has its own default thresholds, but you can use the Seam API to modify them.
5
6
  class NoiseThreshold < BaseResource
6
- attr_accessor :device_id, :ends_daily_at, :name, :noise_threshold_decibels, :noise_threshold_id, :noise_threshold_nrs, :starts_daily_at
7
+ # Unique identifier for the device that contains the noise threshold.
8
+ attr_accessor :device_id
9
+ # Time at which the noise threshold should become inactive daily.
10
+ attr_accessor :ends_daily_at
11
+ # Name of the noise threshold.
12
+ attr_accessor :name
13
+ # Noise level in decibels for the noise threshold.
14
+ attr_accessor :noise_threshold_decibels
15
+ # Unique identifier for the noise threshold.
16
+ attr_accessor :noise_threshold_id
17
+ # Noise level in Noiseaware Noise Risk Score (NRS) for the noise threshold. This parameter is only relevant for [Noiseaware sensors](https://docs.seam.co/device-and-system-integration-guides/noiseaware-sensors).
18
+ attr_accessor :noise_threshold_nrs
19
+ # Time at which the noise threshold should become active daily.
20
+ attr_accessor :starts_daily_at
7
21
  end
8
22
  end
9
23
  end
@@ -2,8 +2,14 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Information about the current page of results.
5
6
  class Pagination < BaseResource
6
- attr_accessor :has_next_page, :next_page_cursor, :next_page_url
7
+ # Indicates whether there is another page of results after this one.
8
+ attr_accessor :has_next_page
9
+ # Opaque value that can be used to select the next page of results via the `page_cursor` parameter.
10
+ attr_accessor :next_page_cursor
11
+ # URL to get the next page of results.
12
+ attr_accessor :next_page_url
7
13
  end
8
14
  end
9
15
  end
@@ -2,9 +2,24 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an app user's mobile phone.
5
6
  class Phone < BaseResource
6
- attr_accessor :custom_metadata, :device_id, :device_type, :display_name, :nickname, :properties, :workspace_id
7
+ # Optional [custom metadata](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device) for the phone.
8
+ attr_accessor :custom_metadata
9
+ # ID of the phone.
10
+ attr_accessor :device_id
11
+ # Type of the phone device, such as `ios_phone` or `android_phone`.
12
+ attr_accessor :device_type
13
+ # Display name of the phone. Defaults to `nickname` (if it is set) or `properties.appearance.name`, otherwise. Enables administrators and users to identify the phone easily, especially when there are numerous phones.
14
+ attr_accessor :display_name
15
+ # Optional nickname to describe the phone, settable through Seam.
16
+ attr_accessor :nickname
17
+ # Properties of the phone.
18
+ attr_accessor :properties
19
+ # ID of the workspace that contains the phone.
20
+ attr_accessor :workspace_id
7
21
 
22
+ # Date and time at which the phone was created.
8
23
  date_accessor :created_at
9
24
 
10
25
  include Seam::Resources::ResourceErrorsSupport
@@ -2,9 +2,30 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents a space that is a logical grouping of devices and entrances. You can assign access to an entire space, thereby making granting access more efficient.
5
6
  class Space < BaseResource
6
- attr_accessor :acs_entrance_count, :customer_data, :customer_key, :device_count, :display_name, :geolocation, :name, :space_id, :space_key, :workspace_id
7
+ # Number of entrances in the space.
8
+ attr_accessor :acs_entrance_count
9
+ # Reservation/stay-related defaults for the space. Also carries the provider/PMS-supplied name under a `<connector_type>_name` key (e.g. `guesty_name`), which Seam preserves when you rename the space (read-only — managed by Seam).
10
+ attr_accessor :customer_data
11
+ # Customer key associated with the space.
12
+ attr_accessor :customer_key
13
+ # Number of devices in the space.
14
+ attr_accessor :device_count
15
+ # Display name for the space.
16
+ attr_accessor :display_name
17
+ # Geographic coordinates (latitude and longitude) of the space.
18
+ attr_accessor :geolocation
19
+ # Name of the space.
20
+ attr_accessor :name
21
+ # ID of the space.
22
+ attr_accessor :space_id
23
+ # Unique key for the space within the workspace.
24
+ attr_accessor :space_key
25
+ # ID of the workspace associated with the space.
26
+ attr_accessor :workspace_id
7
27
 
28
+ # Date and time at which the space was created.
8
29
  date_accessor :created_at
9
30
  end
10
31
  end
@@ -2,9 +2,20 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents a thermostat daily program, consisting of a set of periods, each of which has a starting time and the key that identifies the climate preset to apply at the starting time.
5
6
  class ThermostatDailyProgram < BaseResource
6
- attr_accessor :device_id, :name, :periods, :thermostat_daily_program_id, :workspace_id
7
+ # ID of the thermostat device on which the thermostat daily program is configured.
8
+ attr_accessor :device_id
9
+ # User-friendly name to identify the thermostat daily program.
10
+ attr_accessor :name
11
+ # Array of thermostat daily program periods.
12
+ attr_accessor :periods
13
+ # ID of the thermostat daily program.
14
+ attr_accessor :thermostat_daily_program_id
15
+ # ID of the workspace that contains the thermostat daily program.
16
+ attr_accessor :workspace_id
7
17
 
18
+ # Date and time at which the thermostat daily program was created.
8
19
  date_accessor :created_at
9
20
  end
10
21
  end
@@ -2,10 +2,31 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents a [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that activates a configured [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) on a [thermostat](https://docs.seam.co/capability-guides/thermostats) at a specified starting time and deactivates the climate preset at a specified ending time.
5
6
  class ThermostatSchedule < BaseResource
6
- attr_accessor :climate_preset_key, :device_id, :is_override_allowed, :max_override_period_minutes, :name, :thermostat_schedule_id, :workspace_id
7
+ # Key of the [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets) to use for the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
8
+ attr_accessor :climate_preset_key
9
+ # ID of the desired [thermostat](https://docs.seam.co/capability-guides/thermostats) device.
10
+ attr_accessor :device_id
11
+ # Indicates whether a person at the thermostat can change the thermostat's settings after the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts.
12
+ attr_accessor :is_override_allowed
13
+ # Number of minutes for which a person at the thermostat can change the thermostat's settings after the activation of the scheduled [climate preset](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-climate-presets). See also [Specifying Manual Override Permissions](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules#specifying-manual-override-permissions).
14
+ attr_accessor :max_override_period_minutes
15
+ # User-friendly name to identify the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
16
+ attr_accessor :name
17
+ # ID of the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules).
18
+ attr_accessor :thermostat_schedule_id
19
+ # ID of the workspace that contains the thermostat schedule.
20
+ attr_accessor :workspace_id
7
21
 
8
- date_accessor :created_at, :ends_at, :starts_at
22
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) was created.
23
+ date_accessor :created_at
24
+
25
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) ends, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
26
+ date_accessor :ends_at
27
+
28
+ # Date and time at which the [thermostat schedule](https://docs.seam.co/capability-guides/thermostats/creating-and-managing-thermostat-schedules) starts, in [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format.
29
+ date_accessor :starts_at
9
30
 
10
31
  include Seam::Resources::ResourceErrorsSupport
11
32
  end
@@ -2,10 +2,49 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an [unmanaged smart lock access code](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes).
6
+ #
7
+ # An access code is a code used for a keypad or pinpad device. Unlike physical keys, which can easily be lost or duplicated, PIN codes can be customized, tracked, and altered on the fly.
8
+ #
9
+ # When you create an access code on a device in Seam, it is created as a managed access code. Access codes that exist on a device that were not created through Seam are considered unmanaged codes. We strictly limit the operations that can be performed on unmanaged codes.
10
+ #
11
+ # Prior to using Seam to manage your devices, you may have used another lock management system to manage the access codes on your devices. Where possible, we help you keep any existing access codes on devices and transition those codes to ones managed by your Seam workspace.
12
+ #
13
+ # Not all providers support unmanaged access codes. The following providers do not support unmanaged access codes:
14
+ #
15
+ # - [Kwikset](https://docs.seam.co/device-and-system-integration-guides/kwikset-locks)
5
16
  class UnmanagedAccessCode < BaseResource
6
- attr_accessor :access_code_id, :cannot_be_managed, :cannot_delete_unmanaged_access_code, :code, :device_id, :dormakaba_oracode_metadata, :is_managed, :name, :status, :type, :workspace_id
17
+ # Unique identifier for the access code.
18
+ attr_accessor :access_code_id
19
+ # Indicates that Seam cannot convert this unmanaged access code to a managed access code. Some providers do not support management of unmanaged access codes through API integrations.
20
+ attr_accessor :cannot_be_managed
21
+ # Indicates that Seam cannot delete this unmanaged access code through the provider. If this access code needs to be deleted, it will only be possible from the manufacturer app.
22
+ attr_accessor :cannot_delete_unmanaged_access_code
23
+ # Code used for access. Typically, a numeric or alphanumeric string.
24
+ attr_accessor :code
25
+ # Unique identifier for the device associated with the access code.
26
+ attr_accessor :device_id
27
+ # Metadata for a dormakaba Oracode unmanaged access code. Only present for unmanaged access codes from dormakaba Oracode devices.
28
+ attr_accessor :dormakaba_oracode_metadata
29
+ # Indicates that Seam does not manage the access code.
30
+ attr_accessor :is_managed
31
+ # Name of the access code. Enables administrators and users to identify the access code easily, especially when there are numerous access codes. Note that the name provided on Seam is used to identify the code on Seam and is not necessarily the name that will appear in the lock provider's app or on the device. This is because lock providers may have constraints on names, such as length, uniqueness, or characters that can be used. In addition, some lock providers may break down names into components such as `first_name` and `last_name`. To provide a consistent experience, Seam identifies the code on Seam by its name but may modify the name that appears on the lock provider's app or on the device. For example, Seam may add additional characters or truncate the name to meet provider constraints. To help your users identify codes set by Seam, Seam provides the name exactly as it appears on the lock provider's app or on the device as a separate property called `appearance`. This is an object with a `name` property and, optionally, `first_name` and `last_name` properties (for providers that break down a name into components).
32
+ attr_accessor :name
33
+ # Current status of the access code within the operational lifecycle. `set` indicates that the code is active and operational. `unset` indicates that the code exists on the provider but is not usable on the device.
34
+ attr_accessor :status
35
+ # Type of the access code. `ongoing` access codes are active continuously until deactivated manually. `time_bound` access codes have a specific duration.
36
+ attr_accessor :type
37
+ # Unique identifier for the Seam workspace associated with the access code.
38
+ attr_accessor :workspace_id
7
39
 
8
- date_accessor :created_at, :ends_at, :starts_at
40
+ # Date and time at which the access code was created.
41
+ date_accessor :created_at
42
+
43
+ # Date and time after which the time-bound access code becomes inactive.
44
+ date_accessor :ends_at
45
+
46
+ # Date and time at which the time-bound access code becomes active.
47
+ date_accessor :starts_at
9
48
 
10
49
  include Seam::Resources::ResourceErrorsSupport
11
50
  include Seam::Resources::ResourceWarningsSupport
@@ -2,10 +2,39 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an unmanaged Access Grant. Unmanaged Access Grants do not have client sessions, instant keys, customization profiles, or keys.
5
6
  class UnmanagedAccessGrant < BaseResource
6
- attr_accessor :access_grant_id, :access_method_ids, :display_name, :location_ids, :name, :pending_mutations, :requested_access_methods, :reservation_key, :space_ids, :user_identity_id, :workspace_id
7
+ # ID of the Access Grant.
8
+ attr_accessor :access_grant_id
9
+ # IDs of the access methods created for the Access Grant.
10
+ attr_accessor :access_method_ids
11
+ # Display name of the Access Grant.
12
+ attr_accessor :display_name
13
+ # @deprecated Use `space_ids`.
14
+ attr_accessor :location_ids
15
+ # Name of the Access Grant. If not provided, the display name will be computed.
16
+ attr_accessor :name
17
+ # List of pending mutations for the access grant. This shows updates that are in progress.
18
+ attr_accessor :pending_mutations
19
+ # Access methods that the user requested for the Access Grant.
20
+ attr_accessor :requested_access_methods
21
+ # Reservation key for the access grant.
22
+ attr_accessor :reservation_key
23
+ # IDs of the spaces to which the Access Grant gives access.
24
+ attr_accessor :space_ids
25
+ # ID of user identity to which the Access Grant gives access.
26
+ attr_accessor :user_identity_id
27
+ # ID of the Seam workspace associated with the Access Grant.
28
+ attr_accessor :workspace_id
7
29
 
8
- date_accessor :created_at, :ends_at, :starts_at
30
+ # Date and time at which the Access Grant was created.
31
+ date_accessor :created_at
32
+
33
+ # Date and time at which the Access Grant ends.
34
+ date_accessor :ends_at
35
+
36
+ # Date and time at which the Access Grant starts.
37
+ date_accessor :starts_at
9
38
 
10
39
  include Seam::Resources::ResourceErrorsSupport
11
40
  include Seam::Resources::ResourceWarningsSupport
@@ -2,10 +2,36 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an unmanaged access method. Unmanaged access methods do not have client sessions, instant keys, customization profiles, or keys.
5
6
  class UnmanagedAccessMethod < BaseResource
6
- attr_accessor :access_method_id, :code, :display_name, :is_assignment_required, :is_encoding_required, :is_issued, :is_ready_for_assignment, :is_ready_for_encoding, :mode, :pending_mutations, :workspace_id
7
+ # ID of the access method.
8
+ attr_accessor :access_method_id
9
+ # The actual PIN code for code access methods.
10
+ attr_accessor :code
11
+ # Display name of the access method.
12
+ attr_accessor :display_name
13
+ # Indicates whether an existing card credential must be assigned to this access method before it can be issued. Only applies to card-mode access methods on systems that support credential assignment.
14
+ attr_accessor :is_assignment_required
15
+ # Indicates whether encoding with an card encoder is required to issue or reissue the plastic card associated with the access method.
16
+ attr_accessor :is_encoding_required
17
+ # Indicates whether the access method has been issued.
18
+ attr_accessor :is_issued
19
+ # Indicates whether the access method is ready for card assignment. This is true when the access method is in card mode, has not yet been issued, and the system supports credential assignment.
20
+ attr_accessor :is_ready_for_assignment
21
+ # Indicates whether the access method is ready to be encoded. This is true when the credential has been created and the card has not yet been issued.
22
+ attr_accessor :is_ready_for_encoding
23
+ # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
24
+ attr_accessor :mode
25
+ # Pending mutations for the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant). Indicates operations that are in progress.
26
+ attr_accessor :pending_mutations
27
+ # ID of the Seam workspace associated with the access method.
28
+ attr_accessor :workspace_id
7
29
 
8
- date_accessor :created_at, :issued_at
30
+ # Date and time at which the access method was created.
31
+ date_accessor :created_at
32
+
33
+ # Date and time at which the access method was issued.
34
+ date_accessor :issued_at
9
35
 
10
36
  include Seam::Resources::ResourceErrorsSupport
11
37
  include Seam::Resources::ResourceWarningsSupport
@@ -2,9 +2,68 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an [unmanaged device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices). An unmanaged device has a limited set of visible properties and a subset of supported events. You cannot control an unmanaged device. Any [access codes](https://docs.seam.co/low-level-apis/smart-locks/access-codes/migrating-existing-access-codes) on an unmanaged device are unmanaged. To control an unmanaged device with Seam, [convert it to a managed device](https://docs.seam.co/core-concepts/devices/managed-and-unmanaged-devices#convert-an-unmanaged-device-to-managed).
5
6
  class UnmanagedDevice < BaseResource
6
- attr_accessor :can_configure_auto_lock, :can_hvac_cool, :can_hvac_heat, :can_hvac_heat_cool, :can_program_offline_access_codes, :can_program_online_access_codes, :can_program_thermostat_programs_as_different_each_day, :can_program_thermostat_programs_as_same_each_day, :can_program_thermostat_programs_as_weekday_weekend, :can_remotely_lock, :can_remotely_unlock, :can_run_thermostat_programs, :can_simulate_connection, :can_simulate_disconnection, :can_simulate_hub_connection, :can_simulate_hub_disconnection, :can_simulate_paid_subscription, :can_simulate_removal, :can_turn_off_hvac, :can_unlock_with_code, :capabilities_supported, :connected_account_id, :custom_metadata, :device_id, :device_type, :is_managed, :location, :properties, :workspace_id
7
+ # Indicates whether the lock supports configuring automatic locking.
8
+ attr_accessor :can_configure_auto_lock
9
+ # Indicates whether the thermostat supports cooling.
10
+ attr_accessor :can_hvac_cool
11
+ # Indicates whether the thermostat supports heating.
12
+ attr_accessor :can_hvac_heat
13
+ # Indicates whether the thermostat supports simultaneous heating and cooling.
14
+ attr_accessor :can_hvac_heat_cool
15
+ # Indicates whether the device supports programming offline access codes.
16
+ attr_accessor :can_program_offline_access_codes
17
+ # Indicates whether the device supports programming online access codes.
18
+ attr_accessor :can_program_online_access_codes
19
+ # Indicates whether the thermostat supports different climate programs for each day of the week.
20
+ attr_accessor :can_program_thermostat_programs_as_different_each_day
21
+ # Indicates whether the thermostat supports a single climate program applied to every day.
22
+ attr_accessor :can_program_thermostat_programs_as_same_each_day
23
+ # Indicates whether the thermostat supports weekday/weekend climate programs.
24
+ attr_accessor :can_program_thermostat_programs_as_weekday_weekend
25
+ # Indicates whether the device supports remote locking.
26
+ attr_accessor :can_remotely_lock
27
+ # Indicates whether the device supports remote unlocking.
28
+ attr_accessor :can_remotely_unlock
29
+ # Indicates whether the thermostat supports running climate programs.
30
+ attr_accessor :can_run_thermostat_programs
31
+ # Indicates whether the device supports simulating connection in a sandbox.
32
+ attr_accessor :can_simulate_connection
33
+ # Indicates whether the device supports simulating disconnection in a sandbox.
34
+ attr_accessor :can_simulate_disconnection
35
+ # Indicates whether the hub supports simulating connection in a sandbox.
36
+ attr_accessor :can_simulate_hub_connection
37
+ # Indicates whether the hub supports simulating disconnection in a sandbox.
38
+ attr_accessor :can_simulate_hub_disconnection
39
+ # Indicates whether the device supports simulating a paid subscription in a sandbox.
40
+ attr_accessor :can_simulate_paid_subscription
41
+ # Indicates whether the device supports simulating removal in a sandbox.
42
+ attr_accessor :can_simulate_removal
43
+ # Indicates whether the thermostat can be turned off.
44
+ attr_accessor :can_turn_off_hvac
45
+ # Indicates whether the lock supports unlocking with an access code.
46
+ attr_accessor :can_unlock_with_code
47
+ # Collection of capabilities that the device supports when connected to Seam. Values are `access_code`, which indicates that the device can manage and utilize digital PIN codes for secure access; `lock`, which indicates that the device controls a door locking mechanism, enabling the remote opening and closing of doors and other entry points; `noise_detection`, which indicates that the device supports monitoring and responding to ambient noise levels; `thermostat`, which indicates that the device can regulate and adjust indoor temperatures; `battery`, which indicates that the device can manage battery life and health; and `phone`, which indicates that the device is a mobile device, such as a smartphone. **Important:** Superseded by [capability flags](https://docs.seam.co/capability-guides/device-and-system-capabilities#capability-flags).
48
+ attr_accessor :capabilities_supported
49
+ # Unique identifier for the account associated with the device.
50
+ attr_accessor :connected_account_id
51
+ # Set of key:value pairs. Adding custom metadata to a resource, such as a [Connect Webview](https://docs.seam.co/core-concepts/connect-webviews/attaching-custom-data-to-the-connect-webview), [connected account](https://docs.seam.co/core-concepts/connected-accounts/adding-custom-metadata-to-a-connected-account), or [device](https://docs.seam.co/core-concepts/devices/adding-custom-metadata-to-a-device), enables you to store custom information, like customer details or internal IDs from your application.
52
+ attr_accessor :custom_metadata
53
+ # ID of the device.
54
+ attr_accessor :device_id
55
+ # Type of the device.
56
+ attr_accessor :device_type
57
+ # Indicates that Seam does not manage the device.
58
+ attr_accessor :is_managed
59
+ # Location information for the device.
60
+ attr_accessor :location
61
+ # properties of the device.
62
+ attr_accessor :properties
63
+ # Unique identifier for the Seam workspace associated with the device.
64
+ attr_accessor :workspace_id
7
65
 
66
+ # Date and time at which the device object was created.
8
67
  date_accessor :created_at
9
68
 
10
69
  include Seam::Resources::ResourceErrorsSupport
@@ -2,9 +2,24 @@
2
2
 
3
3
  module Seam
4
4
  module Resources
5
+ # Represents an unmanaged user identity. Unmanaged user identities do not have keys.
5
6
  class UnmanagedUserIdentity < BaseResource
6
- attr_accessor :acs_user_ids, :display_name, :email_address, :full_name, :phone_number, :user_identity_id, :workspace_id
7
+ # Array of access system user IDs associated with the user identity.
8
+ attr_accessor :acs_user_ids
9
+ # Display name for the user identity.
10
+ attr_accessor :display_name
11
+ # Unique email address for the user identity.
12
+ attr_accessor :email_address
13
+ # Full name of the user associated with the user identity.
14
+ attr_accessor :full_name
15
+ # Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100).
16
+ attr_accessor :phone_number
17
+ # ID of the user identity.
18
+ attr_accessor :user_identity_id
19
+ # ID of the workspace that contains the user identity.
20
+ attr_accessor :workspace_id
7
21
 
22
+ # Date and time at which the user identity was created.
8
23
  date_accessor :created_at
9
24
 
10
25
  include Seam::Resources::ResourceErrorsSupport