@seamapi/types 1.42.1 → 1.44.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 (40) hide show
  1. package/dist/connect.cjs +263 -14
  2. package/dist/connect.cjs.map +1 -1
  3. package/dist/connect.d.cts +522 -18
  4. package/lib/seam/connect/openapi.d.ts +350 -0
  5. package/lib/seam/connect/openapi.js +243 -10
  6. package/lib/seam/connect/openapi.js.map +1 -1
  7. package/lib/seam/connect/route-types.d.ts +143 -15
  8. package/lib/seam/connect/stable/model-types.d.ts +1 -1
  9. package/lib/seam/connect/stable/models/connect-webview.d.ts +21 -0
  10. package/lib/seam/connect/stable/models/connect-webview.js +8 -0
  11. package/lib/seam/connect/stable/models/connect-webview.js.map +1 -1
  12. package/lib/seam/connect/stable/models/custom-metadata.d.ts +3 -0
  13. package/lib/seam/connect/stable/models/custom-metadata.js +7 -0
  14. package/lib/seam/connect/stable/models/custom-metadata.js.map +1 -0
  15. package/lib/seam/connect/stable/models/index.d.ts +1 -0
  16. package/lib/seam/connect/stable/models/index.js +1 -0
  17. package/lib/seam/connect/stable/models/index.js.map +1 -1
  18. package/lib/seam/connect/stable/schemas.d.ts +1 -1
  19. package/lib/seam/connect/stable/schemas.js +1 -1
  20. package/lib/seam/connect/stable/schemas.js.map +1 -1
  21. package/lib/seam/connect/unstable/models/acs/credential.d.ts +7 -7
  22. package/lib/seam/connect/unstable/models/acs/credential.js +5 -2
  23. package/lib/seam/connect/unstable/models/acs/credential.js.map +1 -1
  24. package/lib/seam/connect/unstable/models/acs/user.d.ts +4 -4
  25. package/lib/seam/connect/unstable/models/acs/user.js +1 -1
  26. package/lib/seam/connect/unstable/models/acs/user.js.map +1 -1
  27. package/lib/seam/connect/unstable/models/devices/managed-device.d.ts +62 -0
  28. package/lib/seam/connect/unstable/models/devices/managed-device.js +20 -2
  29. package/lib/seam/connect/unstable/models/devices/managed-device.js.map +1 -1
  30. package/package.json +1 -1
  31. package/src/lib/seam/connect/openapi.ts +247 -10
  32. package/src/lib/seam/connect/route-types.ts +143 -15
  33. package/src/lib/seam/connect/stable/model-types.ts +1 -1
  34. package/src/lib/seam/connect/stable/models/connect-webview.ts +9 -0
  35. package/src/lib/seam/connect/stable/models/custom-metadata.ts +12 -0
  36. package/src/lib/seam/connect/stable/models/index.ts +1 -0
  37. package/src/lib/seam/connect/stable/schemas.ts +1 -1
  38. package/src/lib/seam/connect/unstable/models/acs/credential.ts +5 -2
  39. package/src/lib/seam/connect/unstable/models/acs/user.ts +1 -1
  40. package/src/lib/seam/connect/unstable/models/devices/managed-device.ts +23 -2
