@seamapi/types 1.916.0 → 1.918.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 (61) hide show
  1. package/dist/connect.cjs +645 -162
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +987 -23
  4. package/dist/index.cjs +645 -162
  5. package/dist/index.cjs.map +1 -1
  6. package/lib/seam/connect/models/acs/acs-access-group.js +4 -2
  7. package/lib/seam/connect/models/acs/acs-access-group.js.map +1 -1
  8. package/lib/seam/connect/models/acs/acs-credential.js +12 -3
  9. package/lib/seam/connect/models/acs/acs-credential.js.map +1 -1
  10. package/lib/seam/connect/models/acs/acs-system.js +15 -5
  11. package/lib/seam/connect/models/acs/acs-system.js.map +1 -1
  12. package/lib/seam/connect/models/acs/acs-users/acs-user.js +8 -2
  13. package/lib/seam/connect/models/acs/acs-users/acs-user.js.map +1 -1
  14. package/lib/seam/connect/models/connect-webviews/connect-webview.js +1 -1
  15. package/lib/seam/connect/models/connect-webviews/connect-webview.js.map +1 -1
  16. package/lib/seam/connect/models/devices/device-provider.js +8 -4
  17. package/lib/seam/connect/models/devices/device-provider.js.map +1 -1
  18. package/lib/seam/connect/models/devices/device.js +60 -20
  19. package/lib/seam/connect/models/devices/device.js.map +1 -1
  20. package/lib/seam/connect/models/devices/phone.js +10 -6
  21. package/lib/seam/connect/models/devices/phone.js.map +1 -1
  22. package/lib/seam/connect/models/devices/unmanaged-device.js +3 -1
  23. package/lib/seam/connect/models/devices/unmanaged-device.js.map +1 -1
  24. package/lib/seam/connect/models/events/access-codes.js +7 -3
  25. package/lib/seam/connect/models/events/access-codes.js.map +1 -1
  26. package/lib/seam/connect/models/events/acs/entrances.js +3 -5
  27. package/lib/seam/connect/models/events/acs/entrances.js.map +1 -1
  28. package/lib/seam/connect/models/events/acs/users.js +6 -5
  29. package/lib/seam/connect/models/events/acs/users.js.map +1 -1
  30. package/lib/seam/connect/models/events/common.js +8 -4
  31. package/lib/seam/connect/models/events/common.js.map +1 -1
  32. package/lib/seam/connect/models/events/devices.d.ts +30 -8
  33. package/lib/seam/connect/models/events/devices.js +25 -0
  34. package/lib/seam/connect/models/events/devices.js.map +1 -1
  35. package/lib/seam/connect/models/events/seam-event.d.ts +15 -4
  36. package/lib/seam/connect/models/thermostats/modes.js +9 -16
  37. package/lib/seam/connect/models/thermostats/modes.js.map +1 -1
  38. package/lib/seam/connect/models/user-identities/user-identity.js +9 -2
  39. package/lib/seam/connect/models/user-identities/user-identity.js.map +1 -1
  40. package/lib/seam/connect/openapi.js +514 -97
  41. package/lib/seam/connect/openapi.js.map +1 -1
  42. package/lib/seam/connect/route-types.d.ts +972 -19
  43. package/package.json +1 -1
  44. package/src/lib/seam/connect/models/acs/acs-access-group.ts +4 -2
  45. package/src/lib/seam/connect/models/acs/acs-credential.ts +14 -3
  46. package/src/lib/seam/connect/models/acs/acs-system.ts +25 -5
  47. package/src/lib/seam/connect/models/acs/acs-users/acs-user.ts +10 -2
  48. package/src/lib/seam/connect/models/connect-webviews/connect-webview.ts +3 -1
  49. package/src/lib/seam/connect/models/devices/device-provider.ts +10 -4
  50. package/src/lib/seam/connect/models/devices/device.ts +90 -20
  51. package/src/lib/seam/connect/models/devices/phone.ts +12 -6
  52. package/src/lib/seam/connect/models/devices/unmanaged-device.ts +3 -1
  53. package/src/lib/seam/connect/models/events/access-codes.ts +18 -14
  54. package/src/lib/seam/connect/models/events/acs/entrances.ts +3 -5
  55. package/src/lib/seam/connect/models/events/acs/users.ts +6 -5
  56. package/src/lib/seam/connect/models/events/common.ts +32 -24
  57. package/src/lib/seam/connect/models/events/devices.ts +25 -0
  58. package/src/lib/seam/connect/models/thermostats/modes.ts +15 -16
  59. package/src/lib/seam/connect/models/user-identities/user-identity.ts +9 -2
  60. package/src/lib/seam/connect/openapi.ts +665 -97
  61. package/src/lib/seam/connect/route-types.ts +972 -19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.916.0",
