seam 2.143.0 → 2.145.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/README.md +11 -7
  4. data/lib/seam/base_resource.rb +24 -3
  5. data/lib/seam/resources/access_code.rb +682 -43
  6. data/lib/seam/resources/access_grant.rb +189 -25
  7. data/lib/seam/resources/access_method.rb +105 -3
  8. data/lib/seam/resources/acs_access_group.rb +52 -0
  9. data/lib/seam/resources/acs_credential.rb +153 -6
  10. data/lib/seam/resources/acs_encoder.rb +2 -0
  11. data/lib/seam/resources/acs_entrance.rb +105 -0
  12. data/lib/seam/resources/acs_system.rb +278 -6
  13. data/lib/seam/resources/acs_user.rb +201 -0
  14. data/lib/seam/resources/action_attempt.rb +1457 -279
  15. data/lib/seam/resources/connect_webview.rb +14 -0
  16. data/lib/seam/resources/connected_account.rb +284 -40
  17. data/lib/seam/resources/device.rb +928 -13
  18. data/lib/seam/resources/device_provider.rb +74 -0
  19. data/lib/seam/resources/event.rb +5205 -316
  20. data/lib/seam/resources/phone.rb +3 -0
  21. data/lib/seam/resources/unmanaged_access_code.rb +677 -43
  22. data/lib/seam/resources/unmanaged_access_grant.rb +189 -25
  23. data/lib/seam/resources/unmanaged_access_method.rb +105 -3
  24. data/lib/seam/resources/unmanaged_device.rb +826 -13
  25. data/lib/seam/resources/unmanaged_user_identity.rb +67 -0
  26. data/lib/seam/resources/user_identity.rb +67 -0
  27. data/lib/seam/resources/workspace.rb +3 -0
  28. data/lib/seam/routes/access_codes.rb +1 -1
  29. data/lib/seam/routes/access_grants.rb +2 -2
  30. data/lib/seam/routes/access_methods.rb +1 -1
  31. data/lib/seam/routes/acs_encoders.rb +1 -1
  32. data/lib/seam/routes/acs_entrances.rb +2 -2
  33. data/lib/seam/routes/action_attempts.rb +1 -1
  34. data/lib/seam/routes/connect_webviews.rb +1 -1
  35. data/lib/seam/routes/connected_accounts.rb +1 -1
  36. data/lib/seam/routes/customers.rb +1 -1
  37. data/lib/seam/routes/devices.rb +1 -1
  38. data/lib/seam/routes/devices_unmanaged.rb +1 -1
  39. data/lib/seam/routes/events.rb +1 -1
  40. data/lib/seam/routes/locks.rb +1 -1
  41. data/lib/seam/routes/noise_sensors.rb +1 -1
  42. data/lib/seam/routes/spaces.rb +3 -3
  43. data/lib/seam/routes/thermostats.rb +1 -1
  44. data/lib/seam/routes/user_identities.rb +1 -1
  45. data/lib/seam/version.rb +1 -1
  46. data/lib/seam/webhook.rb +5 -2
  47. metadata +1 -1
@@ -4,19 +4,41 @@ module Seam
4
4
  module Resources
5
5
  # Represents an unmanaged Access Grant. Unmanaged Access Grants do not have client sessions, instant keys, customization profiles, or keys.
6
6
  class UnmanagedAccessGrant < BaseResource
7
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
7
8
  class Errors < BaseResource
9
+ # Indicates that Seam could not create one or more of the requested access methods for the access grant.
10
+ class CannotCreateRequestedAccessMethods < Errors
11
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
12
+ # @return [String]
13
+ # Known values:
14
+ # - `cannot_create_requested_access_methods`
15
+ attr_accessor :error_code
16
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
17
+ # @return [String]
18
+ attr_accessor :message
19
+ # IDs of the devices that did not receive an access code at grant creation. Use these to identify which specific devices failed when the message reports a partial failure.
20
+ # @return [Array<String>]
21
+ attr_accessor :missing_device_ids
22
+ # Date and time at which Seam created the error.
23
+ # @return [Time]
24
+ date_accessor :created_at
25
+ end
26
+
8
27
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
9
28
  # @return [String]
