@seamapi/types 1.916.0 → 1.917.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.
- package/dist/connect.cjs +603 -160
- package/dist/connect.cjs.map +1 -1
- package/dist/connect.d.cts +872 -15
- package/dist/index.cjs +603 -160
- package/dist/index.cjs.map +1 -1
- package/lib/seam/connect/models/acs/acs-access-group.js +4 -2
- package/lib/seam/connect/models/acs/acs-access-group.js.map +1 -1
- package/lib/seam/connect/models/acs/acs-credential.js +12 -3
- package/lib/seam/connect/models/acs/acs-credential.js.map +1 -1
- package/lib/seam/connect/models/acs/acs-system.js +15 -5
- package/lib/seam/connect/models/acs/acs-system.js.map +1 -1
- package/lib/seam/connect/models/acs/acs-users/acs-user.js +8 -2
- package/lib/seam/connect/models/acs/acs-users/acs-user.js.map +1 -1
- package/lib/seam/connect/models/connect-webviews/connect-webview.js +1 -1
- package/lib/seam/connect/models/connect-webviews/connect-webview.js.map +1 -1
- package/lib/seam/connect/models/devices/device-provider.js +8 -4
- package/lib/seam/connect/models/devices/device-provider.js.map +1 -1
- package/lib/seam/connect/models/devices/device.js +60 -20
- package/lib/seam/connect/models/devices/device.js.map +1 -1
- package/lib/seam/connect/models/devices/phone.js +10 -6
- package/lib/seam/connect/models/devices/phone.js.map +1 -1
- package/lib/seam/connect/models/devices/unmanaged-device.js +3 -1
- package/lib/seam/connect/models/devices/unmanaged-device.js.map +1 -1
- package/lib/seam/connect/models/events/access-codes.js +7 -3
- package/lib/seam/connect/models/events/access-codes.js.map +1 -1
- package/lib/seam/connect/models/events/acs/entrances.js +3 -5
- package/lib/seam/connect/models/events/acs/entrances.js.map +1 -1
- package/lib/seam/connect/models/events/acs/users.js +6 -5
- package/lib/seam/connect/models/events/acs/users.js.map +1 -1
- package/lib/seam/connect/models/events/common.js +8 -4
- package/lib/seam/connect/models/events/common.js.map +1 -1
- package/lib/seam/connect/models/thermostats/modes.js +9 -16
- package/lib/seam/connect/models/thermostats/modes.js.map +1 -1
- package/lib/seam/connect/models/user-identities/user-identity.js +9 -2
- package/lib/seam/connect/models/user-identities/user-identity.js.map +1 -1
- package/lib/seam/connect/openapi.js +494 -96
- package/lib/seam/connect/openapi.js.map +1 -1
- package/lib/seam/connect/route-types.d.ts +872 -15
- package/package.json +1 -1
- package/src/lib/seam/connect/models/acs/acs-access-group.ts +4 -2
- package/src/lib/seam/connect/models/acs/acs-credential.ts +14 -3
- package/src/lib/seam/connect/models/acs/acs-system.ts +25 -5
- package/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +10 -2
- package/src/lib/seam/connect/models/connect-webviews/connect-webview.ts +3 -1
- package/src/lib/seam/connect/models/devices/device-provider.ts +10 -4
- package/src/lib/seam/connect/models/devices/device.ts +90 -20
- package/src/lib/seam/connect/models/devices/phone.ts +12 -6
- package/src/lib/seam/connect/models/devices/unmanaged-device.ts +3 -1
- package/src/lib/seam/connect/models/events/access-codes.ts +18 -14
- package/src/lib/seam/connect/models/events/acs/entrances.ts +3 -5
- package/src/lib/seam/connect/models/events/acs/users.ts +6 -5
- package/src/lib/seam/connect/models/events/common.ts +32 -24
- package/src/lib/seam/connect/models/thermostats/modes.ts +15 -16
- package/src/lib/seam/connect/models/user-identities/user-identity.ts +9 -2
- package/src/lib/seam/connect/openapi.ts +641 -96
- package/src/lib/seam/connect/route-types.ts +872 -15
package/package.json
CHANGED
|
@@ -134,7 +134,7 @@ const common_acs_access_group = z.object({
|
|
|
134
134
|
deprecated: Use \`external_type_display_name\`.
|
|
135
135
|
---
|
|
136
136
|
`),
|
|
137
|
-
display_name: z.string(),
|
|
137
|
+
display_name: z.string().describe('Display name for the access group.'),
|
|
138
138
|
external_type: acs_access_group_external_type.describe(
|
|
139
139
|
'Brand-specific terminology for the access group type.',
|
|
140
140
|
),
|
|
@@ -166,7 +166,9 @@ const common_acs_access_group = z.object({
|
|
|
166
166
|
})
|
|
167
167
|
|
|
168
168
|
export const acs_access_group = common_acs_access_group.extend({
|
|
169
|
-
is_managed: z
|
|
169
|
+
is_managed: z
|
|
170
|
+
.literal(true)
|
|
171
|
+
.describe('Indicates whether Seam manages the access group.'),
|
|
170
172
|
}).describe(`
|
|
171
173
|
---
|
|
172
174
|
route_path: /acs/access_groups
|
|
@@ -162,7 +162,11 @@ const common_acs_credential = z.object({
|
|
|
162
162
|
.describe(
|
|
163
163
|
'ID of the [connected account](https://docs.seam.co/low-level-apis/access-systems/managing-credentials#connected-accounts) to which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) belongs.',
|
|
164
164
|
),
|
|
165
|
-
acs_credential_pool_id: z
|
|
165
|
+
acs_credential_pool_id: z
|
|
166
|
+
.string()
|
|
167
|
+
.uuid()
|
|
168
|
+
.optional()
|
|
169
|
+
.describe('ID of the credential pool to which the credential belongs.'),
|
|
166
170
|
acs_system_id: z
|
|
167
171
|
.string()
|
|
168
172
|
.uuid()
|
|
@@ -304,7 +308,9 @@ const common_acs_credential = z.object({
|
|
|
304
308
|
|
|
305
309
|
export const acs_credential = common_acs_credential.merge(
|
|
306
310
|
z.object({
|
|
307
|
-
is_managed: z
|
|
311
|
+
is_managed: z
|
|
312
|
+
.literal(true)
|
|
313
|
+
.describe('Indicates whether Seam manages the credential.'),
|
|
308
314
|
}),
|
|
309
315
|
).describe(`
|
|
310
316
|
---
|
|
@@ -340,7 +346,12 @@ export const acs_credential_on_encoder = z.object({
|
|
|
340
346
|
'Date and time at which the [credential](https://docs.seam.co/low-level-apis/access-systems/managing-credentials) was created.',
|
|
341
347
|
),
|
|
342
348
|
|
|
343
|
-
is_issued: z
|
|
349
|
+
is_issued: z
|
|
350
|
+
.boolean()
|
|
351
|
+
.nullable()
|
|
352
|
+
.describe(
|
|
353
|
+
'Indicates whether the credential has been issued (encoded onto a card).',
|
|
354
|
+
),
|
|
344
355
|
|
|
345
356
|
starts_at: z
|
|
346
357
|
.string()
|
|
@@ -63,7 +63,12 @@ const seam_bridge_disconnected = common_acs_system_error.extend({
|
|
|
63
63
|
|
|
64
64
|
const bridge_disconnected = common_acs_system_error.extend({
|
|
65
65
|
error_code: z.literal('bridge_disconnected').describe(error_code_description),
|
|
66
|
-
is_bridge_error: z
|
|
66
|
+
is_bridge_error: z
|
|
67
|
+
.boolean()
|
|
68
|
+
.optional()
|
|
69
|
+
.describe(
|
|
70
|
+
'Indicates whether the error is related to the [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge).',
|
|
71
|
+
),
|
|
67
72
|
})
|
|
68
73
|
.describe(`Indicates that the Seam API cannot communicate with [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge), for example, if Seam Bridge executable has stopped or if the computer running the Seam Bridge executable is offline.
|
|
69
74
|
See also [Troubleshooting Your Access Control System](https://docs.seam.co/low-level-apis/access-systems/troubleshooting-your-access-control-system#acs_system.errors.seam_bridge_disconnected).`)
|
|
@@ -251,8 +256,18 @@ export const acs_system = z
|
|
|
251
256
|
.describe(
|
|
252
257
|
'ID of the [access control system](https://docs.seam.co/low-level-apis/access-systems).',
|
|
253
258
|
),
|
|
254
|
-
acs_user_count: z
|
|
255
|
-
|
|
259
|
+
acs_user_count: z
|
|
260
|
+
.number()
|
|
261
|
+
.optional()
|
|
262
|
+
.describe(
|
|
263
|
+
'Number of users in the [access control system](https://docs.seam.co/low-level-apis/access-systems).',
|
|
264
|
+
),
|
|
265
|
+
acs_access_group_count: z
|
|
266
|
+
.number()
|
|
267
|
+
.optional()
|
|
268
|
+
.describe(
|
|
269
|
+
'Number of access groups in the [access control system](https://docs.seam.co/low-level-apis/access-systems).',
|
|
270
|
+
),
|
|
256
271
|
external_type: acs_system_external_type
|
|
257
272
|
.describe(
|
|
258
273
|
'Brand-specific terminology for the [access control system](https://docs.seam.co/low-level-apis/access-systems) type.',
|
|
@@ -285,7 +300,10 @@ export const acs_system = z
|
|
|
285
300
|
'IP address or hostname of the main Visionline server relative to [Seam Bridge](https://docs.seam.co/capability-guides/seam-bridge) on the local network.',
|
|
286
301
|
),
|
|
287
302
|
})
|
|
288
|
-
.optional()
|
|
303
|
+
.optional()
|
|
304
|
+
.describe(
|
|
305
|
+
'Visionline-specific metadata for the [access control system](https://docs.seam.co/low-level-apis/access-systems).',
|
|
306
|
+
),
|
|
289
307
|
system_type: acs_system_external_type
|
|
290
308
|
.describe(
|
|
291
309
|
`
|
|
@@ -300,7 +318,9 @@ export const acs_system = z
|
|
|
300
318
|
deprecated: Use \`external_type_display_name\`.
|
|
301
319
|
---
|
|
302
320
|
`),
|
|
303
|
-
location: acs_location
|
|
321
|
+
location: acs_location.describe(
|
|
322
|
+
'Location information for the [access control system](https://docs.seam.co/low-level-apis/access-systems).',
|
|
323
|
+
),
|
|
304
324
|
name: z
|
|
305
325
|
.string()
|
|
306
326
|
.describe(
|
|
@@ -221,7 +221,13 @@ const common_acs_user = z
|
|
|
221
221
|
.describe(
|
|
222
222
|
'ID of the [access system](https://docs.seam.co/low-level-apis/access-systems) that contains the [access system user](https://docs.seam.co/low-level-apis/access-systems/user-management).',
|
|
223
223
|
),
|
|
224
|
-
hid_acs_system_id: z
|
|
224
|
+
hid_acs_system_id: z
|
|
225
|
+
.string()
|
|
226
|
+
.uuid()
|
|
227
|
+
.optional()
|
|
228
|
+
.describe(
|
|
229
|
+
'ID of the HID access control system associated with the user.',
|
|
230
|
+
),
|
|
225
231
|
workspace_id: z
|
|
226
232
|
.string()
|
|
227
233
|
.uuid()
|
|
@@ -323,7 +329,9 @@ const common_acs_user = z
|
|
|
323
329
|
|
|
324
330
|
export const acs_user = common_acs_user.merge(
|
|
325
331
|
z.object({
|
|
326
|
-
is_managed: z
|
|
332
|
+
is_managed: z
|
|
333
|
+
.literal(true)
|
|
334
|
+
.describe('Indicates whether Seam manages the access system user.'),
|
|
327
335
|
}),
|
|
328
336
|
).describe(`
|
|
329
337
|
---
|
|
@@ -32,7 +32,9 @@ export const connect_webview = z.object({
|
|
|
32
32
|
.describe(
|
|
33
33
|
'URL for the Connect Webview. You use the URL to display the Connect Webview flow to your user.',
|
|
34
34
|
),
|
|
35
|
-
device_selection_mode: connect_webview_device_selection_mode
|
|
35
|
+
device_selection_mode: connect_webview_device_selection_mode.describe(
|
|
36
|
+
'Device selection mode of the Connect Webview. Supported values: `none`, `single`, `multiple`.',
|
|
37
|
+
),
|
|
36
38
|
|
|
37
39
|
// TODO: Use enum value.
|
|
38
40
|
accepted_providers: z
|
|
@@ -175,10 +175,16 @@ export const PUBLIC_PROVIDER_CATEGORIES: typeof PROVIDER_CATEGORIES =
|
|
|
175
175
|
|
|
176
176
|
export const device_provider = z
|
|
177
177
|
.object({
|
|
178
|
-
device_provider_name: z
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
178
|
+
device_provider_name: z
|
|
179
|
+
.enum(ALL_DEVICE_PROVIDERS)
|
|
180
|
+
.describe('Name of the device provider.'),
|
|
181
|
+
display_name: z.string().describe('Display name for the device provider.'),
|
|
182
|
+
image_url: z.string().describe('Image URL for the device provider.'),
|
|
183
|
+
provider_categories: z
|
|
184
|
+
.array(z.enum(PUBLIC_PROVIDER_CATEGORIES))
|
|
185
|
+
.describe(
|
|
186
|
+
'List of provider categories to which the device provider belongs, such as `stable`, `consumer_smartlocks`, `thermostats`, and so on.',
|
|
187
|
+
),
|
|
182
188
|
})
|
|
183
189
|
.extend(device_capability_flags.shape).describe(`
|
|
184
190
|
---
|
|
@@ -10,26 +10,96 @@ import { phone_specific_properties } from './phone-properties.js'
|
|
|
10
10
|
|
|
11
11
|
export const device_capability_flags = z
|
|
12
12
|
.object({
|
|
13
|
-
can_remotely_unlock: z
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
13
|
+
can_remotely_unlock: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.describe('Indicates whether the device supports remote unlocking.'),
|
|
16
|
+
can_remotely_lock: z
|
|
17
|
+
.boolean()
|
|
18
|
+
.describe('Indicates whether the device supports remote locking.'),
|
|
19
|
+
can_program_offline_access_codes: z
|
|
20
|
+
.boolean()
|
|
21
|
+
.describe(
|
|
22
|
+
'Indicates whether the device supports programming offline access codes.',
|
|
23
|
+
),
|
|
24
|
+
can_program_online_access_codes: z
|
|
25
|
+
.boolean()
|
|
26
|
+
.describe(
|
|
27
|
+
'Indicates whether the device supports programming online access codes.',
|
|
28
|
+
),
|
|
29
|
+
can_hvac_heat: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.describe('Indicates whether the thermostat supports heating.'),
|
|
32
|
+
can_hvac_cool: z
|
|
33
|
+
.boolean()
|
|
34
|
+
.describe('Indicates whether the thermostat supports cooling.'),
|
|
35
|
+
can_hvac_heat_cool: z
|
|
36
|
+
.boolean()
|
|
37
|
+
.describe(
|
|
38
|
+
'Indicates whether the thermostat supports simultaneous heating and cooling.',
|
|
39
|
+
),
|
|
40
|
+
can_turn_off_hvac: z
|
|
41
|
+
.boolean()
|
|
42
|
+
.describe('Indicates whether the thermostat can be turned off.'),
|
|
43
|
+
can_simulate_removal: z
|
|
44
|
+
.boolean()
|
|
45
|
+
.describe(
|
|
46
|
+
'Indicates whether the device supports simulating removal in a sandbox.',
|
|
47
|
+
),
|
|
48
|
+
can_simulate_connection: z
|
|
49
|
+
.boolean()
|
|
50
|
+
.describe(
|
|
51
|
+
'Indicates whether the device supports simulating connection in a sandbox.',
|
|
52
|
+
),
|
|
53
|
+
can_simulate_disconnection: z
|
|
54
|
+
.boolean()
|
|
55
|
+
.describe(
|
|
56
|
+
'Indicates whether the device supports simulating disconnection in a sandbox.',
|
|
57
|
+
),
|
|
58
|
+
can_unlock_with_code: z
|
|
59
|
+
.boolean()
|
|
60
|
+
.describe(
|
|
61
|
+
'Indicates whether the lock supports unlocking with an access code.',
|
|
62
|
+
),
|
|
63
|
+
can_run_thermostat_programs: z
|
|
64
|
+
.boolean()
|
|
65
|
+
.describe(
|
|
66
|
+
'Indicates whether the thermostat supports running climate programs.',
|
|
67
|
+
),
|
|
68
|
+
can_program_thermostat_programs_as_weekday_weekend: z
|
|
69
|
+
.boolean()
|
|
70
|
+
.describe(
|
|
71
|
+
'Indicates whether the thermostat supports weekday/weekend climate programs.',
|
|
72
|
+
),
|
|
73
|
+
can_program_thermostat_programs_as_different_each_day: z
|
|
74
|
+
.boolean()
|
|
75
|
+
.describe(
|
|
76
|
+
'Indicates whether the thermostat supports different climate programs for each day of the week.',
|
|
77
|
+
),
|
|
78
|
+
can_program_thermostat_programs_as_same_each_day: z
|
|
79
|
+
.boolean()
|
|
80
|
+
.describe(
|
|
81
|
+
'Indicates whether the thermostat supports a single climate program applied to every day.',
|
|
82
|
+
),
|
|
83
|
+
can_simulate_hub_connection: z
|
|
84
|
+
.boolean()
|
|
85
|
+
.describe(
|
|
86
|
+
'Indicates whether the hub supports simulating connection in a sandbox.',
|
|
87
|
+
),
|
|
88
|
+
can_simulate_hub_disconnection: z
|
|
89
|
+
.boolean()
|
|
90
|
+
.describe(
|
|
91
|
+
'Indicates whether the hub supports simulating disconnection in a sandbox.',
|
|
92
|
+
),
|
|
93
|
+
can_simulate_paid_subscription: z
|
|
94
|
+
.boolean()
|
|
95
|
+
.describe(
|
|
96
|
+
'Indicates whether the device supports simulating a paid subscription in a sandbox.',
|
|
97
|
+
),
|
|
98
|
+
can_configure_auto_lock: z
|
|
99
|
+
.boolean()
|
|
100
|
+
.describe(
|
|
101
|
+
'Indicates whether the lock supports configuring automatic locking.',
|
|
102
|
+
),
|
|
33
103
|
})
|
|
34
104
|
.partial()
|
|
35
105
|
|
|
@@ -37,21 +37,27 @@ export const phone = z.object({
|
|
|
37
37
|
errors: z
|
|
38
38
|
.array(
|
|
39
39
|
z.object({
|
|
40
|
-
error_code: z
|
|
41
|
-
|
|
40
|
+
error_code: z
|
|
41
|
+
.string()
|
|
42
|
+
.describe('Unique identifier of the type of error.'),
|
|
43
|
+
message: z.string().describe('Detailed description of the error.'),
|
|
42
44
|
}),
|
|
43
45
|
)
|
|
44
46
|
.describe('Errors associated with the phone.'),
|
|
45
47
|
warnings: z
|
|
46
48
|
.array(
|
|
47
49
|
z.object({
|
|
48
|
-
warning_code: z
|
|
49
|
-
|
|
50
|
+
warning_code: z
|
|
51
|
+
.string()
|
|
52
|
+
.describe('Unique identifier of the type of warning.'),
|
|
53
|
+
message: z.string().describe('Detailed description of the warning.'),
|
|
50
54
|
}),
|
|
51
55
|
)
|
|
52
56
|
.describe('Warnings associated with the phone.'),
|
|
53
|
-
device_type: phone_device_type
|
|
54
|
-
|
|
57
|
+
device_type: phone_device_type.describe(
|
|
58
|
+
'Type of the phone device, such as `ios_phone` or `android_phone`.',
|
|
59
|
+
),
|
|
60
|
+
properties: phone_specific_properties.describe('Properties of the phone.'),
|
|
55
61
|
}).describe(`
|
|
56
62
|
---
|
|
57
63
|
route_path: /phones
|
|
@@ -20,7 +20,9 @@ export const unmanaged_device = device
|
|
|
20
20
|
custom_metadata: true,
|
|
21
21
|
})
|
|
22
22
|
.extend({
|
|
23
|
-
is_managed: z
|
|
23
|
+
is_managed: z
|
|
24
|
+
.literal(false)
|
|
25
|
+
.describe('Indicates that Seam does not manage the device.'),
|
|
24
26
|
properties: common_device_properties.pick({
|
|
25
27
|
accessory_keypad: true,
|
|
26
28
|
name: true,
|
|
@@ -69,19 +69,21 @@ export const access_code_changed_event = access_code_event.extend({
|
|
|
69
69
|
event_type: z.literal('access_code.changed'),
|
|
70
70
|
changed_properties: z
|
|
71
71
|
.array(
|
|
72
|
-
z
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
72
|
+
z
|
|
73
|
+
.object({
|
|
74
|
+
property: z
|
|
75
|
+
.string()
|
|
76
|
+
.describe('Name of the property that changed (e.g. `code`).'),
|
|
77
|
+
from: z
|
|
78
|
+
.string()
|
|
79
|
+
.nullable()
|
|
80
|
+
.describe('Previous value of the property, or null if not set.'),
|
|
81
|
+
to: z
|
|
82
|
+
.string()
|
|
83
|
+
.nullable()
|
|
84
|
+
.describe('New value of the property, or null if cleared.'),
|
|
85
|
+
})
|
|
86
|
+
.describe('Record describing a single changed property.'),
|
|
85
87
|
)
|
|
86
88
|
.optional()
|
|
87
89
|
.describe('List of properties that changed on the access code.'),
|
|
@@ -324,7 +326,9 @@ export type AccessCodeDeletedExternalToSeamEvent = z.infer<
|
|
|
324
326
|
export const access_code_backup_access_code_pulled_event =
|
|
325
327
|
access_code_event.extend({
|
|
326
328
|
event_type: z.literal('access_code.backup_access_code_pulled'),
|
|
327
|
-
backup_access_code_id: z
|
|
329
|
+
backup_access_code_id: z
|
|
330
|
+
.string()
|
|
331
|
+
.describe('ID of the backup access code that was pulled from the pool.'),
|
|
328
332
|
}).describe(`
|
|
329
333
|
---
|
|
330
334
|
route_path: /access_codes
|
|
@@ -2,11 +2,9 @@ import { z } from 'zod'
|
|
|
2
2
|
|
|
3
3
|
import { common_acs_event } from './common.js'
|
|
4
4
|
|
|
5
|
-
const acs_entrance_event = common_acs_event
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
})
|
|
9
|
-
.describe('ID of the affected entrance.')
|
|
5
|
+
const acs_entrance_event = common_acs_event.extend({
|
|
6
|
+
acs_entrance_id: z.string().uuid().describe('ID of the affected entrance.'),
|
|
7
|
+
})
|
|
10
8
|
|
|
11
9
|
export const acs_entrance_added_event = acs_entrance_event.extend({
|
|
12
10
|
event_type: z.literal('acs_entrance.added'),
|
|
@@ -2,11 +2,12 @@ import { z } from 'zod'
|
|
|
2
2
|
|
|
3
3
|
import { common_acs_event } from './common.js'
|
|
4
4
|
|
|
5
|
-
const acs_user_event = common_acs_event
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
const acs_user_event = common_acs_event.extend({
|
|
6
|
+
acs_user_id: z
|
|
7
|
+
.string()
|
|
8
|
+
.uuid()
|
|
9
|
+
.describe('ID of the affected access system user.'),
|
|
10
|
+
})
|
|
10
11
|
|
|
11
12
|
export const acs_user_deleted_event = acs_user_event.extend({
|
|
12
13
|
event_type: z.literal('acs_user.deleted'),
|
|
@@ -21,28 +21,36 @@ const error_code_description =
|
|
|
21
21
|
const warning_code_description =
|
|
22
22
|
'Unique identifier of the type of warning. Enables quick recognition and categorization of the issue.'
|
|
23
23
|
|
|
24
|
-
export const common_event_error = z
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
24
|
+
export const common_event_error = z
|
|
25
|
+
.object({
|
|
26
|
+
created_at: z
|
|
27
|
+
.string()
|
|
28
|
+
.datetime()
|
|
29
|
+
.describe('Date and time at which Seam created the error.'),
|
|
30
|
+
message: z
|
|
31
|
+
.string()
|
|
32
|
+
.describe(
|
|
33
|
+
'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.',
|
|
34
|
+
),
|
|
35
|
+
error_code: z.string().describe(error_code_description),
|
|
36
|
+
})
|
|
37
|
+
.describe(
|
|
38
|
+
'Error associated with the resource, including the error code, message, and creation timestamp.',
|
|
39
|
+
)
|
|
36
40
|
|
|
37
|
-
export const common_event_warning = z
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
41
|
+
export const common_event_warning = z
|
|
42
|
+
.object({
|
|
43
|
+
created_at: z
|
|
44
|
+
.string()
|
|
45
|
+
.datetime()
|
|
46
|
+
.describe('Date and time at which Seam created the warning.'),
|
|
47
|
+
message: z
|
|
48
|
+
.string()
|
|
49
|
+
.describe(
|
|
50
|
+
'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.',
|
|
51
|
+
),
|
|
52
|
+
warning_code: z.string().describe(warning_code_description),
|
|
53
|
+
})
|
|
54
|
+
.describe(
|
|
55
|
+
'Warning associated with the resource, including the warning code, message, and creation timestamp.',
|
|
56
|
+
)
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { z } from 'zod'
|
|
2
2
|
|
|
3
|
-
export const hvac_mode_setting = z
|
|
4
|
-
'off',
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
'eco',
|
|
9
|
-
])
|
|
3
|
+
export const hvac_mode_setting = z
|
|
4
|
+
.enum(['off', 'heat', 'cool', 'heat_cool', 'eco'])
|
|
5
|
+
.describe(
|
|
6
|
+
'HVAC mode setting for the thermostat, such as `heat`, `cool`, `heat_cool`, `eco`, or `off`.',
|
|
7
|
+
)
|
|
10
8
|
|
|
11
9
|
export type HvacModeSetting = z.infer<typeof hvac_mode_setting>
|
|
12
10
|
|
|
13
|
-
export const fan_mode_setting = z
|
|
11
|
+
export const fan_mode_setting = z
|
|
12
|
+
.enum(['auto', 'on', 'circulate'])
|
|
13
|
+
.describe(
|
|
14
|
+
'Fan mode setting for the thermostat, such as `auto`, `on`, or `circulate`.',
|
|
15
|
+
)
|
|
14
16
|
|
|
15
17
|
export type FanModeSetting = z.infer<typeof fan_mode_setting>
|
|
16
18
|
|
|
@@ -20,13 +22,10 @@ export type AvailableFanModeSettings = z.infer<
|
|
|
20
22
|
typeof available_fan_mode_settings
|
|
21
23
|
>
|
|
22
24
|
|
|
23
|
-
export const climate_preset_mode = z
|
|
24
|
-
'home',
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
'occupied',
|
|
29
|
-
'unoccupied',
|
|
30
|
-
])
|
|
25
|
+
export const climate_preset_mode = z
|
|
26
|
+
.enum(['home', 'away', 'wake', 'sleep', 'occupied', 'unoccupied'])
|
|
27
|
+
.describe(
|
|
28
|
+
'Climate preset mode for the thermostat, such as `home`, `away`, `wake`, `sleep`, `occupied`, or `unoccupied`.',
|
|
29
|
+
)
|
|
31
30
|
|
|
32
31
|
export type ClimatePresetMode = z.infer<typeof climate_preset_mode>
|
|
@@ -119,8 +119,15 @@ export const user_identity = z.object({
|
|
|
119
119
|
.describe(
|
|
120
120
|
'Unique phone number for the user identity in [E.164 format](https://www.itu.int/rec/T-REC-E.164/en) (for example, +15555550100).',
|
|
121
121
|
),
|
|
122
|
-
display_name: z
|
|
123
|
-
|
|
122
|
+
display_name: z
|
|
123
|
+
.string()
|
|
124
|
+
.min(1)
|
|
125
|
+
.describe('Display name for the user identity.'),
|
|
126
|
+
full_name: z
|
|
127
|
+
.string()
|
|
128
|
+
.min(1)
|
|
129
|
+
.nullable()
|
|
130
|
+
.describe('Full name of the user associated with the user identity.'),
|
|
124
131
|
created_at: z
|
|
125
132
|
.string()
|
|
126
133
|
.datetime()
|