@seamapi/types 1.103.0 → 1.105.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 (36) hide show
  1. package/dist/connect.cjs +80 -0
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +154 -0
  4. package/dist/devicedb.cjs +20 -1
  5. package/dist/devicedb.cjs.map +1 -1
  6. package/dist/devicedb.d.cts +149 -1
  7. package/lib/seam/connect/openapi.d.ts +140 -0
  8. package/lib/seam/connect/openapi.js +80 -0
  9. package/lib/seam/connect/openapi.js.map +1 -1
  10. package/lib/seam/connect/route-types.d.ts +14 -0
  11. package/lib/seam/connect/unstable/models/acs/credential.d.ts +16 -0
  12. package/lib/seam/connect/unstable/models/acs/credential.js +2 -0
  13. package/lib/seam/connect/unstable/models/acs/credential.js.map +1 -1
  14. package/lib/seam/devicedb/public-models/device-capability.d.ts +21 -0
  15. package/lib/seam/devicedb/public-models/device-capability.js +15 -0
  16. package/lib/seam/devicedb/public-models/device-capability.js.map +1 -0
  17. package/lib/seam/devicedb/public-models/device-model-v1.d.ts +38 -0
  18. package/lib/seam/devicedb/public-models/device-model-v1.js +10 -2
  19. package/lib/seam/devicedb/public-models/device-model-v1.js.map +1 -1
  20. package/lib/seam/devicedb/public-models/hardware.d.ts +8 -0
  21. package/lib/seam/devicedb/public-models/hardware.js +7 -0
  22. package/lib/seam/devicedb/public-models/hardware.js.map +1 -0
  23. package/lib/seam/devicedb/public-models/index.d.ts +1 -0
  24. package/lib/seam/devicedb/public-models/index.js +1 -0
  25. package/lib/seam/devicedb/public-models/index.js.map +1 -1
  26. package/lib/seam/devicedb/route-specs.d.ts +88 -0
  27. package/lib/seam/devicedb/route-types.d.ts +10 -0
  28. package/package.json +1 -1
  29. package/src/lib/seam/connect/openapi.ts +80 -0
  30. package/src/lib/seam/connect/route-types.ts +14 -0
  31. package/src/lib/seam/connect/unstable/models/acs/credential.ts +2 -0
  32. package/src/lib/seam/devicedb/public-models/device-capability.ts +20 -0
  33. package/src/lib/seam/devicedb/public-models/device-model-v1.ts +33 -23
  34. package/src/lib/seam/devicedb/public-models/hardware.ts +7 -0
  35. package/src/lib/seam/devicedb/public-models/index.ts +1 -0
  36. package/src/lib/seam/devicedb/route-types.ts +10 -0