29
+ # Known values:
30
+ # - `cannot_create_requested_access_methods`
10
31
  attr_accessor :error_code
11
32
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
12
33
  # @return [String]
13
34
  attr_accessor :message
14
- # IDs of the devices that did not receive an access code at grant creation. Use these to identify which specific devices failed when the message reports a partial failure.
15
- # @return [Array<String>]
16
- attr_accessor :missing_device_ids
17
35
  # Date and time at which Seam created the error.
18
36
  # @return [Time]
19
37
  date_accessor :created_at
38
+
39
+ discriminated_by :error_code, {
40
+ "cannot_create_requested_access_methods" => CannotCreateRequestedAccessMethods
41
+ }.freeze
20
42
  end
21
43
 
22
44
  class PendingMutations < BaseResource
@@ -58,6 +80,8 @@ module Seam
58
80
  # @return [String]
59
81
  attr_accessor :message
60
82
  # @return [String]
83
+ # Known values:
84
+ # - `updating_spaces`
61
85
  attr_accessor :mutation_code
62
86
  # Date and time at which the mutation was created.
63
87
  # @return [Time]
@@ -79,51 +103,191 @@ module Seam
79
103
  attr_accessor :instant_key_max_use_count
80
104
  # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
81
105
  # @return [String]
106
+ # Known values:
107
+ # - `code`
108
+ # - `card`
109
+ # - `mobile_key`
110
+ # - `cloud_key`
82
111
  attr_accessor :mode
83
112
  # Date and time at which the requested access method was added to the Access Grant.
84
113
  # @return [Time]
85
114
  date_accessor :created_at
86
115
  end
87
116
 
117
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
88
118
  class Warnings < BaseResource
89
- class FailedDevices < BaseResource
90
- # Device whose access code could not be revoked.
119
+ # Indicates that the [access grant](https://docs.seam.co/use-cases/granting-access) is being deleted.
120
+ class BeingDeleted < Warnings
121
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
122
+ # @return [String]
123
+ attr_accessor :message
124
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
125
+ # @return [String]
126
+ # Known values:
127
+ # - `being_deleted`
128
+ attr_accessor :warning_code
129
+ # Date and time at which Seam created the warning.
130
+ # @return [Time]
131
+ date_accessor :created_at
132
+ end
133
+
134
+ # Indicates that the access grant should have access to more locations than it currently does. Access methods are being created for the missing locations.
135
+ class UnderprovisionedAccess < Warnings
136
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
137
+ # @return [String]
138
+ attr_accessor :message
139
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
140
+ # @return [String]
141
+ # Known values:
142
+ # - `underprovisioned_access`
143
+ attr_accessor :warning_code
144
+ # Date and time at which Seam created the warning.
145
+ # @return [Time]
146
+ date_accessor :created_at
147
+ end
148
+
149
+ # Indicates that the access grant has access to locations it should not have. Access methods are being removed from the extra locations.
150
+ class OverprovisionedAccess < Warnings
151
+ class FailedDevices < BaseResource
152
+ # Device whose access code could not be revoked.
153
+ # @return [String]
154
+ attr_accessor :device_id
155
+ # Reason the access code could not be revoked (e.g. `offline_access_code_not_revocable`).
156
+ # @return [String]
157
+ attr_accessor :error_code
158
+ # Human-readable description of why revocation failed.
159
+ # @return [String]
160
+ attr_accessor :message
161
+ end
162
+
163
+ # Devices whose access codes could not be revoked during reconciliation. Present when the provider does not support revoking an offline access code (e.g. Dormakaba oracode with exhausted override budget).
164
+ # @return [Array<FailedDevices>]
165
+ resource_list_accessor :failed_devices, FailedDevices
166
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
167
+ # @return [String]
168
+ attr_accessor :message
169
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
170
+ # @return [String]
171
+ # Known values:
172
+ # - `overprovisioned_access`
173
+ attr_accessor :warning_code
174
+ # Date and time at which Seam created the warning.
175
+ # @return [Time]
176
+ date_accessor :created_at
177
+ end
178
+
179
+ # Indicates that the access times for this [access grant](https://docs.seam.co/use-cases/granting-access) are being updated.
180
+ class UpdatingAccessTimes < Warnings
181
+ # IDs of the access methods being updated.
182
+ # @return [Array<String>]
183
+ attr_accessor :access_method_ids
184
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
185
+ # @return [String]
186
+ attr_accessor :message
187
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
188
+ # @return [String]
189
+ # Known values:
190
+ # - `updating_access_times`
191
+ attr_accessor :warning_code
192
+ # Date and time at which Seam created the warning.
193
+ # @return [Time]
194
+ date_accessor :created_at
195
+ end
196
+
197
+ # Indicates that the requested PIN code was already in use on a device, so a different code was assigned.
198
+ class RequestedCodeUnavailable < Warnings
199
+ # ID of the device where the requested code was unavailable.
91
200
  # @return [String]
