@seamapi/types 1.180.0 → 1.182.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 (73) hide show
  1. package/dist/connect.cjs +10 -0
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +28 -2
  4. package/lib/seam/connect/internal/enums.d.ts +1 -1
  5. package/lib/seam/connect/internal/enums.js +1 -1
  6. package/lib/seam/connect/internal/enums.js.map +1 -1
  7. package/lib/seam/connect/internal/schemas.d.ts +1 -1
  8. package/lib/seam/connect/internal/schemas.js +1 -1
  9. package/lib/seam/connect/internal/schemas.js.map +1 -1
  10. package/lib/seam/connect/models/acs/access_group.d.ts +3 -0
  11. package/lib/seam/connect/models/acs/access_group.js +1 -0
  12. package/lib/seam/connect/models/acs/access_group.js.map +1 -1
  13. package/lib/seam/connect/models/acs/credential.d.ts +2 -2
  14. package/lib/seam/connect/models/acs/credential_pool.d.ts +2 -2
  15. package/lib/seam/connect/models/acs/seam-bridge.d.ts +68 -33
  16. package/lib/seam/connect/models/acs/seam-bridge.js +17 -12
  17. package/lib/seam/connect/models/acs/seam-bridge.js.map +1 -1
  18. package/lib/seam/connect/models/acs/user.d.ts +3 -3
  19. package/lib/seam/connect/models/connected-accounts/connected-account.d.ts +62 -0
  20. package/lib/seam/connect/models/connected-accounts/connected-account.js +22 -0
  21. package/lib/seam/connect/models/connected-accounts/connected-account.js.map +1 -0
  22. package/lib/seam/connect/models/connected-accounts/index.d.ts +1 -0
  23. package/lib/seam/connect/models/connected-accounts/index.js +2 -0
  24. package/lib/seam/connect/models/connected-accounts/index.js.map +1 -0
  25. package/lib/seam/connect/models/devices/device-provider.d.ts +69 -0
  26. package/lib/seam/connect/models/devices/device-provider.js +100 -0
  27. package/lib/seam/connect/models/devices/device-provider.js.map +1 -0
  28. package/lib/seam/connect/models/devices/index.d.ts +2 -0
  29. package/lib/seam/connect/models/devices/index.js +2 -0
  30. package/lib/seam/connect/models/devices/index.js.map +1 -1
  31. package/lib/seam/connect/models/devices/managed-device.d.ts +2 -2
  32. package/lib/seam/connect/models/devices/noise-threshold.d.ts +26 -0
  33. package/lib/seam/connect/models/devices/noise-threshold.js +11 -0
  34. package/lib/seam/connect/models/devices/noise-threshold.js.map +1 -0
  35. package/lib/seam/connect/models/devices/phone.d.ts +2 -2
  36. package/lib/seam/connect/models/devices/unmanaged-device.d.ts +2 -2
  37. package/lib/seam/connect/models/events/acs/index.d.ts +21 -0
  38. package/lib/seam/connect/models/events/acs/index.js +2 -0
  39. package/lib/seam/connect/models/events/acs/index.js.map +1 -1
  40. package/lib/seam/connect/models/events/acs/systems.d.ts +46 -0
  41. package/lib/seam/connect/models/events/acs/systems.js +10 -0
  42. package/lib/seam/connect/models/events/acs/systems.js.map +1 -0
  43. package/lib/seam/connect/models/events/seam-event.d.ts +21 -0
  44. package/lib/seam/connect/models/index.d.ts +2 -0
  45. package/lib/seam/connect/models/index.js +2 -0
  46. package/lib/seam/connect/models/index.js.map +1 -1
  47. package/lib/seam/connect/models/webhooks/index.d.ts +1 -0
  48. package/lib/seam/connect/models/webhooks/index.js +2 -0
  49. package/lib/seam/connect/models/webhooks/index.js.map +1 -0
  50. package/lib/seam/connect/models/webhooks/webhook.d.ts +17 -0
  51. package/lib/seam/connect/models/webhooks/webhook.js +8 -0
  52. package/lib/seam/connect/models/webhooks/webhook.js.map +1 -0
  53. package/lib/seam/connect/openapi.d.ts +3 -0
  54. package/lib/seam/connect/openapi.js +4 -0
  55. package/lib/seam/connect/openapi.js.map +1 -1
  56. package/lib/seam/connect/route-types.d.ts +4 -2
  57. package/package.json +1 -1
  58. package/src/lib/seam/connect/internal/enums.ts +3 -0
  59. package/src/lib/seam/connect/internal/schemas.ts +4 -0
  60. package/src/lib/seam/connect/models/acs/access_group.ts +1 -0
  61. package/src/lib/seam/connect/models/acs/seam-bridge.ts +18 -12
  62. package/src/lib/seam/connect/models/connected-accounts/connected-account.ts +23 -0
  63. package/src/lib/seam/connect/models/connected-accounts/index.ts +1 -0
  64. package/src/lib/seam/connect/models/devices/device-provider.ts +116 -0
  65. package/src/lib/seam/connect/models/devices/index.ts +2 -0
  66. package/src/lib/seam/connect/models/devices/noise-threshold.ts +11 -0
  67. package/src/lib/seam/connect/models/events/acs/index.ts +2 -0
  68. package/src/lib/seam/connect/models/events/acs/systems.ts +15 -0
  69. package/src/lib/seam/connect/models/index.ts +2 -0
  70. package/src/lib/seam/connect/models/webhooks/index.ts +1 -0
  71. package/src/lib/seam/connect/models/webhooks/webhook.ts +8 -0
  72. package/src/lib/seam/connect/openapi.ts +4 -0
  73. package/src/lib/seam/connect/route-types.ts +4 -0