@@ -82,6 +82,13 @@ export declare const routes: {
82
82
  description: z.ZodString;
83
83
  product_url: z.ZodOptional<z.ZodString>;
84
84
  main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
85
+ hardware: z.ZodObject<{
86
+ has_physical_key: z.ZodOptional<z.ZodBoolean>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ has_physical_key?: boolean | undefined;
89
+ }, {
90
+ has_physical_key?: boolean | undefined;
91
+ }>;
85
92
  aesthetic_variants: z.ZodArray<z.ZodObject<{
86
93
  slug: z.ZodString;
87
94
  display_name: z.ZodString;
@@ -191,6 +198,9 @@ export declare const routes: {
191
198
  };
192
199
  is_device_supported: boolean;
193
200
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
201
+ hardware: {
202
+ has_physical_key?: boolean | undefined;
203
+ };
194
204
  aesthetic_variants: {
195
205
  display_name: string;
196
206
  slug: string;
@@ -237,6 +247,9 @@ export declare const routes: {
237
247
  };
238
248
  is_device_supported: boolean;
239
249
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
250
+ hardware: {
251
+ has_physical_key?: boolean | undefined;
252
+ };
240
253
  aesthetic_variants: {
241
254
  display_name: string;
242
255
  slug: string;
@@ -291,6 +304,8 @@ export declare const routes: {
291
304
  can_program_access_schedules: boolean;
292
305
  can_program_access_codes_offline: boolean;
293
306
  }>;
307
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
308
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
294
309
  }, "strip", z.ZodTypeAny, {
295
310
  main_category: "smartlock";
296
311
  physical_properties: {
@@ -304,6 +319,8 @@ export declare const routes: {
304
319
  can_program_access_schedules: boolean;
305
320
  can_program_access_codes_offline: boolean;
306
321
  };
322
+ can_remotely_unlock?: true | undefined;
323
+ can_program_online_access_codes?: true | undefined;
307
324
  }, {
308
325
  main_category: "smartlock";
309
326
  physical_properties: {
@@ -317,6 +334,8 @@ export declare const routes: {
317
334
  can_program_access_schedules: boolean;
318
335
  can_program_access_codes_offline: boolean;
319
336
  };
337
+ can_remotely_unlock?: true | undefined;
338
+ can_program_online_access_codes?: true | undefined;
320
339
  }>, z.ZodObject<{
321
340
  main_category: z.ZodLiteral<"sensor">;
322
341
  physical_properties: z.ZodObject<{
@@ -512,6 +531,9 @@ export declare const routes: {
512
531
  };
513
532
  is_device_supported: boolean;
514
533
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
534
+ hardware: {
535
+ has_physical_key?: boolean | undefined;
536
+ };
515
537
  aesthetic_variants: {
516
538
  display_name: string;
517
539
  slug: string;
@@ -548,6 +570,8 @@ export declare const routes: {
548
570
  can_program_access_schedules: boolean;
549
571
  can_program_access_codes_offline: boolean;
550
572
  };
573
+ can_remotely_unlock?: true | undefined;
574
+ can_program_online_access_codes?: true | undefined;
551
575
  }) | ({
552
576
  description: string;
553
577
  display_name: string;
@@ -571,6 +595,9 @@ export declare const routes: {
571
595
  };
572
596
  is_device_supported: boolean;
573
597
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
598
+ hardware: {
599
+ has_physical_key?: boolean | undefined;
600
+ };
574
601
  aesthetic_variants: {
575
602
  display_name: string;
576
603
  slug: string;
@@ -625,6 +652,9 @@ export declare const routes: {
625
652
  };
626
653
  is_device_supported: boolean;
627
654
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
655
+ hardware: {
656
+ has_physical_key?: boolean | undefined;
657
+ };
628
658
  aesthetic_variants: {
629
659
  display_name: string;
630
660
  slug: string;
@@ -685,6 +715,9 @@ export declare const routes: {
685
715
  };
686
716
  is_device_supported: boolean;
687
717
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
718
+ hardware: {
719
+ has_physical_key?: boolean | undefined;
720
+ };
688
721
  aesthetic_variants: {
689
722
  display_name: string;
690
723
  slug: string;
@@ -733,6 +766,9 @@ export declare const routes: {
733
766
  };
734
767
  is_device_supported: boolean;
735
768
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
769
+ hardware: {
770
+ has_physical_key?: boolean | undefined;
771
+ };
736
772
  aesthetic_variants: {
737
773
  display_name: string;
738
774
  slug: string;
@@ -793,6 +829,9 @@ export declare const routes: {
793
829
  };
794
830
  is_device_supported: boolean;
795
831
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
832
+ hardware: {
833
+ has_physical_key?: boolean | undefined;
834
+ };
796
835
  aesthetic_variants: {
797
836
  display_name: string;
798
837
  slug: string;
@@ -843,6 +882,9 @@ export declare const routes: {
843
882
  };
844
883
  is_device_supported: boolean;
845
884
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
885
+ hardware: {
886
+ has_physical_key?: boolean | undefined;
887
+ };
846
888
  aesthetic_variants: {
847
889
  display_name: string;
848
890
  slug: string;
@@ -879,6 +921,8 @@ export declare const routes: {
879
921
  can_program_access_schedules: boolean;
880
922
  can_program_access_codes_offline: boolean;
881
923
  };
924
+ can_remotely_unlock?: true | undefined;
925
+ can_program_online_access_codes?: true | undefined;
882
926
  }) | ({
883
927
  description: string;
884
928
  display_name: string;
@@ -902,6 +946,9 @@ export declare const routes: {
902
946
  };
903
947
  is_device_supported: boolean;
904
948
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
949
+ hardware: {
950
+ has_physical_key?: boolean | undefined;
951
+ };
905
952
  aesthetic_variants: {
906
953
  display_name: string;
907
954
  slug: string;
@@ -956,6 +1003,9 @@ export declare const routes: {
956
1003
  };
957
1004
  is_device_supported: boolean;
958
1005
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1006
+ hardware: {
1007
+ has_physical_key?: boolean | undefined;
1008
+ };
959
1009
  aesthetic_variants: {
960
1010
  display_name: string;
961
1011
  slug: string;
@@ -1016,6 +1066,9 @@ export declare const routes: {
1016
1066
  };
1017
1067
  is_device_supported: boolean;
1018
1068
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1069
+ hardware: {
1070
+ has_physical_key?: boolean | undefined;
1071
+ };
1019
1072
  aesthetic_variants: {
1020
1073
  display_name: string;
1021
1074
  slug: string;
@@ -1064,6 +1117,9 @@ export declare const routes: {
1064
1117
  };
1065
1118
  is_device_supported: boolean;
1066
1119
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1120
+ hardware: {
1121
+ has_physical_key?: boolean | undefined;
1122
+ };
1067
1123
  aesthetic_variants: {
1068
1124
  display_name: string;
1069
1125
  slug: string;
@@ -1124,6 +1180,9 @@ export declare const routes: {
1124
1180
  };
1125
1181
  is_device_supported: boolean;
1126
1182
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1183
+ hardware: {
1184
+ has_physical_key?: boolean | undefined;
1185
+ };
1127
1186
  aesthetic_variants: {
1128
1187
  display_name: string;
1129
1188
  slug: string;
@@ -1256,6 +1315,13 @@ export declare const routes: {
1256
1315
  description: z.ZodString;
1257
1316
  product_url: z.ZodOptional<z.ZodString>;
1258
1317
  main_connection_type: z.ZodEnum<["wifi", "zwave", "zigbee", "unknown"]>;
1318
+ hardware: z.ZodObject<{
1319
+ has_physical_key: z.ZodOptional<z.ZodBoolean>;
1320
+ }, "strip", z.ZodTypeAny, {
1321
+ has_physical_key?: boolean | undefined;
1322
+ }, {
1323
+ has_physical_key?: boolean | undefined;
1324
+ }>;
1259
1325
  aesthetic_variants: z.ZodArray<z.ZodObject<{
1260
1326
  slug: z.ZodString;
1261
1327
  display_name: z.ZodString;
@@ -1365,6 +1431,9 @@ export declare const routes: {
1365
1431
  };
1366
1432
  is_device_supported: boolean;
1367
1433
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1434
+ hardware: {
1435
+ has_physical_key?: boolean | undefined;
1436
+ };
1368
1437
  aesthetic_variants: {
1369
1438
  display_name: string;
1370
1439
  slug: string;
@@ -1411,6 +1480,9 @@ export declare const routes: {
1411
1480
  };
1412
1481
  is_device_supported: boolean;
1413
1482
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1483
+ hardware: {
1484
+ has_physical_key?: boolean | undefined;
1485
+ };
1414
1486
  aesthetic_variants: {
1415
1487
  display_name: string;
1416
1488
  slug: string;
@@ -1465,6 +1537,8 @@ export declare const routes: {
1465
1537
  can_program_access_schedules: boolean;
1466
1538
  can_program_access_codes_offline: boolean;
1467
1539
  }>;
1540
+ can_remotely_unlock: z.ZodOptional<z.ZodLiteral<true>>;
1541
+ can_program_online_access_codes: z.ZodOptional<z.ZodLiteral<true>>;
1468
1542
  }, "strip", z.ZodTypeAny, {
1469
1543
  main_category: "smartlock";
1470
1544
  physical_properties: {
@@ -1478,6 +1552,8 @@ export declare const routes: {
1478
1552
  can_program_access_schedules: boolean;
1479
1553
  can_program_access_codes_offline: boolean;
1480
1554
  };
1555
+ can_remotely_unlock?: true | undefined;
1556
+ can_program_online_access_codes?: true | undefined;
1481
1557
  }, {
1482
1558
  main_category: "smartlock";
1483
1559
  physical_properties: {
@@ -1491,6 +1567,8 @@ export declare const routes: {
1491
1567
  can_program_access_schedules: boolean;
1492
1568
  can_program_access_codes_offline: boolean;
1493
1569
  };
1570
+ can_remotely_unlock?: true | undefined;
1571
+ can_program_online_access_codes?: true | undefined;
1494
1572
  }>, z.ZodObject<{
1495
1573
  main_category: z.ZodLiteral<"sensor">;
1496
1574
  physical_properties: z.ZodObject<{
@@ -1686,6 +1764,9 @@ export declare const routes: {
1686
1764
  };
1687
1765
  is_device_supported: boolean;
1688
1766
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1767
+ hardware: {
1768
+ has_physical_key?: boolean | undefined;
1769
+ };
1689
1770
  aesthetic_variants: {
1690
1771
  display_name: string;
1691
1772
  slug: string;
@@ -1722,6 +1803,8 @@ export declare const routes: {
1722
1803
  can_program_access_schedules: boolean;
1723
1804
  can_program_access_codes_offline: boolean;
1724
1805
  };
1806
+ can_remotely_unlock?: true | undefined;
1807
+ can_program_online_access_codes?: true | undefined;
1725
1808
  } | {
1726
1809
  main_category: "sensor";
1727
1810
  physical_properties: {
@@ -1787,6 +1870,9 @@ export declare const routes: {
1787
1870
  };
1788
1871
  is_device_supported: boolean;
1789
1872
  main_connection_type: "unknown" | "wifi" | "zwave" | "zigbee";
1873
+ hardware: {
1874
+ has_physical_key?: boolean | undefined;
1875
+ };
1790
1876
  aesthetic_variants: {
1791
1877
  display_name: string;
1792
1878
  slug: string;
@@ -1823,6 +1909,8 @@ export declare const routes: {
1823
1909
  can_program_access_schedules: boolean;
1824
1910
  can_program_access_codes_offline: boolean;
1825
1911
  };
1912
+ can_remotely_unlock?: true | undefined;
1913
+ can_program_online_access_codes?: true | undefined;
1826
1914
  } | {
1827
1915
  main_category: "sensor";
1828
1916
  physical_properties: {
@@ -33,6 +33,9 @@ export interface Routes {
33
33
  description: string;
34
34
  product_url?: string | undefined;
35
35
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
36
+ hardware: {
37
+ has_physical_key?: boolean | undefined;
38
+ };
36
39
  aesthetic_variants: Array<{
37
40
  slug: string;
38
41
  display_name: string;
@@ -68,6 +71,8 @@ export interface Routes {
68
71
  can_program_access_schedules: boolean;
69
72
  can_program_access_codes_offline: boolean;
70
73
  };
74
+ can_remotely_unlock?: true | undefined;
75
+ can_program_online_access_codes?: true | undefined;
71
76
  } | {
72
77
  main_category: 'sensor';
73
78
  physical_properties: {
@@ -152,6 +157,9 @@ export interface Routes {
152
157
  description: string;
153
158
  product_url?: string | undefined;
154
159
  main_connection_type: 'wifi' | 'zwave' | 'zigbee' | 'unknown';
160
+ hardware: {
161
+ has_physical_key?: boolean | undefined;
162
+ };
155
163
  aesthetic_variants: Array<{
156
164
  slug: string;
157
165
  display_name: string;
@@ -187,6 +195,8 @@ export interface Routes {
187
195
  can_program_access_schedules: boolean;
188
196
  can_program_access_codes_offline: boolean;
189
197
  };
198
+ can_remotely_unlock?: true | undefined;
199
+ can_program_online_access_codes?: true | undefined;
190
200
  } | {
191
201
  main_category: 'sensor';
192
202
  physical_properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.103.0",
3
+ "version": "1.105.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -3903,6 +3903,14 @@ export default {
3903
3903
  starts_at: { type: 'string' },
3904
3904
  visionline_metadata: {
3905
3905
  properties: {
3906
+ common_acs_entrance_ids: {
3907
+ items: { format: 'uuid', type: 'string' },
3908
+ type: 'array',
3909
+ },
3910
+ guest_acs_entrance_ids: {
3911
+ items: { format: 'uuid', type: 'string' },
3912
+ type: 'array',
3913
+ },
3906
3914
  joiner_acs_credential_ids: {
3907
3915
  items: { format: 'uuid', type: 'string' },
3908
3916
  type: 'array',
@@ -4000,6 +4008,14 @@ export default {
4000
4008
  starts_at: { type: 'string' },
4001
4009
  visionline_metadata: {
4002
4010
  properties: {
4011
+ common_acs_entrance_ids: {
4012
+ items: { format: 'uuid', type: 'string' },
4013
+ type: 'array',
4014
+ },
4015
+ guest_acs_entrance_ids: {
4016
+ items: { format: 'uuid', type: 'string' },
4017
+ type: 'array',
4018
+ },
4003
4019
  joiner_acs_credential_ids: {
4004
4020
  items: { format: 'uuid', type: 'string' },
4005
4021
  type: 'array',
@@ -4134,6 +4150,14 @@ export default {
4134
4150
  starts_at: { type: 'string' },
4135
4151
  visionline_metadata: {
4136
4152
  properties: {
4153
+ common_acs_entrance_ids: {
4154
+ items: { format: 'uuid', type: 'string' },
4155
+ type: 'array',
4156
+ },
4157
+ guest_acs_entrance_ids: {
4158
+ items: { format: 'uuid', type: 'string' },
4159
+ type: 'array',
4160
+ },
4137
4161
  joiner_acs_credential_ids: {
4138
4162
  items: { format: 'uuid', type: 'string' },
4139
4163
  type: 'array',
@@ -4276,6 +4300,14 @@ export default {
4276
4300
  starts_at: { type: 'string' },
4277
4301
  visionline_metadata: {
4278
4302
  properties: {
4303
+ common_acs_entrance_ids: {
4304
+ items: { format: 'uuid', type: 'string' },
4305
+ type: 'array',
4306
+ },
4307
+ guest_acs_entrance_ids: {
4308
+ items: { format: 'uuid', type: 'string' },
4309
+ type: 'array',
4310
+ },
4279
4311
  joiner_acs_credential_ids: {
4280
4312
  items: { format: 'uuid', type: 'string' },
4281
4313
  type: 'array',
@@ -4402,6 +4434,14 @@ export default {
4402
4434
  starts_at: { type: 'string' },
4403
4435
  visionline_metadata: {
4404
4436
  properties: {
4437
+ common_acs_entrance_ids: {
4438
+ items: { format: 'uuid', type: 'string' },
4439
+ type: 'array',
4440
+ },
4441
+ guest_acs_entrance_ids: {
4442
+ items: { format: 'uuid', type: 'string' },
4443
+ type: 'array',
4444
+ },
4405
4445
  joiner_acs_credential_ids: {
4406
4446
  items: { format: 'uuid', type: 'string' },
4407
4447
  type: 'array',
@@ -4505,6 +4545,14 @@ export default {
4505
4545
  starts_at: { type: 'string' },
4506
4546
  visionline_metadata: {
4507
4547
  properties: {
4548
+ common_acs_entrance_ids: {
4549
+ items: { format: 'uuid', type: 'string' },
4550
+ type: 'array',
4551
+ },
4552
+ guest_acs_entrance_ids: {
4553
+ items: { format: 'uuid', type: 'string' },
4554
+ type: 'array',
4555
+ },
4508
4556
  joiner_acs_credential_ids: {
4509
4557
  items: { format: 'uuid', type: 'string' },
4510
4558
  type: 'array',
@@ -4602,6 +4650,14 @@ export default {
4602
4650
  starts_at: { type: 'string' },
4603
4651
  visionline_metadata: {
4604
4652
  properties: {
4653
+ common_acs_entrance_ids: {
4654
+ items: { format: 'uuid', type: 'string' },
4655
+ type: 'array',
4656
+ },
4657
+ guest_acs_entrance_ids: {
4658
+ items: { format: 'uuid', type: 'string' },
4659
+ type: 'array',
4660
+ },
4605
4661
  joiner_acs_credential_ids: {
4606
4662
  items: { format: 'uuid', type: 'string' },
4607
4663
  type: 'array',
@@ -4702,6 +4758,14 @@ export default {
4702
4758
  starts_at: { type: 'string' },
4703
4759
  visionline_metadata: {
4704
4760
  properties: {
4761
+ common_acs_entrance_ids: {
4762
+ items: { format: 'uuid', type: 'string' },
4763
+ type: 'array',
4764
+ },
4765
+ guest_acs_entrance_ids: {
4766
+ items: { format: 'uuid', type: 'string' },
4767
+ type: 'array',
4768
+ },
4705
4769
  joiner_acs_credential_ids: {
4706
4770
  items: { format: 'uuid', type: 'string' },
4707
4771
  type: 'array',
@@ -4799,6 +4863,14 @@ export default {
4799
4863
  starts_at: { type: 'string' },
4800
4864
  visionline_metadata: {
4801
4865
  properties: {
4866
+ common_acs_entrance_ids: {
4867
+ items: { format: 'uuid', type: 'string' },
4868
+ type: 'array',
4869
+ },
4870
+ guest_acs_entrance_ids: {
4871
+ items: { format: 'uuid', type: 'string' },
4872
+ type: 'array',
4873
+ },
4802
4874
  joiner_acs_credential_ids: {
4803
4875
  items: { format: 'uuid', type: 'string' },
4804
4876
  type: 'array',
@@ -5132,6 +5204,14 @@ export default {
5132
5204
  starts_at: { type: 'string' },
5133
5205
  visionline_metadata: {
5134
5206
  properties: {
5207
+ common_acs_entrance_ids: {
5208
+ items: { format: 'uuid', type: 'string' },
5209
+ type: 'array',
5210
+ },
5211
+ guest_acs_entrance_ids: {
5212
+ items: { format: 'uuid', type: 'string' },
5213
+ type: 'array',
5214
+ },
5135
5215
  joiner_acs_credential_ids: {
5136
5216
  items: { format: 'uuid', type: 'string' },
5137
5217
  type: 'array',
@@ -854,6 +854,8 @@ export interface Routes {
854
854
  visionline_metadata?:
855
855
  | {
856
856
  joiner_acs_credential_ids?: string[] | undefined
857
+ guest_acs_entrance_ids?: string[] | undefined
858
+ common_acs_entrance_ids?: string[] | undefined
857
859
  }
858
860
  | undefined
859
861
  }
@@ -918,6 +920,8 @@ export interface Routes {
918
920
  visionline_metadata?:
919
921
  | {
920
922
  joiner_acs_credential_ids?: string[] | undefined
923
+ guest_acs_entrance_ids?: string[] | undefined
924
+ common_acs_entrance_ids?: string[] | undefined
921
925
  }
922
926
  | undefined
923
927
  }
@@ -970,6 +974,8 @@ export interface Routes {
970
974
  visionline_metadata?:
971
975
  | {
972
976
  joiner_acs_credential_ids?: string[] | undefined
977
+ guest_acs_entrance_ids?: string[] | undefined
978
+ common_acs_entrance_ids?: string[] | undefined
973
979
  }
974
980
  | undefined
975
981
  }
@@ -1022,6 +1028,8 @@ export interface Routes {
1022
1028
  visionline_metadata?:
1023
1029
  | {
1024
1030
  joiner_acs_credential_ids?: string[] | undefined
1031
+ guest_acs_entrance_ids?: string[] | undefined
1032
+ common_acs_entrance_ids?: string[] | undefined
1025
1033
  }
1026
1034
  | undefined
1027
1035
  }>
@@ -1064,6 +1072,8 @@ export interface Routes {
1064
1072
  visionline_metadata?:
1065
1073
  | {
1066
1074
  joiner_acs_credential_ids?: string[] | undefined
1075
+ guest_acs_entrance_ids?: string[] | undefined
1076
+ common_acs_entrance_ids?: string[] | undefined
1067
1077
  }
1068
1078
  | undefined
1069
1079
  }
@@ -1106,6 +1116,8 @@ export interface Routes {
1106
1116
  visionline_metadata?:
1107
1117
  | {
1108
1118
  joiner_acs_credential_ids?: string[] | undefined
1119
+ guest_acs_entrance_ids?: string[] | undefined
1120
+ common_acs_entrance_ids?: string[] | undefined
1109
1121
  }
1110
1122
  | undefined
1111
1123
  }
@@ -1215,6 +1227,8 @@ export interface Routes {
1215
1227
  visionline_metadata?:
1216
1228
  | {
1217
1229
  joiner_acs_credential_ids?: string[] | undefined
1230
+ guest_acs_entrance_ids?: string[] | undefined
1231
+ common_acs_entrance_ids?: string[] | undefined
1218
1232
  }
1219
1233
  | undefined
1220
1234
  }>
@@ -20,6 +20,8 @@ export type AcsCredentialExternalType = z.infer<
20
20
 
21
21
  export const acs_credential_visionline_metadata = z.object({
22
22
  joiner_acs_credential_ids: z.array(z.string().uuid()).optional(),
23
+ guest_acs_entrance_ids: z.array(z.string().uuid()).optional(),
24
+ common_acs_entrance_ids: z.array(z.string().uuid()).optional(),
23
25
  })
24
26
 
25
27
  export type AcsCredentialVisionlineMetadata = z.infer<
@@ -0,0 +1,20 @@
1
+ import { z, type ZodLiteral } from 'zod'
2
+
3
+ export const device_capability_flags = z
4
+ .object({
5
+ can_remotely_unlock: z.boolean(),
6
+ can_program_online_access_codes: z.boolean(),
7
+ })
8
+ .partial()
9
+
10
+ const device_model_capability_flags_map: Record<
11
+ keyof z.infer<typeof device_capability_flags>,
12
+ ZodLiteral<true>
13
+ > = {
14
+ can_remotely_unlock: z.literal(true),
15
+ can_program_online_access_codes: z.literal(true),
16
+ }
17
+
18
+ export const device_model_capability_flags = z
19
+ .object(device_model_capability_flags_map)
20
+ .partial()
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod'
2
2
 
3
+ import { device_model_capability_flags } from './device-capability.js'
4
+ import { hardware } from './hardware.js'
3
5
  import { image_reference } from './image-reference.js'
4
6
  import { manufacturer } from './manufacturer.js'
5
7
 
@@ -23,29 +25,36 @@ export const device_connection_type = z.enum([
23
25
 
24
26
  export type DeviceConnectionType = z.infer<typeof device_connection_type>
25
27
 
26
- const smartlock = z.object({
27
- main_category: z.literal(device_category.enum.smartlock),
28
- physical_properties: z.object({
29
- lock_type: z.enum([
30
- 'deadbolt',
31
- 'lever',
32
- 'mortise',
33
- 'lockbox',
34
- 'cylinder',
35
- 'padlock',
36
- 'locker',
37
- 'unknown',
38
- ]),
39
- has_physical_key: z.boolean(),
40
- has_camera: z.boolean(),
41
- }),
42
- software_features: z.object({
43
- can_remotely_unlock: z.boolean(),
44
- can_program_access_codes: z.boolean(),
45
- can_program_access_schedules: z.boolean(),
46
- can_program_access_codes_offline: z.boolean(),
47
- }),
48
- })
28
+ const smartlock = z
29
+ .object({
30
+ main_category: z.literal(device_category.enum.smartlock),
31
+ physical_properties: z.object({
32
+ lock_type: z.enum([
33
+ 'deadbolt',
34
+ 'lever',
35
+ 'mortise',
36
+ 'lockbox',
37
+ 'cylinder',
38
+ 'padlock',
39
+ 'locker',
40
+ 'unknown',
41
+ ]),
42
+ has_physical_key: z.boolean(),
43
+ has_camera: z.boolean(),
44
+ }),
45
+ software_features: z.object({
46
+ can_remotely_unlock: z.boolean(),
47
+ can_program_access_codes: z.boolean(),
48
+ can_program_access_schedules: z.boolean(),
49
+ can_program_access_codes_offline: z.boolean(),
50
+ }),
51
+ })
52
+ .merge(
53
+ device_model_capability_flags.pick({
54
+ can_remotely_unlock: true,
55
+ can_program_online_access_codes: true,
56
+ }),
57
+ )
49
58
 
50
59
  const sensor = z.object({
51
60
  main_category: z.literal(device_category.enum.sensor),
@@ -114,6 +123,7 @@ export const base_device_model_v1 = z.object({
114
123
  description: z.string(),
115
124
  product_url: z.string().optional(),
116
125
  main_connection_type: device_connection_type,
126
+ hardware,
117
127
  aesthetic_variants: z
118
128
  .object({
119
129
  slug: z.string(),
@@ -0,0 +1,7 @@
1
+ import { z } from 'zod'
2
+
3
+ export const hardware = z
4
+ .object({
5
+ has_physical_key: z.boolean(),
6
+ })
7
+ .partial()
@@ -1,3 +1,4 @@
1
+ export { device_capability_flags } from './device-capability.js'
1
2
  export * from './device-model-v0.js'
2
3
  export * from './device-model-v1.js'
3
4
  export * from './image-reference.js'