92
201
  attr_accessor :device_id
93
- # Reason the access code could not be revoked (e.g. `offline_access_code_not_revocable`).
202
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
94
203
  # @return [String]
95
- attr_accessor :error_code
96
- # Human-readable description of why revocation failed.
204
+ attr_accessor :message
205
+ # The new PIN code that was assigned instead.
206
+ # @return [String]
207
+ attr_accessor :new_code
208
+ # The originally requested PIN code that was unavailable.
209
+ # @return [String]
210
+ attr_accessor :original_code
211
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
212
+ # @return [String]
213
+ # Known values:
214
+ # - `requested_code_unavailable`
215
+ attr_accessor :warning_code
216
+ # Date and time at which Seam created the warning.
217
+ # @return [Time]
218
+ date_accessor :created_at
219
+ end
220
+
221
+ # Indicates that a device in the access grant does not support access codes and was excluded from code materialization.
222
+ class DeviceDoesNotSupportAccessCodes < Warnings
223
+ # ID of the device that does not support access codes.
224
+ # @return [String]
225
+ attr_accessor :device_id
226
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
97
227
  # @return [String]
98
228
  attr_accessor :message
229
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
230
+ # @return [String]
231
+ # Known values:
232
+ # - `device_does_not_support_access_codes`
233
+ attr_accessor :warning_code
234
+ # Date and time at which Seam created the warning.
235
+ # @return [Time]
236
+ date_accessor :created_at
237
+ end
238
+
239
+ # Indicates that a device in the access grant cannot program an access code for the grant's time range because of device-specific time constraints.
240
+ class DeviceTimeConstraintsViolated < Warnings
241
+ # ID of the device whose time constraints the access grant violates.
242
+ # @return [String]
243
+ attr_accessor :device_id
244
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
245
+ # @return [String]
246
+ attr_accessor :message
247
+ # Specific reason why the grant's times are not programmable on the device.
248
+ # @return [String]
249
+ # Known values:
250
+ # - `duration_exceeds_max`
251
+ # - `times_do_not_match_slots`
252
+ # - `ongoing_not_supported`
253
+ attr_accessor :reason
254
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
255
+ # @return [String]
256
+ # Known values:
257
+ # - `device_time_constraints_violated`
258
+ attr_accessor :warning_code
259
+ # Date and time at which Seam created the warning.
260
+ # @return [Time]
261
+ date_accessor :created_at
99
262
  end
100
263
 
101
- # Devices whose access codes could not be revoked during reconciliation. Present when the provider does not support revoking an offline access code (e.g. Dormakaba oracode with exhausted override budget).
102
- # @return [Array<FailedDevices>]
103
- resource_list_accessor :failed_devices, FailedDevices
104
- # IDs of the access methods being updated.
105
- # @return [Array<String>]
106
- attr_accessor :access_method_ids
107
- # @return [String]
108
- attr_accessor :device_id
109
264
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
110
265
  # @return [String]
