@seamapi/types 1.312.2 → 1.313.1
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.
- package/dist/connect.cjs +1201 -1194
- package/dist/connect.cjs.map +1 -1
- package/dist/connect.d.cts +1296 -934
- package/lib/seam/connect/models/action-attempts/action-attempt.d.ts +10 -10
- package/lib/seam/connect/models/action-attempts/encode-credential.d.ts +5 -5
- package/lib/seam/connect/models/action-attempts/encode-credential.js +3 -3
- package/lib/seam/connect/models/action-attempts/encode-credential.js.map +1 -1
- package/lib/seam/connect/models/action-attempts/scan-credential.d.ts +5 -5
- package/lib/seam/connect/models/action-attempts/scan-credential.js +3 -3
- package/lib/seam/connect/models/action-attempts/scan-credential.js.map +1 -1
- package/lib/seam/connect/models/events/common.js +10 -24
- package/lib/seam/connect/models/events/common.js.map +1 -1
- package/lib/seam/connect/models/events/devices.js +145 -98
- package/lib/seam/connect/models/events/devices.js.map +1 -1
- package/lib/seam/connect/openapi.d.ts +383 -134
- package/lib/seam/connect/openapi.js +717 -716
- package/lib/seam/connect/openapi.js.map +1 -1
- package/lib/seam/connect/route-types.d.ts +801 -688
- package/package.json +1 -1
- package/src/lib/seam/connect/models/action-attempts/encode-credential.ts +3 -3
- package/src/lib/seam/connect/models/action-attempts/scan-credential.ts +3 -3
- package/src/lib/seam/connect/models/events/common.ts +12 -24
- package/src/lib/seam/connect/models/events/devices.ts +212 -101
- package/src/lib/seam/connect/openapi.ts +842 -716
- package/src/lib/seam/connect/route-types.ts +810 -688
package/package.json
CHANGED
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
|
|
14
14
|
const action_type = z.literal('ENCODE_CREDENTIAL')
|
|
15
15
|
|
|
16
|
-
const
|
|
17
|
-
type: z.literal('
|
|
16
|
+
const no_credential_on_encoder_error = z.object({
|
|
17
|
+
type: z.literal('no_credential_on_encoder'),
|
|
18
18
|
message: z.string(),
|
|
19
19
|
})
|
|
20
20
|
|
|
@@ -25,7 +25,7 @@ const incompatible_card_format_error = z.object({
|
|
|
25
25
|
|
|
26
26
|
const error = z.union([
|
|
27
27
|
...common_action_attempt_errors,
|
|
28
|
-
|
|
28
|
+
no_credential_on_encoder_error,
|
|
29
29
|
incompatible_card_format_error,
|
|
30
30
|
])
|
|
31
31
|
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
|
|
15
15
|
const action_type = z.literal('SCAN_CREDENTIAL')
|
|
16
16
|
|
|
17
|
-
const
|
|
18
|
-
type: z.literal('
|
|
17
|
+
const no_credential_on_encoder_error = z.object({
|
|
18
|
+
type: z.literal('no_credential_on_encoder'),
|
|
19
19
|
message: z.string(),
|
|
20
20
|
})
|
|
21
21
|
|
|
22
22
|
const error = z.union([
|
|
23
23
|
...common_action_attempt_errors,
|
|
24
|
-
|
|
24
|
+
no_credential_on_encoder_error,
|
|
25
25
|
])
|
|
26
26
|
|
|
27
27
|
const warning = z.object({
|
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
|
|
3
3
|
export const common_event = z.object({
|
|
4
|
-
event_id: z.string().uuid().describe(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
created_at: z.string().datetime().describe(`
|
|
17
|
-
---
|
|
18
|
-
title: Created At
|
|
19
|
-
---
|
|
20
|
-
The time when the event was created.
|
|
21
|
-
`),
|
|
22
|
-
occurred_at: z.string().datetime().describe(`
|
|
23
|
-
---
|
|
24
|
-
title: Occurred At
|
|
25
|
-
---
|
|
26
|
-
The time when the event occurred.
|
|
27
|
-
`),
|
|
4
|
+
event_id: z.string().uuid().describe('ID of the event.'),
|
|
5
|
+
workspace_id: z
|
|
6
|
+
.string()
|
|
7
|
+
.uuid()
|
|
8
|
+
.describe(
|
|
9
|
+
'ID of the [workspace](https://docs.seam.co/latest/core-concepts/workspaces).',
|
|
10
|
+
),
|
|
11
|
+
created_at: z
|
|
12
|
+
.string()
|
|
13
|
+
.datetime()
|
|
14
|
+
.describe('Time at which the event was created.'),
|
|
15
|
+
occurred_at: z.string().datetime().describe('Time when the event occurred.'),
|
|
28
16
|
})
|
|
@@ -4,58 +4,38 @@ import { climate_setting } from '../thermostats/climate-preset.js'
|
|
|
4
4
|
import { common_event } from './common.js'
|
|
5
5
|
|
|
6
6
|
const device_event = common_event.extend({
|
|
7
|
-
device_id: z.string().uuid().describe(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
title: Connected Account ID
|
|
16
|
-
---
|
|
17
|
-
ID of the connected account.
|
|
18
|
-
`),
|
|
7
|
+
device_id: z.string().uuid().describe('ID of the device.'),
|
|
8
|
+
connected_account_id: z
|
|
9
|
+
.string()
|
|
10
|
+
.uuid()
|
|
11
|
+
.describe(
|
|
12
|
+
'ID of the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).',
|
|
13
|
+
),
|
|
19
14
|
})
|
|
20
15
|
|
|
21
|
-
const battery_level = z
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
'
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
])
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
The error code associated with the event, if any.
|
|
45
|
-
`)
|
|
46
|
-
|
|
47
|
-
export const lock_method = z.enum([
|
|
48
|
-
'keycode',
|
|
49
|
-
'manual',
|
|
50
|
-
'automatic',
|
|
51
|
-
'unknown',
|
|
52
|
-
'seamapi',
|
|
53
|
-
]).describe(`
|
|
54
|
-
---
|
|
55
|
-
title: Lock Lock/Unlock Method
|
|
56
|
-
---
|
|
57
|
-
Method by which a lock device was locked or unlocked. When the method is \`keycode\`, the \`access_code_id\` will reference the Seam access code which was used, if reported by the device.
|
|
58
|
-
`)
|
|
16
|
+
const battery_level = z
|
|
17
|
+
.number()
|
|
18
|
+
.min(0)
|
|
19
|
+
.max(1)
|
|
20
|
+
.describe(
|
|
21
|
+
'Number in the range 0 to 1.0 indicating the amount of battery in the device, as reported by the device.',
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
const device_battery_status = z
|
|
25
|
+
.enum(['critical', 'low', 'good', 'full'])
|
|
26
|
+
.describe(
|
|
27
|
+
'Battery status of the device, calculated from the numeric `battery_level` value.',
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
const disconnection_error_code = z
|
|
31
|
+
.enum(['account_disconnected', 'hub_disconnected', 'device_disconnected'])
|
|
32
|
+
.describe('Error code associated with the disconnection event, if any.')
|
|
33
|
+
|
|
34
|
+
export const lock_method = z
|
|
35
|
+
.enum(['keycode', 'manual', 'automatic', 'unknown', 'seamapi'])
|
|
36
|
+
.describe(
|
|
37
|
+
'Method by which a lock device was locked or unlocked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.',
|
|
38
|
+
)
|
|
59
39
|
export type LockMethod = z.infer<typeof lock_method>
|
|
60
40
|
|
|
61
41
|
export const device_connected_event = device_event
|
|
@@ -70,7 +50,7 @@ export const device_added_event = device_event
|
|
|
70
50
|
.extend({
|
|
71
51
|
event_type: z.literal('device.added'),
|
|
72
52
|
})
|
|
73
|
-
.describe('A device
|
|
53
|
+
.describe('A device was added or reconnected to Seam.')
|
|
74
54
|
|
|
75
55
|
export type DeviceAddedEvent = z.infer<typeof device_added_event>
|
|
76
56
|
|
|
@@ -79,7 +59,7 @@ export const device_converted_to_unmanaged_event = device_event
|
|
|
79
59
|
event_type: z.literal('device.converted_to_unmanaged'),
|
|
80
60
|
})
|
|
81
61
|
.describe(
|
|
82
|
-
'An unmanaged device was successfully converted to a managed device.',
|
|
62
|
+
'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was successfully converted to a managed device.',
|
|
83
63
|
)
|
|
84
64
|
|
|
85
65
|
export type DeviceConvertedToUnmanagedEvent = z.infer<
|
|
@@ -91,7 +71,7 @@ export const unmanaged_device_converted_to_managed_event = device_event
|
|
|
91
71
|
event_type: z.literal('device.unmanaged.converted_to_managed'),
|
|
92
72
|
})
|
|
93
73
|
.describe(
|
|
94
|
-
'A managed device was successfully converted to an unmanaged device.',
|
|
74
|
+
'A managed device was successfully converted to an [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices).',
|
|
95
75
|
)
|
|
96
76
|
|
|
97
77
|
export type UnmanagedDeviceConvertedToManagedEvent = z.infer<
|
|
@@ -102,7 +82,9 @@ export const unmanaged_device_connected_event = device_event
|
|
|
102
82
|
.extend({
|
|
103
83
|
event_type: z.literal('device.unmanaged.connected'),
|
|
104
84
|
})
|
|
105
|
-
.describe(
|
|
85
|
+
.describe(
|
|
86
|
+
'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was connected to Seam.',
|
|
87
|
+
)
|
|
106
88
|
|
|
107
89
|
export type UnmanagedDeviceConnectedEvent = z.infer<
|
|
108
90
|
typeof unmanaged_device_connected_event
|
|
@@ -113,7 +95,7 @@ export const device_disconnected_event = device_event
|
|
|
113
95
|
event_type: z.literal('device.disconnected'),
|
|
114
96
|
error_code: disconnection_error_code,
|
|
115
97
|
})
|
|
116
|
-
.describe('A device was disconnected')
|
|
98
|
+
.describe('A device was disconnected from Seam.')
|
|
117
99
|
|
|
118
100
|
export type DeviceDisconnectedEvent = z.infer<typeof device_disconnected_event>
|
|
119
101
|
|
|
@@ -122,7 +104,9 @@ export const unmanaged_device_disconnected_event = device_event
|
|
|
122
104
|
event_type: z.literal('device.unmanaged.disconnected'),
|
|
123
105
|
error_code: disconnection_error_code,
|
|
124
106
|
})
|
|
125
|
-
.describe(
|
|
107
|
+
.describe(
|
|
108
|
+
'An [unmanaged device](https://docs.seam.co/latest/core-concepts/devices/managed-and-unmanaged-devices) was disconnected from Seam.',
|
|
109
|
+
)
|
|
126
110
|
|
|
127
111
|
export type UnmanagedDeviceDisconnectedEvent = z.infer<
|
|
128
112
|
typeof unmanaged_device_disconnected_event
|
|
@@ -133,7 +117,7 @@ export const device_tampered_event = device_event
|
|
|
133
117
|
event_type: z.literal('device.tampered'),
|
|
134
118
|
})
|
|
135
119
|
.describe(
|
|
136
|
-
'A device detected that it was tampered with,
|
|
120
|
+
'A device detected that it was tampered with, for example, opened or moved.',
|
|
137
121
|
)
|
|
138
122
|
|
|
139
123
|
export type DeviceTamperedEvent = z.infer<typeof device_tampered_event>
|
|
@@ -154,7 +138,7 @@ export const device_battery_status_changed_event = device_event
|
|
|
154
138
|
battery_level,
|
|
155
139
|
})
|
|
156
140
|
.describe(
|
|
157
|
-
'A device battery status changed since the last
|
|
141
|
+
'A device battery status changed since the last `battery_status_changed` event.',
|
|
158
142
|
)
|
|
159
143
|
|
|
160
144
|
export type DeviceBatteryStatusChangedEvent = z.infer<
|
|
@@ -165,7 +149,9 @@ export const device_removed_event = device_event
|
|
|
165
149
|
.extend({
|
|
166
150
|
event_type: z.literal('device.removed'),
|
|
167
151
|
})
|
|
168
|
-
.describe(
|
|
152
|
+
.describe(
|
|
153
|
+
'A device was removed externally from the [connected account](https://docs.seam.co/latest/core-concepts/connected-accounts).',
|
|
154
|
+
)
|
|
169
155
|
|
|
170
156
|
export type DeviceRemovedEvent = z.infer<typeof device_removed_event>
|
|
171
157
|
|
|
@@ -173,7 +159,9 @@ export const device_deleted_event = device_event
|
|
|
173
159
|
.extend({
|
|
174
160
|
event_type: z.literal('device.deleted'),
|
|
175
161
|
})
|
|
176
|
-
.describe(
|
|
162
|
+
.describe(
|
|
163
|
+
'A device was [deleted](https://docs.seam.co/latest/api/devices/delete).',
|
|
164
|
+
)
|
|
177
165
|
|
|
178
166
|
export type DeviceDeletedEvent = z.infer<typeof device_deleted_event>
|
|
179
167
|
|
|
@@ -182,7 +170,7 @@ export const device_third_party_integration_detected_event = device_event
|
|
|
182
170
|
event_type: z.literal('device.third_party_integration_detected'),
|
|
183
171
|
})
|
|
184
172
|
.describe(
|
|
185
|
-
'Seam detected a device is using a third
|
|
173
|
+
'Seam detected that a device is using a third-party integration that will interfere with Seam device management.',
|
|
186
174
|
)
|
|
187
175
|
|
|
188
176
|
export type DeviceThirdPartyIntegrationDetectedEvent = z.infer<
|
|
@@ -197,7 +185,7 @@ export const device_third_party_integration_no_longer_detected_event =
|
|
|
197
185
|
),
|
|
198
186
|
})
|
|
199
187
|
.describe(
|
|
200
|
-
'Seam detected a device is no longer using a third
|
|
188
|
+
'Seam detected that a device is no longer using a third-party integration that was interfering with Seam device management.',
|
|
201
189
|
)
|
|
202
190
|
|
|
203
191
|
export type DeviceThirdPartyIntegrationNoLongerDetectedEvent = z.infer<
|
|
@@ -238,7 +226,9 @@ export const device_connection_stabilized_event = device_event
|
|
|
238
226
|
.extend({
|
|
239
227
|
event_type: z.literal('device.connection_stabilized'),
|
|
240
228
|
})
|
|
241
|
-
.describe(
|
|
229
|
+
.describe(
|
|
230
|
+
'Seam detected that a previously-flaky device connection stabilized.',
|
|
231
|
+
)
|
|
242
232
|
|
|
243
233
|
export type DeviceConnectionStabilizedEvent = z.infer<
|
|
244
234
|
typeof device_connection_stabilized_event
|
|
@@ -249,7 +239,7 @@ export const device_error_subscription_required_event = device_event
|
|
|
249
239
|
event_type: z.literal('device.error.subscription_required'),
|
|
250
240
|
})
|
|
251
241
|
.describe(
|
|
252
|
-
'A third
|
|
242
|
+
'A third-party subscription is required to use all device features.',
|
|
253
243
|
)
|
|
254
244
|
|
|
255
245
|
export type DeviceErrorSubscriptionRequiredEvent = z.infer<
|
|
@@ -261,7 +251,7 @@ export const device_error_subscription_required_resolved_event = device_event
|
|
|
261
251
|
event_type: z.literal('device.error.subscription_required.resolved'),
|
|
262
252
|
})
|
|
263
253
|
.describe(
|
|
264
|
-
'A third
|
|
254
|
+
'A third-party subscription is active or no longer required to use all device features.',
|
|
265
255
|
)
|
|
266
256
|
|
|
267
257
|
export type DeviceErrorSubscriptionRequiredResolvedEvent = z.infer<
|
|
@@ -272,7 +262,7 @@ export const device_accessory_keypad_connected_event = device_event
|
|
|
272
262
|
.extend({
|
|
273
263
|
event_type: z.literal('device.accessory_keypad_connected'),
|
|
274
264
|
})
|
|
275
|
-
.describe('
|
|
265
|
+
.describe('An accessory keypad was connected to a device.')
|
|
276
266
|
|
|
277
267
|
export type DeviceAccessoryKeypadConnectedEvent = z.infer<
|
|
278
268
|
typeof device_accessory_keypad_connected_event
|
|
@@ -282,7 +272,7 @@ export const device_accessory_keypad_disconnected_event = device_event
|
|
|
282
272
|
.extend({
|
|
283
273
|
event_type: z.literal('device.accessory_keypad_disconnected'),
|
|
284
274
|
})
|
|
285
|
-
.describe('
|
|
275
|
+
.describe('An accessory keypad was disconnected from a device.')
|
|
286
276
|
|
|
287
277
|
export type DeviceAccessoryKeypadDisconnectedEvent = z.infer<
|
|
288
278
|
typeof device_accessory_keypad_disconnected_event
|
|
@@ -291,26 +281,43 @@ export type DeviceAccessoryKeypadDisconnectedEvent = z.infer<
|
|
|
291
281
|
export const noise_sensor_noise_threshold_triggered_event = device_event
|
|
292
282
|
.extend({
|
|
293
283
|
event_type: z.literal('noise_sensor.noise_threshold_triggered'),
|
|
294
|
-
noise_level_decibels: z
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
284
|
+
noise_level_decibels: z
|
|
285
|
+
.number()
|
|
286
|
+
.optional()
|
|
287
|
+
.describe('Detected noise level in decibels.'),
|
|
288
|
+
noise_level_nrs: z
|
|
289
|
+
.number()
|
|
290
|
+
.optional()
|
|
291
|
+
.describe('Detected noise level in Noiseaware Noise Risk Score (NRS).'),
|
|
292
|
+
noise_threshold_id: z
|
|
293
|
+
.string()
|
|
294
|
+
.uuid()
|
|
295
|
+
.optional()
|
|
296
|
+
.describe(
|
|
297
|
+
'ID of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.',
|
|
298
|
+
),
|
|
299
|
+
noise_threshold_name: z
|
|
300
|
+
.string()
|
|
301
|
+
.optional()
|
|
302
|
+
.describe(
|
|
303
|
+
'Name of the [noise threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) that was triggered.',
|
|
304
|
+
),
|
|
298
305
|
// TODO: remove metadata from this event
|
|
299
306
|
noiseaware_metadata: z.record(z.unknown()).optional().describe(`
|
|
300
307
|
---
|
|
301
308
|
title: Noiseaware Metadata
|
|
302
309
|
---
|
|
303
|
-
Metadata from
|
|
310
|
+
Metadata from Noiseaware.
|
|
304
311
|
`),
|
|
305
312
|
minut_metadata: z.record(z.unknown()).optional().describe(`
|
|
306
313
|
---
|
|
307
314
|
title: Minut Metadata
|
|
308
315
|
---
|
|
309
|
-
Metadata from
|
|
316
|
+
Metadata from Minut.
|
|
310
317
|
`),
|
|
311
318
|
})
|
|
312
319
|
.describe(
|
|
313
|
-
'Extended periods of noise or noise exceeding a threshold
|
|
320
|
+
'Extended periods of noise or noise exceeding a [threshold](https://docs.seam.co/latest/capability-guides/noise-sensors#what-is-a-threshold) were detected.',
|
|
314
321
|
)
|
|
315
322
|
|
|
316
323
|
export type NoiseSensorNoiseThresholdTriggeredEvent = z.infer<
|
|
@@ -320,9 +327,23 @@ export type NoiseSensorNoiseThresholdTriggeredEvent = z.infer<
|
|
|
320
327
|
export const lock_locked_event = device_event
|
|
321
328
|
.extend({
|
|
322
329
|
event_type: z.literal('lock.locked'),
|
|
323
|
-
access_code_id: z
|
|
324
|
-
|
|
325
|
-
|
|
330
|
+
access_code_id: z
|
|
331
|
+
.string()
|
|
332
|
+
.uuid()
|
|
333
|
+
.optional()
|
|
334
|
+
.describe(
|
|
335
|
+
'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to lock the device.',
|
|
336
|
+
),
|
|
337
|
+
action_attempt_id: z
|
|
338
|
+
.string()
|
|
339
|
+
.uuid()
|
|
340
|
+
.optional()
|
|
341
|
+
.describe(
|
|
342
|
+
'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the lock action.',
|
|
343
|
+
),
|
|
344
|
+
method: lock_method.describe(
|
|
345
|
+
'Method by which a lock device was locked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.',
|
|
346
|
+
),
|
|
326
347
|
})
|
|
327
348
|
.describe('A lock was locked.')
|
|
328
349
|
|
|
@@ -331,9 +352,23 @@ export type LockLockedEvent = z.infer<typeof lock_locked_event>
|
|
|
331
352
|
export const lock_unlocked_event = device_event
|
|
332
353
|
.extend({
|
|
333
354
|
event_type: z.literal('lock.unlocked'),
|
|
334
|
-
access_code_id: z
|
|
335
|
-
|
|
336
|
-
|
|
355
|
+
access_code_id: z
|
|
356
|
+
.string()
|
|
357
|
+
.uuid()
|
|
358
|
+
.optional()
|
|
359
|
+
.describe(
|
|
360
|
+
'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used to unlock the device.',
|
|
361
|
+
),
|
|
362
|
+
action_attempt_id: z
|
|
363
|
+
.string()
|
|
364
|
+
.uuid()
|
|
365
|
+
.optional()
|
|
366
|
+
.describe(
|
|
367
|
+
'ID of the [action attempt](https://docs.seam.co/latest/core-concepts/action-attempts) associated with the unlock action.',
|
|
368
|
+
),
|
|
369
|
+
method: lock_method.describe(
|
|
370
|
+
'Method by which a lock device was unlocked. When the method is `keycode`, the `access_code_id` indicates the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used, if reported by the device.',
|
|
371
|
+
),
|
|
337
372
|
})
|
|
338
373
|
.describe('A lock was unlocked.')
|
|
339
374
|
|
|
@@ -342,7 +377,13 @@ export type LockUnlockedEvent = z.infer<typeof lock_unlocked_event>
|
|
|
342
377
|
export const lock_access_denied_event = device_event
|
|
343
378
|
.extend({
|
|
344
379
|
event_type: z.literal('lock.access_denied'),
|
|
345
|
-
access_code_id: z
|
|
380
|
+
access_code_id: z
|
|
381
|
+
.string()
|
|
382
|
+
.uuid()
|
|
383
|
+
.optional()
|
|
384
|
+
.describe(
|
|
385
|
+
'ID of the [access code](https://docs.seam.co/latest/capability-guides/smart-locks/access-codes) that was used in the unlock attempts.',
|
|
386
|
+
),
|
|
346
387
|
})
|
|
347
388
|
.describe(
|
|
348
389
|
'The lock denied access to a user after one or more consecutive invalid attempts to unlock the device.',
|
|
@@ -353,17 +394,37 @@ export type LockAccessDeniedEvent = z.infer<typeof lock_access_denied_event>
|
|
|
353
394
|
export const thermostat_climate_preset_activated_event = device_event
|
|
354
395
|
.extend({
|
|
355
396
|
event_type: z.literal('thermostat.climate_preset_activated'),
|
|
356
|
-
thermostat_schedule_id: z
|
|
357
|
-
|
|
358
|
-
|
|
397
|
+
thermostat_schedule_id: z
|
|
398
|
+
.string()
|
|
399
|
+
.uuid()
|
|
400
|
+
.nullable()
|
|
401
|
+
.describe(
|
|
402
|
+
'ID of the [thermostat schedule](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-thermostat-schedules) that prompted the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) to be activated.',
|
|
403
|
+
),
|
|
404
|
+
climate_preset_key: z
|
|
405
|
+
.string()
|
|
406
|
+
.describe(
|
|
407
|
+
'Key of the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated.',
|
|
408
|
+
),
|
|
409
|
+
is_fallback_climate_preset: z
|
|
410
|
+
.boolean()
|
|
411
|
+
.describe(
|
|
412
|
+
'Indicates whether the [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) that was activated is the [fallback climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets/setting-the-fallback-climate-preset) for the thermostat.',
|
|
413
|
+
),
|
|
359
414
|
})
|
|
360
|
-
.describe(
|
|
415
|
+
.describe(
|
|
416
|
+
'A thermostat [climate preset](https://docs.seam.co/latest/capability-guides/thermostats/creating-and-managing-climate-presets) was activated.',
|
|
417
|
+
)
|
|
361
418
|
|
|
362
419
|
export type ThermostatClimatePresetActivatedEvent = z.infer<
|
|
363
420
|
typeof thermostat_climate_preset_activated_event
|
|
364
421
|
>
|
|
365
422
|
|
|
366
|
-
export const thermostat_manually_adjusted_method = z
|
|
423
|
+
export const thermostat_manually_adjusted_method = z
|
|
424
|
+
.enum(['seam', 'external'])
|
|
425
|
+
.describe(
|
|
426
|
+
'Method used to adjust the thermostat manually. `seam` indicates that the Seam API, Seam CLI, or Seam Console was used to adjust the thermostat.',
|
|
427
|
+
)
|
|
367
428
|
|
|
368
429
|
export const thermostat_manually_adjusted_event = device_event
|
|
369
430
|
.extend({
|
|
@@ -380,7 +441,7 @@ export const thermostat_manually_adjusted_event = device_event
|
|
|
380
441
|
heating_set_point_fahrenheit: true,
|
|
381
442
|
}),
|
|
382
443
|
)
|
|
383
|
-
.describe('A thermostat was manually
|
|
444
|
+
.describe('A thermostat was adjusted manually.')
|
|
384
445
|
|
|
385
446
|
export type ThermostatManuallyAdjustedEvent = z.infer<
|
|
386
447
|
typeof thermostat_manually_adjusted_event
|
|
@@ -389,14 +450,40 @@ export type ThermostatManuallyAdjustedEvent = z.infer<
|
|
|
389
450
|
export const temperature_threshold_exceeded_event = device_event
|
|
390
451
|
.extend({
|
|
391
452
|
event_type: z.literal('thermostat.temperature_threshold_exceeded'),
|
|
392
|
-
temperature_celsius: z
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
453
|
+
temperature_celsius: z
|
|
454
|
+
.number()
|
|
455
|
+
.describe('Temperature, in °C, reported by the thermostat.'),
|
|
456
|
+
temperature_fahrenheit: z
|
|
457
|
+
.number()
|
|
458
|
+
.describe('Temperature, in °F, reported by the thermostat.'),
|
|
459
|
+
upper_limit_celsius: z
|
|
460
|
+
.number()
|
|
461
|
+
.nullable()
|
|
462
|
+
.describe(
|
|
463
|
+
'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
464
|
+
),
|
|
465
|
+
upper_limit_fahrenheit: z
|
|
466
|
+
.number()
|
|
467
|
+
.nullable()
|
|
468
|
+
.describe(
|
|
469
|
+
'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
470
|
+
),
|
|
471
|
+
lower_limit_celsius: z
|
|
472
|
+
.number()
|
|
473
|
+
.nullable()
|
|
474
|
+
.describe(
|
|
475
|
+
'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
476
|
+
),
|
|
477
|
+
lower_limit_fahrenheit: z
|
|
478
|
+
.number()
|
|
479
|
+
.nullable()
|
|
480
|
+
.describe(
|
|
481
|
+
'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
482
|
+
),
|
|
398
483
|
})
|
|
399
|
-
.describe(
|
|
484
|
+
.describe(
|
|
485
|
+
"A thermostat's temperature reading exceeded the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).",
|
|
486
|
+
)
|
|
400
487
|
|
|
401
488
|
export type TemperatureThresholdExceededEvent = z.infer<
|
|
402
489
|
typeof temperature_threshold_exceeded_event
|
|
@@ -407,15 +494,39 @@ export const temperature_threshold_no_longer_exceeded_event = device_event
|
|
|
407
494
|
event_type: z.literal(
|
|
408
495
|
'thermostat.temperature_threshold_no_longer_exceeded',
|
|
409
496
|
),
|
|
410
|
-
temperature_celsius: z
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
497
|
+
temperature_celsius: z
|
|
498
|
+
.number()
|
|
499
|
+
.describe('Temperature, in °C, reported by the thermostat.'),
|
|
500
|
+
temperature_fahrenheit: z
|
|
501
|
+
.number()
|
|
502
|
+
.describe('Temperature, in °F, reported by the thermostat.'),
|
|
503
|
+
upper_limit_celsius: z
|
|
504
|
+
.number()
|
|
505
|
+
.nullable()
|
|
506
|
+
.describe(
|
|
507
|
+
'Upper temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
508
|
+
),
|
|
509
|
+
upper_limit_fahrenheit: z
|
|
510
|
+
.number()
|
|
511
|
+
.nullable()
|
|
512
|
+
.describe(
|
|
513
|
+
'Upper temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
514
|
+
),
|
|
515
|
+
lower_limit_celsius: z
|
|
516
|
+
.number()
|
|
517
|
+
.nullable()
|
|
518
|
+
.describe(
|
|
519
|
+
'Lower temperature limit, in °C, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
520
|
+
),
|
|
521
|
+
lower_limit_fahrenheit: z
|
|
522
|
+
.number()
|
|
523
|
+
.nullable()
|
|
524
|
+
.describe(
|
|
525
|
+
'Lower temperature limit, in °F, defined by the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).',
|
|
526
|
+
),
|
|
416
527
|
})
|
|
417
528
|
.describe(
|
|
418
|
-
"A thermostat's temperature reading
|
|
529
|
+
"A thermostat's temperature reading no longer exceeds the set [threshold](https://docs.seam.co/latest/capability-guides/thermostats/setting-and-monitoring-temperature-thresholds).",
|
|
419
530
|
)
|
|
420
531
|
|
|
421
532
|
export type TemperatureThresholdNoLongerExceededEvent = z.infer<
|