@@ -632,7 +632,7 @@ export interface Routes {
632
632
  workspace_id: string
633
633
  created_at: string
634
634
  display_name: string
635
- external_type: 'pti_user'
635
+ external_type: 'pti_user' | 'brivo_user'
636
636
  external_type_display_name: string
637
637
  is_suspended: boolean
638
638
  full_name?: string | undefined
@@ -667,6 +667,18 @@ export interface Routes {
667
667
  formData: {}
668
668
  jsonResponse: {}
669
669
  }
670
+ '/acs/credentials/assign': {
671
+ route: '/acs/credentials/assign'
672
+ method: 'PATCH' | 'POST'
673
+ queryParams: {}
674
+ jsonBody: {
675
+ acs_user_id: string
676
+ acs_credential_id: string
677
+ }
678
+ commonParams: {}
679
+ formData: {}
680
+ jsonResponse: {}
681
+ }
670
682
  '/acs/credentials/create': {
671
683
  route: '/acs/credentials/create'
672
684
  method: 'POST'
@@ -680,10 +692,10 @@ export interface Routes {
680
692
  jsonResponse: {
681
693
  acs_credential: {
682
694
  acs_credential_id: string
683
- acs_user_id: string
695
+ acs_user_id?: string | undefined
684
696
  acs_system_id: string
685
697
  code: string | null
686
- external_type: 'pti_card'
698
+ external_type: 'pti_card' | 'brivo_credential'
687
699
  external_type_display_name: string
688
700
  created_at: string
689
701
  workspace_id: string
@@ -713,10 +725,10 @@ export interface Routes {
713
725
  jsonResponse: {
714
726
  acs_credential: {
715
727
  acs_credential_id: string
716
- acs_user_id: string
728
+ acs_user_id?: string | undefined
717
729
  acs_system_id: string
718
730
  code: string | null
719
- external_type: 'pti_card'
731
+ external_type: 'pti_card' | 'brivo_credential'
720
732
  external_type_display_name: string
721
733
  created_at: string
722
734
  workspace_id: string
@@ -743,16 +755,28 @@ export interface Routes {
743
755
  jsonResponse: {
744
756
  acs_credentials: Array<{
745
757
  acs_credential_id: string
746
- acs_user_id: string
758
+ acs_user_id?: string | undefined
747
759
  acs_system_id: string
748
760
  code: string | null
749
- external_type: 'pti_card'
761
+ external_type: 'pti_card' | 'brivo_credential'
750
762
  external_type_display_name: string
751
763
  created_at: string
752
764
  workspace_id: string
753
765
  }>
754
766
  }
755
767
  }
768
+ '/acs/credentials/unassign': {
769
+ route: '/acs/credentials/unassign'
770
+ method: 'PATCH' | 'POST'
771
+ queryParams: {}
772
+ jsonBody: {
773
+ acs_user_id: string
774
+ acs_credential_id: string
775
+ }
776
+ commonParams: {}
777
+ formData: {}
778
+ jsonResponse: {}
779
+ }
756
780
  '/acs/systems/get': {
757
781
  route: '/acs/systems/get'
758
782
  method: 'GET' | 'POST'
@@ -817,15 +841,16 @@ export interface Routes {
817
841
  route: '/acs/users/create'
818
842
  method: 'POST'
819
843
  queryParams: {}
820
- jsonBody: {}
821
- commonParams: {
844
+ jsonBody: {
822
845
  acs_system_id: string
823
846
  acs_access_group_ids?: string[]
824
847
  full_name?: string | undefined
825
848
  /** Deprecated: use email_address. */
826
849
  email?: string | undefined
827
850
  phone_number?: string | undefined
851
+ email_address?: string | undefined
828
852
  }
853
+ commonParams: {}
829
854
  formData: {}
830
855
  jsonResponse: {
831
856
  acs_user: {
@@ -834,7 +859,7 @@ export interface Routes {
834
859
  workspace_id: string
835
860
  created_at: string
836
861
  display_name: string
837
- external_type: 'pti_user'
862
+ external_type: 'pti_user' | 'brivo_user'
838
863
  external_type_display_name: string
839
864
  is_suspended: boolean
840
865
  full_name?: string | undefined
@@ -872,7 +897,7 @@ export interface Routes {
872
897
  workspace_id: string
873
898
  created_at: string
874
899
  display_name: string
875
- external_type: 'pti_user'
900
+ external_type: 'pti_user' | 'brivo_user'
876
901
  external_type_display_name: string
877
902
  is_suspended: boolean
878
903
  full_name?: string | undefined
@@ -899,7 +924,7 @@ export interface Routes {
899
924
  workspace_id: string
900
925
  created_at: string
901
926
  display_name: string
902
- external_type: 'pti_user'
927
+ external_type: 'pti_user' | 'brivo_user'
903
928
  external_type_display_name: string
904
929
  is_suspended: boolean
905
930
  full_name?: string | undefined
@@ -948,14 +973,15 @@ export interface Routes {
948
973
  route: '/acs/users/update'
949
974
  method: 'PATCH' | 'POST'
950
975
  queryParams: {}
951
- jsonBody: {}
952
- commonParams: {
976
+ jsonBody: {
953
977
  acs_user_id: string
954
978
  full_name?: string | undefined
955
979
  /** Deprecated: use email_address. */
956
980
  email?: string | undefined
957
981
  phone_number?: string | undefined
982
+ email_address?: string | undefined
958
983
  }
984
+ commonParams: {}
959
985
  formData: {}
960
986
  jsonResponse: {}
961
987
  }
@@ -1247,6 +1273,13 @@ export interface Routes {
1247
1273
  created_at: string
1248
1274
  login_successful: boolean
1249
1275
  status: 'pending' | 'failed' | 'authorized'
1276
+ custom_redirect_url: string | null
1277
+ custom_redirect_failure_url: string | null
1278
+ custom_metadata: Record<string, string | number | null | boolean>
1279
+ automatically_manage_new_devices: boolean
1280
+ wait_for_device_creation: boolean
1281
+ authorized_at: string | null
1282
+ selected_provider: string | null
1250
1283
  }
1251
1284
  }
1252
1285
  }
@@ -1284,6 +1317,13 @@ export interface Routes {
1284
1317
  created_at: string
1285
1318
  login_successful: boolean
1286
1319
  status: 'pending' | 'failed' | 'authorized'
1320
+ custom_redirect_url: string | null
1321
+ custom_redirect_failure_url: string | null
1322
+ custom_metadata: Record<string, string | number | null | boolean>
1323
+ automatically_manage_new_devices: boolean
1324
+ wait_for_device_creation: boolean
1325
+ authorized_at: string | null
1326
+ selected_provider: string | null
1287
1327
  }
1288
1328
  }
1289
1329
  }
@@ -1310,6 +1350,13 @@ export interface Routes {
1310
1350
  created_at: string
1311
1351
  login_successful: boolean
1312
1352
  status: 'pending' | 'failed' | 'authorized'
1353
+ custom_redirect_url: string | null
1354
+ custom_redirect_failure_url: string | null
1355
+ custom_metadata: Record<string, string | number | null | boolean>
1356
+ automatically_manage_new_devices: boolean
1357
+ wait_for_device_creation: boolean
1358
+ authorized_at: string | null
1359
+ selected_provider: string | null
1313
1360
  }>
1314
1361
  }
1315
1362
  }
@@ -1466,6 +1513,9 @@ export interface Routes {
1466
1513
  model: {
1467
1514
  display_name: string
1468
1515
  manufacturer_display_name: string
1516
+ offline_access_codes_supported?: boolean | undefined
1517
+ access_codes_supported?: boolean | undefined
1518
+ accessory_keypad_supported?: boolean | undefined
1469
1519
  }
1470
1520
  has_direct_power?: boolean | undefined
1471
1521
  battery_level?: number | undefined
@@ -1479,7 +1529,13 @@ export interface Routes {
1479
1529
  image_url?: string | undefined
1480
1530
  image_alt_text?: string | undefined
1481
1531
  serial_number?: string | undefined
1532
+ /** Currently possible to use online access codes */
1533
+ online_access_codes_enabled?: boolean | undefined
1534
+ /** Currently possible to use offline access codes */
1535
+ offline_access_codes_enabled?: boolean | undefined
1536
+ /** Deprecated: use model.offline_access_codes_enabled. */
1482
1537
  supports_accessory_keypad?: boolean | undefined
1538
+ /** Deprecated: use model.accessory_keypad_supported. */
1483
1539
  supports_offline_access_codes?: boolean | undefined
1484
1540
  } & {
1485
1541
  august_metadata?:
@@ -2164,6 +2220,9 @@ export interface Routes {
2164
2220
  model: {
2165
2221
  display_name: string
2166
2222
  manufacturer_display_name: string
2223
+ offline_access_codes_supported?: boolean | undefined
2224
+ access_codes_supported?: boolean | undefined
2225
+ accessory_keypad_supported?: boolean | undefined
2167
2226
  }
2168
2227
  has_direct_power?: boolean | undefined
2169
2228
  battery_level?: number | undefined
@@ -2177,7 +2236,13 @@ export interface Routes {
2177
2236
  image_url?: string | undefined
2178
2237
  image_alt_text?: string | undefined
2179
2238
  serial_number?: string | undefined
2239
+ /** Currently possible to use online access codes */
2240
+ online_access_codes_enabled?: boolean | undefined
2241
+ /** Currently possible to use offline access codes */
2242
+ offline_access_codes_enabled?: boolean | undefined
2243
+ /** Deprecated: use model.offline_access_codes_enabled. */
2180
2244
  supports_accessory_keypad?: boolean | undefined
2245
+ /** Deprecated: use model.accessory_keypad_supported. */
2181
2246
  supports_offline_access_codes?: boolean | undefined
2182
2247
  } & {
2183
2248
  august_metadata?:
@@ -3279,6 +3344,9 @@ export interface Routes {
3279
3344
  model: {
3280
3345
  display_name: string
3281
3346
  manufacturer_display_name: string
3347
+ offline_access_codes_supported?: boolean | undefined
3348
+ access_codes_supported?: boolean | undefined
3349
+ accessory_keypad_supported?: boolean | undefined
3282
3350
  }
3283
3351
  has_direct_power?: boolean | undefined
3284
3352
  battery_level?: number | undefined
@@ -3292,7 +3360,13 @@ export interface Routes {
3292
3360
  image_url?: string | undefined
3293
3361
  image_alt_text?: string | undefined
3294
3362
  serial_number?: string | undefined
3363
+ /** Currently possible to use online access codes */
3364
+ online_access_codes_enabled?: boolean | undefined
3365
+ /** Currently possible to use offline access codes */
3366
+ offline_access_codes_enabled?: boolean | undefined
3367
+ /** Deprecated: use model.offline_access_codes_enabled. */
3295
3368
  supports_accessory_keypad?: boolean | undefined
3369
+ /** Deprecated: use model.accessory_keypad_supported. */
3296
3370
  supports_offline_access_codes?: boolean | undefined
3297
3371
  } & {
3298
3372
  august_metadata?:
@@ -3856,6 +3930,9 @@ export interface Routes {
3856
3930
  model: {
3857
3931
  display_name: string
3858
3932
  manufacturer_display_name: string
3933
+ offline_access_codes_supported?: boolean | undefined
3934
+ access_codes_supported?: boolean | undefined
3935
+ accessory_keypad_supported?: boolean | undefined
3859
3936
  }
3860
3937
  has_direct_power?: boolean | undefined
3861
3938
  battery_level?: number | undefined
@@ -3869,7 +3946,13 @@ export interface Routes {
3869
3946
  image_url?: string | undefined
3870
3947
  image_alt_text?: string | undefined
3871
3948
  serial_number?: string | undefined
3949
+ /** Currently possible to use online access codes */
3950
+ online_access_codes_enabled?: boolean | undefined
3951
+ /** Currently possible to use offline access codes */
3952
+ offline_access_codes_enabled?: boolean | undefined
3953
+ /** Deprecated: use model.offline_access_codes_enabled. */
3872
3954
  supports_accessory_keypad?: boolean | undefined
3955
+ /** Deprecated: use model.accessory_keypad_supported. */
3873
3956
  supports_offline_access_codes?: boolean | undefined
3874
3957
  } & {
3875
3958
  august_metadata?:
@@ -4554,6 +4637,9 @@ export interface Routes {
4554
4637
  model: {
4555
4638
  display_name: string
4556
4639
  manufacturer_display_name: string
4640
+ offline_access_codes_supported?: boolean | undefined
4641
+ access_codes_supported?: boolean | undefined
4642
+ accessory_keypad_supported?: boolean | undefined
4557
4643
  }
4558
4644
  has_direct_power?: boolean | undefined
4559
4645
  battery_level?: number | undefined
@@ -4567,7 +4653,13 @@ export interface Routes {
4567
4653
  image_url?: string | undefined
4568
4654
  image_alt_text?: string | undefined
4569
4655
  serial_number?: string | undefined
4656
+ /** Currently possible to use online access codes */
4657
+ online_access_codes_enabled?: boolean | undefined
4658
+ /** Currently possible to use offline access codes */
4659
+ offline_access_codes_enabled?: boolean | undefined
4660
+ /** Deprecated: use model.offline_access_codes_enabled. */
4570
4661
  supports_accessory_keypad?: boolean | undefined
4662
+ /** Deprecated: use model.accessory_keypad_supported. */
4571
4663
  supports_offline_access_codes?: boolean | undefined
4572
4664
  } & {
4573
4665
  august_metadata?:
@@ -5131,6 +5223,9 @@ export interface Routes {
5131
5223
  model: {
5132
5224
  display_name: string
5133
5225
  manufacturer_display_name: string
5226
+ offline_access_codes_supported?: boolean | undefined
5227
+ access_codes_supported?: boolean | undefined
5228
+ accessory_keypad_supported?: boolean | undefined
5134
5229
  }
5135
5230
  has_direct_power?: boolean | undefined
5136
5231
  battery_level?: number | undefined
@@ -5144,7 +5239,13 @@ export interface Routes {
5144
5239
  image_url?: string | undefined
5145
5240
  image_alt_text?: string | undefined
5146
5241
  serial_number?: string | undefined
5242
+ /** Currently possible to use online access codes */
5243
+ online_access_codes_enabled?: boolean | undefined
5244
+ /** Currently possible to use offline access codes */
5245
+ offline_access_codes_enabled?: boolean | undefined
5246
+ /** Deprecated: use model.offline_access_codes_enabled. */
5147
5247
  supports_accessory_keypad?: boolean | undefined
5248
+ /** Deprecated: use model.accessory_keypad_supported. */
5148
5249
  supports_offline_access_codes?: boolean | undefined
5149
5250
  } & {
5150
5251
  august_metadata?:
@@ -6143,6 +6244,9 @@ export interface Routes {
6143
6244
  model: {
6144
6245
  display_name: string
6145
6246
  manufacturer_display_name: string
6247
+ offline_access_codes_supported?: boolean | undefined
6248
+ access_codes_supported?: boolean | undefined
6249
+ accessory_keypad_supported?: boolean | undefined
6146
6250
  }
6147
6251
  has_direct_power?: boolean | undefined
6148
6252
  battery_level?: number | undefined
@@ -6156,7 +6260,13 @@ export interface Routes {
6156
6260
  image_url?: string | undefined
6157
6261
  image_alt_text?: string | undefined
6158
6262
  serial_number?: string | undefined
6263
+ /** Currently possible to use online access codes */
6264
+ online_access_codes_enabled?: boolean | undefined
6265
+ /** Currently possible to use offline access codes */
6266
+ offline_access_codes_enabled?: boolean | undefined
6267
+ /** Deprecated: use model.offline_access_codes_enabled. */
6159
6268
  supports_accessory_keypad?: boolean | undefined
6269
+ /** Deprecated: use model.accessory_keypad_supported. */
6160
6270
  supports_offline_access_codes?: boolean | undefined
6161
6271
  } & {
6162
6272
  august_metadata?:
@@ -6871,6 +6981,9 @@ export interface Routes {
6871
6981
  model: {
6872
6982
  display_name: string
6873
6983
  manufacturer_display_name: string
6984
+ offline_access_codes_supported?: boolean | undefined
6985
+ access_codes_supported?: boolean | undefined
6986
+ accessory_keypad_supported?: boolean | undefined
6874
6987
  }
6875
6988
  has_direct_power?: boolean | undefined
6876
6989
  battery_level?: number | undefined
@@ -6884,7 +6997,13 @@ export interface Routes {
6884
6997
  image_url?: string | undefined
6885
6998
  image_alt_text?: string | undefined
6886
6999
  serial_number?: string | undefined
7000
+ /** Currently possible to use online access codes */
7001
+ online_access_codes_enabled?: boolean | undefined
7002
+ /** Currently possible to use offline access codes */
7003
+ offline_access_codes_enabled?: boolean | undefined
7004
+ /** Deprecated: use model.offline_access_codes_enabled. */
6887
7005
  supports_accessory_keypad?: boolean | undefined
7006
+ /** Deprecated: use model.accessory_keypad_supported. */
6888
7007
  supports_offline_access_codes?: boolean | undefined
6889
7008
  } & {
6890
7009
  august_metadata?:
@@ -7574,6 +7693,9 @@ export interface Routes {
7574
7693
  model: {
7575
7694
  display_name: string
7576
7695
  manufacturer_display_name: string
7696
+ offline_access_codes_supported?: boolean | undefined
7697
+ access_codes_supported?: boolean | undefined
7698
+ accessory_keypad_supported?: boolean | undefined
7577
7699
  }
7578
7700
  has_direct_power?: boolean | undefined
7579
7701
  battery_level?: number | undefined
@@ -7587,7 +7709,13 @@ export interface Routes {
7587
7709
  image_url?: string | undefined
7588
7710
  image_alt_text?: string | undefined
7589
7711
  serial_number?: string | undefined
7712
+ /** Currently possible to use online access codes */
7713
+ online_access_codes_enabled?: boolean | undefined
7714
+ /** Currently possible to use offline access codes */
7715
+ offline_access_codes_enabled?: boolean | undefined
7716
+ /** Deprecated: use model.offline_access_codes_enabled. */
7590
7717
  supports_accessory_keypad?: boolean | undefined
7718
+ /** Deprecated: use model.accessory_keypad_supported. */
7591
7719
  supports_offline_access_codes?: boolean | undefined
7592
7720
  } & {
7593
7721
  august_metadata?:
@@ -8128,7 +8256,7 @@ export interface Routes {
8128
8256
  workspace_id: string
8129
8257
  created_at: string
8130
8258
  display_name: string
8131
- external_type: 'pti_user'
8259
+ external_type: 'pti_user' | 'brivo_user'
8132
8260
  external_type_display_name: string
8133
8261
  is_suspended: boolean
8134
8262
  full_name?: string | undefined
@@ -1 +1 @@
1
- export type { ConnectWebview } from './models/index.js'
1
+ export type { ConnectWebview, CustomMetadata } from './models/index.js'
@@ -1,5 +1,7 @@
1
1
  import { z } from 'zod'
2
2
 
3
+ import { custom_metadata } from './custom-metadata.js'
4
+
3
5
  export const connect_webview = z.object({
4
6
  connect_webview_id: z.string().uuid(),
5
7
  connected_account_id: z.string().uuid().optional(),
@@ -13,6 +15,13 @@ export const connect_webview = z.object({
13
15
  created_at: z.string().datetime(),
14
16
  login_successful: z.boolean(),
15
17
  status: z.enum(['pending', 'failed', 'authorized']),
18
+ custom_redirect_url: z.string().url().nullable(),
19
+ custom_redirect_failure_url: z.string().url().nullable(),
20
+ custom_metadata,
21
+ automatically_manage_new_devices: z.boolean(),
22
+ wait_for_device_creation: z.boolean(),
23
+ authorized_at: z.string().datetime().nullable(),
24
+ selected_provider: z.string().nullable(),
16
25
  })
17
26
 
18
27
  export type ConnectWebview = z.infer<typeof connect_webview>
@@ -0,0 +1,12 @@
1
+ import { z } from 'zod'
2
+
3
+ export const custom_metadata = z
4
+ .record(
5
+ z.string().max(40),
6
+ z.union([z.string().max(500), z.number(), z.null(), z.boolean()]),
7
+ )
8
+ .refine((val) => Object.keys(val).length <= 50, {
9
+ message: 'Custom metadata is limited to a maximum of 50 keys',
10
+ })
11
+
12
+ export type CustomMetadata = z.infer<typeof custom_metadata>
@@ -1 +1,2 @@
1
1
  export * from './connect-webview.js'
2
+ export * from './custom-metadata.js'
@@ -1 +1 @@
1
- export { connect_webview } from './models/index.js'
1
+ export { connect_webview, custom_metadata } from './models/index.js'
@@ -1,6 +1,9 @@
1
1
  import { z } from 'zod'
2
2
 
3
- export const acs_credential_external_type = z.enum(['pti_card'])
3
+ export const acs_credential_external_type = z.enum([
4
+ 'pti_card',
5
+ 'brivo_credential',
6
+ ])
4
7
 
5
8
  export type AcsCredentialExternalType = z.infer<
6
9
  typeof acs_credential_external_type
@@ -8,7 +11,7 @@ export type AcsCredentialExternalType = z.infer<
8
11
 
9
12
  export const acs_credential = z.object({
10
13
  acs_credential_id: z.string().uuid(),
11
- acs_user_id: z.string().uuid(),
14
+ acs_user_id: z.string().uuid().optional(),
12
15
  acs_system_id: z.string().uuid(),
13
16
  code: z.string().nullable(),
14
17
  external_type: acs_credential_external_type,
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod'
2
2
 
3
- export const acs_user_external_type = z.enum(['pti_user'])
3
+ export const acs_user_external_type = z.enum(['pti_user', 'brivo_user'])
4
4
 
5
5
  export type AcsUserExternalType = z.infer<typeof acs_user_external_type>
6
6
 
@@ -16,6 +16,10 @@ export const common_device_properties = z.object({
16
16
  model: z.object({
17
17
  display_name: z.string(),
18
18
  manufacturer_display_name: z.string(),
19
+
20
+ offline_access_codes_supported: z.boolean().optional(),
21
+ access_codes_supported: z.boolean().optional(),
22
+ accessory_keypad_supported: z.boolean().optional(),
19
23
  }),
20
24
  has_direct_power: z.boolean().optional(),
21
25
  battery_level: z.number().min(0).max(1).optional(),
@@ -30,8 +34,25 @@ export const common_device_properties = z.object({
30
34
  image_url: z.string().url().optional(),
31
35
  image_alt_text: z.string().optional(),
32
36
  serial_number: z.string().optional(),
33
- supports_accessory_keypad: z.boolean().optional(),
34
- supports_offline_access_codes: z.boolean().optional(),
37
+
38
+ online_access_codes_enabled: z
39
+ .boolean()
40
+ .describe('Currently possible to use online access codes')
41
+ .optional(),
42
+ offline_access_codes_enabled: z
43
+ .boolean()
44
+ .describe('Currently possible to use offline access codes')
45
+ .optional(),
46
+
47
+ // Deprecated legacy capability support props
48
+ supports_accessory_keypad: z
49
+ .boolean()
50
+ .describe('Deprecated: use model.offline_access_codes_enabled.')
51
+ .optional(),
52
+ supports_offline_access_codes: z
53
+ .boolean()
54
+ .describe('Deprecated: use model.accessory_keypad_supported.')
55
+ .optional(),
35
56
  })
36
57
 
37
58
  export const managed_device = z.object({