111
266
  attr_accessor :message
112
- # The new PIN code that was assigned instead.
113
- # @return [String]
114
- attr_accessor :new_code
115
- # The originally requested PIN code that was unavailable.
116
- # @return [String]
117
- attr_accessor :original_code
118
- # Specific reason why the grant's times are not programmable on the device.
119
- # @return [String]
120
- attr_accessor :reason
121
267
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
122
268
  # @return [String]
269
+ # Known values:
270
+ # - `being_deleted`
271
+ # - `underprovisioned_access`
272
+ # - `overprovisioned_access`
273
+ # - `updating_access_times`
274
+ # - `requested_code_unavailable`
275
+ # - `device_does_not_support_access_codes`
276
+ # - `device_time_constraints_violated`
123
277
  attr_accessor :warning_code
124
278
  # Date and time at which Seam created the warning.
125
279
  # @return [Time]
126
280
  date_accessor :created_at
281
+
282
+ discriminated_by :warning_code, {
283
+ "being_deleted" => BeingDeleted,
284
+ "underprovisioned_access" => UnderprovisionedAccess,
285
+ "overprovisioned_access" => OverprovisionedAccess,
286
+ "updating_access_times" => UpdatingAccessTimes,
287
+ "requested_code_unavailable" => RequestedCodeUnavailable,
288
+ "device_does_not_support_access_codes" => DeviceDoesNotSupportAccessCodes,
289
+ "device_time_constraints_violated" => DeviceTimeConstraintsViolated
290
+ }.freeze
127
291
  end
128
292
 
129
293
  # Errors associated with the [access grant](https://docs.seam.co/use-cases/granting-access).
@@ -4,9 +4,27 @@ module Seam
4
4
  module Resources
5
5
  # Represents an unmanaged access method. Unmanaged access methods do not have client sessions, instant keys, customization profiles, or keys.
6
6
  class UnmanagedAccessMethod < BaseResource
7
+ # Known `error_code` values load as subclasses; unknown values remain Errors instances for forward compatibility.
7
8
  class Errors < BaseResource
9
+ # Indicates that Seam was unable to issue this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) before its access grant started, so the recipient may be unable to access the space. This usually points to a problem that needs attention, such as an offline or disconnected device. Seam keeps retrying, and this error clears automatically if the access method is eventually issued.
10
+ class FailedToIssue < Errors
11
+ # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
12
+ # @return [String]
13
+ # Known values:
14
+ # - `failed_to_issue`
15
+ attr_accessor :error_code
16
+ # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
17
+ # @return [String]
18
+ attr_accessor :message
19
+ # Date and time at which Seam created the error.
20
+ # @return [Time]
21
+ date_accessor :created_at
22
+ end
23
+
8
24
  # Unique identifier of the type of error. Enables quick recognition and categorization of the issue.
9
25
  # @return [String]
26
+ # Known values:
27
+ # - `failed_to_issue`
10
28
  attr_accessor :error_code
11
29
  # Detailed description of the error. Provides insights into the issue and potentially how to rectify it.
12
30
  # @return [String]
@@ -14,6 +32,10 @@ module Seam
14
32
  # Date and time at which Seam created the error.
15
33
  # @return [Time]
16
34
  date_accessor :created_at
35
+
36
+ discriminated_by :error_code, {
37
+ "failed_to_issue" => FailedToIssue
38
+ }.freeze
17
39
  end
18
40
 
19
41
  class PendingMutations < BaseResource
@@ -47,25 +69,100 @@ module Seam
47
69
  # @return [String]
48
70
  attr_accessor :message
49
71
  # @return [String]
72
+ # Known values:
73
+ # - `provisioning_access`
50
74
  attr_accessor :mutation_code
51
75
  # Date and time at which the mutation was created.
52
76
  # @return [Time]
53
77
  date_accessor :created_at
54
78
  end
55
79
 