@@ -2921,6 +2921,7 @@ export interface Routes {
2921
2921
  ---
2922
2922
  */
2923
2923
  access_group_type_display_name: string;
2924
+ display_name: string;
2924
2925
  external_type: 'pti_unit' | 'pti_access_level' | 'salto_access_group' | 'brivo_group';
2925
2926
  external_type_display_name: string;
2926
2927
  created_at: string;
@@ -2955,6 +2956,7 @@ export interface Routes {
2955
2956
  ---
2956
2957
  */
2957
2958
  access_group_type_display_name: string;
2959
+ display_name: string;
2958
2960
  external_type: 'pti_unit' | 'pti_access_level' | 'salto_access_group' | 'brivo_group';
2959
2961
  external_type_display_name: string;
2960
2962
  created_at: string;
@@ -6934,8 +6936,8 @@ export interface Routes {
6934
6936
  device_ids?: string[] | undefined;
6935
6937
  access_code_id?: string | undefined;
6936
6938
  access_code_ids?: string[] | undefined;
6937
- event_type?: ('device.accessory_keypad_connected' | 'device.accessory_keypad_disconnected' | 'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.deleted' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'connected_account.completed_first_sync_after_reconnection' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled' | 'acs_user.deleted' | 'acs_credential.deleted' | 'enrollment_automation.deleted' | 'client_session.deleted' | 'action_attempt.lock_door.succeeded' | 'action_attempt.lock_door.failed' | 'action_attempt.unlock_door.succeeded' | 'action_attempt.unlock_door.failed') | undefined;
6938
- event_types?: Array<'device.accessory_keypad_connected' | 'device.accessory_keypad_disconnected' | 'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.deleted' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'connected_account.completed_first_sync_after_reconnection' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled' | 'acs_user.deleted' | 'acs_credential.deleted' | 'enrollment_automation.deleted' | 'client_session.deleted' | 'action_attempt.lock_door.succeeded' | 'action_attempt.lock_door.failed' | 'action_attempt.unlock_door.succeeded' | 'action_attempt.unlock_door.failed'> | undefined;
6939
+ event_type?: ('device.accessory_keypad_connected' | 'device.accessory_keypad_disconnected' | 'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.deleted' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'connected_account.completed_first_sync_after_reconnection' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled' | 'acs_system.connected' | 'acs_user.deleted' | 'acs_credential.deleted' | 'enrollment_automation.deleted' | 'client_session.deleted' | 'action_attempt.lock_door.succeeded' | 'action_attempt.lock_door.failed' | 'action_attempt.unlock_door.succeeded' | 'action_attempt.unlock_door.failed') | undefined;
6940
+ event_types?: Array<'device.accessory_keypad_connected' | 'device.accessory_keypad_disconnected' | 'device.connected' | 'device.unmanaged.connected' | 'device.disconnected' | 'device.unmanaged.disconnected' | 'device.converted_to_unmanaged' | 'device.unmanaged.converted_to_managed' | 'device.removed' | 'device.deleted' | 'device.tampered' | 'device.low_battery' | 'device.battery_status_changed' | 'device.third_party_integration_detected' | 'device.third_party_integration_no_longer_detected' | 'device.salto.privacy_mode_activated' | 'device.salto.privacy_mode_deactivated' | 'device.connection_became_flaky' | 'device.connection_stabilized' | 'device.error.subscription_required' | 'device.error.subscription_required.resolved' | 'access_code.created' | 'access_code.changed' | 'access_code.scheduled_on_device' | 'access_code.set_on_device' | 'access_code.deleted' | 'access_code.removed_from_device' | 'access_code.failed_to_set_on_device' | 'access_code.delay_in_setting_on_device' | 'access_code.failed_to_remove_from_device' | 'access_code.delay_in_removing_from_device' | 'access_code.deleted_external_to_seam' | 'access_code.modified_external_to_seam' | 'access_code.unmanaged.converted_to_managed' | 'access_code.unmanaged.failed_to_convert_to_managed' | 'access_code.unmanaged.created' | 'access_code.unmanaged.removed' | 'lock.locked' | 'lock.unlocked' | 'phone.deactivated' | 'connected_account.connected' | 'connected_account.successful_login' | 'connected_account.created' | 'connected_account.deleted' | 'connected_account.disconnected' | 'connected_account.completed_first_sync' | 'connected_account.completed_first_sync_after_reconnection' | 'noise_sensor.noise_threshold_triggered' | 'access_code.backup_access_code_pulled' | 'acs_system.connected' | 'acs_user.deleted' | 'acs_credential.deleted' | 'enrollment_automation.deleted' | 'client_session.deleted' | 'action_attempt.lock_door.succeeded' | 'action_attempt.lock_door.failed' | 'action_attempt.unlock_door.succeeded' | 'action_attempt.unlock_door.failed'> | undefined;
6939
6941
  connected_account_id?: string | undefined;
6940
6942
  limit?: number;
6941
6943
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.180.0",
3
+ "version": "1.182.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -1,9 +1,12 @@
1
1
  export {
2
+ ALL_DEVICE_PROVIDERS,
2
3
  LOCK_DEVICE_TYPE,
3
4
  LOCK_DEVICE_TYPE_LIST,
4
5
  NOISE_SENSOR_DEVICE_TYPE,
5
6
  NOISE_SENSOR_DEVICE_TYPE_LIST,
6
7
  PHONE_DEVICE_TYPE,
8
+ PROVIDER_CATEGORIES,
9
+ PUBLIC_PROVIDER_CATEGORIES,
7
10
  THERMOSTAT_DEVICE_TYPE,
8
11
  THERMOSTAT_DEVICE_TYPE_LIST,
9
12
  } from '../models/index.js'
@@ -21,9 +21,11 @@ export {
21
21
  climate_setting_schedule,
22
22
  common_device_properties,
23
23
  connect_webview_device_selection_mode,
24
+ connected_account,
24
25
  custom_metadata_input,
25
26
  device_capability_flags,
26
27
  device_metadata,
28
+ device_provider,
27
29
  dormakaba_oracode_time_slot,
28
30
  enrollment_automation,
29
31
  fan_mode_setting,
@@ -31,6 +33,7 @@ export {
31
33
  managed_access_code,
32
34
  managed_device,
33
35
  noise_sensor_device_type,
36
+ noise_threshold,
34
37
  phone,
35
38
  phone_number,
36
39
  thermostat_capability_properties,
@@ -38,5 +41,6 @@ export {
38
41
  unmanaged_access_code,
39
42
  unmanaged_device,
40
43
  user_identity,
44
+ webhook,
41
45
  } from '../models/index.js'
42
46
  export * from '../schemas.js'
@@ -27,6 +27,7 @@ export const acs_access_group = z.object({
27
27
  deprecated: use external_type_display_name
28
28
  ---
29
29
  `),
30
+ display_name: z.string(),
30
31
  external_type: acs_access_group_external_type,
31
32
  external_type_display_name: z.string(),
32
33
  created_at: z.string().datetime(),
@@ -5,26 +5,32 @@ const common_seam_bridge_error = z.object({
5
5
  message: z.string(),
6
6
  })
7
7
 
8
- const connection_failure = common_seam_bridge_error.extend({
9
- error_code: z.literal('connection_failure'),
8
+ const seam_bridge_unreachable = common_seam_bridge_error.extend({
9
+ error_code: z.literal('seam_bridge_unreachable'),
10
10
  })
11
- const bridge_tunnel_failed = common_seam_bridge_error.extend({
12
- error_code: z.literal('bridge_tunnel_failed'),
11
+ const failed_to_create_tunnel = common_seam_bridge_error.extend({
12
+ error_code: z.literal('failed_to_create_tunnel'),
13
13
  })
14
- const bridge_proxy_failure = common_seam_bridge_error.extend({
15
- error_code: z.literal('bridge_proxy_failure'),
14
+ const failed_to_create_proxy = common_seam_bridge_error.extend({
15
+ error_code: z.literal('failed_to_create_proxy'),
16
+ })
17
+
18
+ const managed_by_other_account = common_seam_bridge_error.extend({
19
+ error_code: z.literal('managed_by_other_account'),
16
20
  })
17
21
 
18
22
  export const seam_bridge_error_map = z.object({
19
- bridge_tunnel_failed: bridge_tunnel_failed.optional().nullable(),
20
- bridge_proxy_failure: bridge_proxy_failure.optional().nullable(),
21
- connection_failure: connection_failure.optional().nullable(),
23
+ failed_to_create_tunnel: failed_to_create_tunnel.optional().nullable(),
24
+ failed_to_create_proxy: failed_to_create_proxy.optional().nullable(),
25
+ seam_bridge_unreachable: seam_bridge_unreachable.optional().nullable(),
26
+ managed_by_other_account: managed_by_other_account.optional().nullable(),
22
27
  })
23
28
 
24
29
  export const seam_bridge_error = z.union([
25
- connection_failure,
26
- bridge_proxy_failure,
27
- bridge_tunnel_failed,
30
+ seam_bridge_unreachable,
31
+ failed_to_create_proxy,
32
+ failed_to_create_tunnel,
33
+ managed_by_other_account,
28
34
  ])
29
35
 
30
36
  export type SeamBridgeErrorMap = z.infer<typeof seam_bridge_error_map>
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod'
2
+
3
+ import { custom_metadata } from '../custom-metadata.js'
4
+
5
+ export const connected_account = z.object({
6
+ connected_account_id: z.string().uuid().optional(),
7
+ created_at: z.string().datetime().optional(),
8
+ user_identifier: z
9
+ .object({
10
+ username: z.string().optional(),
11
+ api_url: z.string().optional(),
12
+ email: z.string().optional(),
13
+ phone: z.string().optional(),
14
+ exclusive: z.boolean().optional(),
15
+ })
16
+ .optional(),
17
+ account_type: z.string().optional(),
18
+ account_type_display_name: z.string(),
19
+ errors: z.any(),
20
+ warnings: z.any(),
21
+ custom_metadata,
22
+ automatically_manage_new_devices: z.boolean(),
23
+ })
@@ -0,0 +1 @@
1
+ export * from './connected-account.js'
@@ -0,0 +1,116 @@
1
+ import { z } from 'zod'
2
+
3
+ export const DEVICE_PROVIDERS = {
4
+ AKUVOX: 'akuvox',
5
+ AUGUST: 'august',
6
+ AVIGILON_ALTA: 'avigilon_alta',
7
+ BRIVO: 'brivo',
8
+ BUTTERFLYMX: 'butterflymx',
9
+ SCHLAGE: 'schlage',
10
+ SMARTTHINGS: 'smartthings',
11
+ YALE: 'yale',
12
+ GENIE: 'genie',
13
+ DOORKING: 'doorking',
14
+ SALTO: 'salto',
15
+ LOCKLY: 'lockly',
16
+ TTLOCK: 'ttlock',
17
+ LINEAR: 'linear',
18
+ NOISEAWARE: 'noiseaware',
19
+ NUKI: 'nuki',
20
+ SEAM_RELAY_ADMIN: 'seam_relay_admin',
21
+ IGLOO: 'igloo',
22
+ KWIKSET: 'kwikset',
23
+ MINUT: 'minut',
24
+ MY_2N: 'my_2n',
25
+ CONTROLBYWEB: 'controlbyweb',
26
+ NEST: 'nest',
27
+ IGLOOHOME: 'igloohome',
28
+ ECOBEE: 'ecobee',
29
+ HUBITAT: 'hubitat',
30
+ FOUR_SUITES: 'four_suites',
31
+ DORMAKABA_ORACODE: 'dormakaba_oracode',
32
+ PTI: 'pti',
33
+ WYZE: 'wyze',
34
+ SEAM_PASSPORT: 'seam_passport',
35
+ VISIONLINE: 'visionline',
36
+ ASSA_ABLOY_CREDENTIAL_SERVICE: 'assa_abloy_credential_service',
37
+ SEAM_BRIDGE: 'seam_bridge',
38
+ TEDEE: 'tedee',
39
+ HONEYWELL_RESIDEO: 'honeywell_resideo',
40
+ LATCH: 'latch',
41
+ } as const
42
+
43
+ export type DeviceProvider =
44
+ (typeof DEVICE_PROVIDERS)[keyof typeof DEVICE_PROVIDERS]
45
+
46
+ export const ALL_DEVICE_PROVIDERS: [DeviceProvider, ...DeviceProvider[]] =
47
+ Object.values(DEVICE_PROVIDERS) as any
48
+
49
+ export type ProviderCategory = keyof typeof PROVIDER_CATEGORY_MAP
50
+
51
+ export const PROVIDER_CATEGORY_MAP = {
52
+ stable: [
53
+ 'august',
54
+ 'avigilon_alta',
55
+ 'brivo',
56
+ 'schlage',
57
+ 'smartthings',
58
+ 'yale',
59
+ 'nuki',
60
+ 'salto',
61
+ 'controlbyweb',
62
+ 'minut',
63
+ 'my_2n',
64
+ 'kwikset',
65
+ 'ttlock',
66
+ 'noiseaware',
67
+ 'igloohome',
68
+ 'ecobee',
69
+ 'four_suites',
70
+ 'lockly',
71
+ 'wyze',
72
+ 'nest',
73
+ 'tedee',
74
+ 'seam_bridge',
75
+ 'honeywell_resideo',
76
+ 'visionline',
77
+ 'assa_abloy_credential_service',
78
+ 'latch',
79
+ ],
80
+
81
+ consumer_smartlocks: [
82
+ 'august',
83
+ 'schlage',
84
+ 'yale',
85
+ 'smartthings',
86
+ 'nuki',
87
+ 'ttlock',
88
+ 'kwikset',
89
+ 'igloohome',
90
+ 'wyze',
91
+ ],
92
+
93
+ thermostats: ['ecobee', 'nest'],
94
+ noise_sensors: ['minut', 'noiseaware'],
95
+ access_control_systems: [
96
+ 'pti',
97
+ 'visionline',
98
+ 'assa_abloy_credential_service',
99
+ 'latch',
100
+ ],
101
+
102
+ internal_beta: ALL_DEVICE_PROVIDERS,
103
+ } as const satisfies Record<string, readonly DeviceProvider[]>
104
+
105
+ export const PROVIDER_CATEGORIES: [ProviderCategory, ...ProviderCategory[]] =
106
+ Object.keys(PROVIDER_CATEGORY_MAP) as any
107
+
108
+ export const PUBLIC_PROVIDER_CATEGORIES: typeof PROVIDER_CATEGORIES =
109
+ PROVIDER_CATEGORIES.filter((category) => category !== 'internal_beta') as any
110
+
111
+ export const device_provider = z.object({
112
+ device_provider_name: z.enum(ALL_DEVICE_PROVIDERS),
113
+ display_name: z.string(),
114
+ image_url: z.string(),
115
+ provider_categories: z.array(z.enum(PUBLIC_PROVIDER_CATEGORIES)),
116
+ })
@@ -1,6 +1,8 @@
1
1
  export * from './capabilities-supported.js'
2
2
  export * from './device-metadata.js'
3
+ export * from './device-provider.js'
3
4
  export * from './device-type.js'
4
5
  export * from './managed-device.js'
6
+ export * from './noise-threshold.js'
5
7
  export * from './phone.js'
6
8
  export * from './unmanaged-device.js'
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod'
2
+
3
+ export const noise_threshold = z.object({
4
+ noise_threshold_id: z.string().uuid(),
5
+ device_id: z.string().uuid(),
6
+ name: z.string(),
7
+ noise_threshold_nrs: z.number().optional(),
8
+ starts_daily_at: z.string(), // TODO: zoned_time
9
+ ends_daily_at: z.string(), // TODO: zoned_time
10
+ noise_threshold_decibels: z.number(),
11
+ })
@@ -1,7 +1,9 @@
1
1
  import { acs_credential_events } from './credentials.js'
2
+ import { acs_system_events } from './systems.js'
2
3
  import { acs_user_events } from './users.js'
3
4
 
4
5
  export const acs_events = [
6
+ ...acs_system_events,
5
7
  ...acs_credential_events,
6
8
  ...acs_user_events,
7
9
  ] as const
@@ -0,0 +1,15 @@
1
+ import { z } from 'zod'
2
+
3
+ import { common_acs_event } from './common.js'
4
+
5
+ const acs_system_event = common_acs_event.extend({})
6
+
7
+ export const acs_system_connected_event = acs_system_event
8
+ .extend({
9
+ event_type: z.literal('acs_system.connected'),
10
+ })
11
+ .describe('An ACS system was connected.')
12
+
13
+ export type AcsSystemConnectedEvent = z.infer<typeof acs_system_connected_event>
14
+
15
+ export const acs_system_events = [acs_system_connected_event] as const
@@ -4,9 +4,11 @@ export * from './action-attempts/index.js'
4
4
  export * from './capability-properties/index.js'
5
5
  export * from './client-sessions/index.js'
6
6
  export * from './connect-webviews/index.js'
7
+ export * from './connected-accounts/index.js'
7
8
  export * from './custom-metadata.js'
8
9
  export * from './devices/index.js'
9
10
  export * from './events/index.js'
10
11
  export * from './phone-number.js'
11
12
  export * from './user-identities/index.js'
13
+ export * from './webhooks/index.js'
12
14
  export * from './workspaces/index.js'
@@ -0,0 +1 @@
1
+ export * from './webhook.js'
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod'
2
+
3
+ export const webhook = z.object({
4
+ webhook_id: z.string(),
5
+ url: z.string(),
6
+ event_types: z.array(z.string()).optional(),
7
+ secret: z.string().optional(),
8
+ })
@@ -158,6 +158,7 @@ export default {
158
158
  acs_access_group_id: { format: 'uuid', type: 'string' },
159
159
  acs_system_id: { format: 'uuid', type: 'string' },
160
160
  created_at: { format: 'date-time', type: 'string' },
161
+ display_name: { type: 'string' },
161
162
  external_type: {
162
163
  enum: [
163
164
  'pti_unit',
@@ -178,6 +179,7 @@ export default {
178
179
  'name',
179
180
  'access_group_type',
180
181
  'access_group_type_display_name',
182
+ 'display_name',
181
183
  'external_type',
182
184
  'external_type_display_name',
183
185
  'created_at',
@@ -9110,6 +9112,7 @@ export default {
9110
9112
  'connected_account.completed_first_sync_after_reconnection',
9111
9113
  'noise_sensor.noise_threshold_triggered',
9112
9114
  'access_code.backup_access_code_pulled',
9115
+ 'acs_system.connected',
9113
9116
  'acs_user.deleted',
9114
9117
  'acs_credential.deleted',
9115
9118
  'enrollment_automation.deleted',
@@ -9173,6 +9176,7 @@ export default {
9173
9176
  'connected_account.completed_first_sync_after_reconnection',
9174
9177
  'noise_sensor.noise_threshold_triggered',
9175
9178
  'access_code.backup_access_code_pulled',
9179
+ 'acs_system.connected',
9176
9180
  'acs_user.deleted',
9177
9181
  'acs_credential.deleted',
9178
9182
  'enrollment_automation.deleted',
@@ -3105,6 +3105,7 @@ export interface Routes {
3105
3105
  ---
3106
3106
  */
3107
3107
  access_group_type_display_name: string
3108
+ display_name: string
3108
3109
  external_type:
3109
3110
  | 'pti_unit'
3110
3111
  | 'pti_access_level'
@@ -3147,6 +3148,7 @@ export interface Routes {
3147
3148
  ---
3148
3149
  */
3149
3150
  access_group_type_display_name: string
3151
+ display_name: string
3150
3152
  external_type:
3151
3153
  | 'pti_unit'
3152
3154
  | 'pti_access_level'
@@ -8391,6 +8393,7 @@ export interface Routes {
8391
8393
  | 'connected_account.completed_first_sync_after_reconnection'
8392
8394
  | 'noise_sensor.noise_threshold_triggered'
8393
8395
  | 'access_code.backup_access_code_pulled'
8396
+ | 'acs_system.connected'
8394
8397
  | 'acs_user.deleted'
8395
8398
  | 'acs_credential.deleted'
8396
8399
  | 'enrollment_automation.deleted'
@@ -8452,6 +8455,7 @@ export interface Routes {
8452
8455
  | 'connected_account.completed_first_sync_after_reconnection'
8453
8456
  | 'noise_sensor.noise_threshold_triggered'
8454
8457
  | 'access_code.backup_access_code_pulled'
8458
+ | 'acs_system.connected'
8455
8459
  | 'acs_user.deleted'
8456
8460
  | 'acs_credential.deleted'
8457
8461
  | 'enrollment_automation.deleted'