3
+ "version": "1.918.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -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.literal(true),
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.string().uuid().optional(),
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.literal(true),
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.boolean().nullable(),
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.boolean().optional(),
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.number().optional(),
255
- acs_access_group_count: z.number().optional(),
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.string().uuid().optional(),
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.literal(true),
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.enum(ALL_DEVICE_PROVIDERS),
179
- display_name: z.string(),
180
- image_url: z.string(),
181
- provider_categories: z.array(z.enum(PUBLIC_PROVIDER_CATEGORIES)),
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.boolean(),
14
- can_remotely_lock: z.boolean(),
15
- can_program_offline_access_codes: z.boolean(),
16
- can_program_online_access_codes: z.boolean(),
17
- can_hvac_heat: z.boolean(),
18
- can_hvac_cool: z.boolean(),
19
- can_hvac_heat_cool: z.boolean(),
20
- can_turn_off_hvac: z.boolean(),
21
- can_simulate_removal: z.boolean(),
22
- can_simulate_connection: z.boolean(),
23
- can_simulate_disconnection: z.boolean(),
24
- can_unlock_with_code: z.boolean(),
25
- can_run_thermostat_programs: z.boolean(),
26
- can_program_thermostat_programs_as_weekday_weekend: z.boolean(),
27
- can_program_thermostat_programs_as_different_each_day: z.boolean(),
28
- can_program_thermostat_programs_as_same_each_day: z.boolean(),
29
- can_simulate_hub_connection: z.boolean(),
30
- can_simulate_hub_disconnection: z.boolean(),
31
- can_simulate_paid_subscription: z.boolean(),
32
- can_configure_auto_lock: z.boolean(),
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.string(),
41
- message: z.string(),
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.string(),
49
- message: z.string(),
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
- properties: phone_specific_properties,
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.literal(false),
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.object({
73
- property: z
74
- .string()
75
- .describe('Name of the property that changed (e.g. `code`).'),
76
- from: z
77
- .string()
78
- .nullable()
79
- .describe('Previous value of the property, or null if not set.'),
80
- to: z
81
- .string()
82
- .nullable()
83
- .describe('New value of the property, or null if cleared.'),
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.string(),
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
- .extend({
7
- acs_entrance_id: z.string().uuid(),
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
- .extend({
7
- acs_user_id: z.string().uuid(),
8
- })
9
- .describe('ID of the affected access system user.')
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.object({
25
- created_at: z
26
- .string()
27
- .datetime()
28
- .describe('Date and time at which Seam created the error.'),
29
- message: z
30
- .string()
31
- .describe(
32
- 'Detailed description of the error. Provides insights into the issue and potentially how to rectify it.',
33
- ),
34
- error_code: z.string().describe(error_code_description),
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.object({
38
- created_at: z
39
- .string()
40
- .datetime()
41
- .describe('Date and time at which Seam created the warning.'),
42
- message: z
43
- .string()
44
- .describe(
45
- 'Detailed description of the warning. Provides insights into the issue and potentially how to rectify it.',
46
- ),
47
- warning_code: z.string().describe(warning_code_description),
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
+ )
@@ -518,6 +518,31 @@ export const lock_access_denied_event = device_event.extend({
518
518
  .uuid()
519
519
  .optional()
520
520
  .describe('ID of the access code that was used in the unlock attempts.'),
521
+ user_identity_id: z.string().uuid().optional().describe(`
522
+ undocumented: Unreleased.
523
+ ---
524
+ ID of the user identity associated with the access-denied event.
525
+ `),
526
+ acs_system_id: z.string().uuid().optional().describe(`
527
+ undocumented: Unreleased.
528
+ ---
529
+ ID of the ACS system associated with the access-denied event.
530
+ `),
531
+ acs_user_id: z.string().uuid().optional().describe(`
532
+ undocumented: Unreleased.
533
+ ---
534
+ ID of the ACS user associated with the access-denied event.
535
+ `),
536
+ acs_entrance_id: z.string().uuid().optional().describe(`
537
+ undocumented: Unreleased.
538
+ ---
539
+ ID of the ACS entrance associated with the access-denied event.
540
+ `),
541
+ device_id: z
542
+ .string()
543
+ .uuid()
544
+ .optional()
545
+ .describe('ID of the affected device.'),
521
546
  }).describe(`
522
547
  ---
523
548
  route_path: /locks
@@ -1,16 +1,18 @@
1
1
  import { z } from 'zod'
2
2
 
3
- export const hvac_mode_setting = z.enum([
4
- 'off',
5
- 'heat',
6
- 'cool',
7
- 'heat_cool',
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.enum(['auto', 'on', 'circulate'])
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.enum([
24
- 'home',
25
- 'away',
26
- 'wake',
27
- 'sleep',
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.string().min(1),
123
- full_name: z.string().min(1).nullable(),
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()