80
+ # Known `warning_code` values load as subclasses; unknown values remain Warnings instances for forward compatibility.
56
81
  class Warnings < BaseResource
82
+ # Indicates that the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) is being deleted.
83
+ class BeingDeleted < Warnings
84
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
85
+ # @return [String]
86
+ attr_accessor :message
87
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
88
+ # @return [String]
89
+ # Known values:
90
+ # - `being_deleted`
91
+ attr_accessor :warning_code
92
+ # Date and time at which Seam created the warning.
93
+ # @return [Time]
94
+ date_accessor :created_at
95
+ end
96
+
97
+ # Indicates that the access times for this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant) are being updated.
98
+ class UpdatingAccessTimes < Warnings
99
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
100
+ # @return [String]
101
+ attr_accessor :message
102
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
103
+ # @return [String]
104
+ # Known values:
105
+ # - `updating_access_times`
106
+ attr_accessor :warning_code
107
+ # Date and time at which Seam created the warning.
108
+ # @return [Time]
109
+ date_accessor :created_at
110
+ end
111
+
112
+ # Indicates that all attempts to create an access code on this device before the start time failed and a backup access code was used to ensure access was provided in time.
113
+ class PulledBackupAccessCode < Warnings
114
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
115
+ # @return [String]
116
+ attr_accessor :message
117
+ # ID of the original access method from which this backup access method was split, if applicable.
118
+ # @return [String, nil]
119
+ attr_accessor :original_access_method_id
120
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
121
+ # @return [String]
122
+ # Known values:
123
+ # - `pulled_backup_access_code`
124
+ attr_accessor :warning_code
125
+ # Date and time at which Seam created the warning.
126
+ # @return [Time]
127
+ date_accessor :created_at
128
+ end
129
+
130
+ # Indicates that Seam has not yet issued this [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant), even though its access grant is about to begin, so access may not be ready when the recipient arrives. Seam is still attempting to issue it, and this warning clears automatically once issuance succeeds.
131
+ class DelayInIssuing < Warnings
132
+ # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
133
+ # @return [String]
134
+ attr_accessor :message
135
+ # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
136
+ # @return [String]
137
+ # Known values:
138
+ # - `delay_in_issuing`
139
+ attr_accessor :warning_code
140
+ # Date and time at which Seam created the warning.
141
+ # @return [Time]
142
+ date_accessor :created_at
143
+ end
144
+
57
145
  # Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.
58
146
  # @return [String]
59
147
  attr_accessor :message
60
- # ID of the original access method from which this backup access method was split, if applicable.
61
- # @return [String, nil]
62
- attr_accessor :original_access_method_id
63
148
  # Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.
64
149
  # @return [String]
150
+ # Known values:
151
+ # - `being_deleted`
152
+ # - `updating_access_times`
153
+ # - `pulled_backup_access_code`
154
+ # - `delay_in_issuing`
65
155
  attr_accessor :warning_code
66
156
  # Date and time at which Seam created the warning.
67
157
  # @return [Time]
68
158
  date_accessor :created_at
159
+
160
+ discriminated_by :warning_code, {
161
+ "being_deleted" => BeingDeleted,
162
+ "updating_access_times" => UpdatingAccessTimes,
163
+ "pulled_backup_access_code" => PulledBackupAccessCode,
164
+ "delay_in_issuing" => DelayInIssuing
165
+ }.freeze
69
166
  end
70
167
 
71
168
  # Errors associated with the [access method](https://docs.seam.co/use-cases/granting-access/creating-an-access-grant).
@@ -103,6 +200,11 @@ module Seam
103
200
  attr_accessor :is_ready_for_encoding
104
201
  # Access method mode. Supported values: `code`, `card`, `mobile_key`, `cloud_key`.
105
202
  # @return [String]
203
+ # Known values:
204
+ # - `code`
205
+ # - `card`
206
+ # - `mobile_key`
207
+ # - `cloud_key`
106
208
  attr_accessor :mode
107
209
  # ID of the Seam workspace associated with the access method.
108
210
  # @return [String]