@seamapi/types 1.60.1 → 1.62.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.
@@ -246,7 +246,7 @@ export default {
246
246
  },
247
247
  email_address: { format: 'email', type: 'string' },
248
248
  external_type: {
249
- enum: ['pti_user', 'brivo_user', 'hid_cm_user'],
249
+ enum: ['pti_user', 'brivo_user', 'hid_cm_user', 'salto_site_user'],
250
250
  type: 'string',
251
251
  },
252
252
  external_type_display_name: { type: 'string' },
@@ -469,6 +469,7 @@ export default {
469
469
  properties: {
470
470
  account_type: { type: 'string' },
471
471
  account_type_display_name: { type: 'string' },
472
+ automatically_manage_new_devices: { type: 'boolean' },
472
473
  connected_account_id: { format: 'uuid', type: 'string' },
473
474
  created_at: { format: 'date-time', type: 'string' },
474
475
  custom_metadata: {
@@ -496,7 +497,10 @@ export default {
496
497
  },
497
498
  warnings: { nullable: true },
498
499
  },
499
- required: ['account_type_display_name'],
500
+ required: [
501
+ 'account_type_display_name',
502
+ 'automatically_manage_new_devices',
503
+ ],
500
504
  type: 'object',
501
505
  },
502
506
  device: {
@@ -1847,6 +1851,19 @@ export default {
1847
1851
  is_managed: { enum: [false], type: 'boolean' },
1848
1852
  properties: {
1849
1853
  properties: {
1854
+ battery: {
1855
+ description:
1856
+ 'Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage.',
1857
+ properties: {
1858
+ level: { maximum: 1, minimum: 0, type: 'number' },
1859
+ status: {
1860
+ enum: ['critical', 'low', 'good', 'full'],
1861
+ type: 'string',
1862
+ },
1863
+ },
1864
+ required: ['level', 'status'],
1865
+ type: 'object',
1866
+ },
1850
1867
  battery_level: {
1851
1868
  description:
1852
1869
  'Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.',
@@ -1854,19 +1871,63 @@ export default {
1854
1871
  minimum: 0,
1855
1872
  type: 'number',
1856
1873
  },
1857
- image_alt_text: { type: 'string' },
1858
- image_url: { type: 'string' },
1859
- manufacturer: { type: 'string' },
1874
+ image_alt_text: {
1875
+ description: 'Alt text for the device image.',
1876
+ type: 'string',
1877
+ },
1878
+ image_url: {
1879
+ description: 'Image URL for the device.',
1880
+ format: 'uri',
1881
+ type: 'string',
1882
+ },
1883
+ manufacturer: {
1884
+ description: 'Manufacturer of the device.',
1885
+ type: 'string',
1886
+ },
1860
1887
  model: {
1861
1888
  properties: {
1862
- display_name: { type: 'string' },
1863
- manufacturer_display_name: { type: 'string' },
1889
+ accessory_keypad_supported: {
1890
+ description:
1891
+ 'Indicates whether the device supports an accessory keypad.',
1892
+ type: 'boolean',
1893
+ },
1894
+ display_name: {
1895
+ description: 'Display name of the device model.',
1896
+ type: 'string',
1897
+ },
1898
+ manufacturer_display_name: {
1899
+ description:
1900
+ 'Display name that corresponds to the manufacturer-specific terminology for the device.',
1901
+ type: 'string',
1902
+ },
1903
+ offline_access_codes_supported: {
1904
+ description:
1905
+ 'Indicates whether the device supports offline access codes.',
1906
+ type: 'boolean',
1907
+ },
1908
+ online_access_codes_supported: {
1909
+ description:
1910
+ 'Indicates whether the device supports online access codes.',
1911
+ type: 'boolean',
1912
+ },
1864
1913
  },
1865
1914
  required: ['display_name', 'manufacturer_display_name'],
1866
1915
  type: 'object',
1867
1916
  },
1868
- name: { type: 'string' },
1869
- online: { type: 'boolean' },
1917
+ name: {
1918
+ description:
1919
+ 'Name of the device. Enables administrators and users to identify the device easily, especially when there are numerous devices.',
1920
+ type: 'string',
1921
+ },
1922
+ offline_access_codes_enabled: {
1923
+ description:
1924
+ 'Indicates whether it is currently possible to use offline access codes for the device.',
1925
+ type: 'boolean',
1926
+ },
1927
+ online: {
1928
+ description: 'Indicates whether the device is online.',
1929
+ type: 'boolean',
1930
+ },
1870
1931
  online_access_codes_enabled: {
1871
1932
  description:
1872
1933
  'Indicates whether it is currently possible to use online access codes for the device.',
@@ -1979,6 +2040,11 @@ export default {
1979
2040
  scheme: 'bearer',
1980
2041
  type: 'http',
1981
2042
  },
2043
+ user_session_without_workspace: {
2044
+ bearerFormat: 'User Session Token',
2045
+ scheme: 'bearer',
2046
+ type: 'http',
2047
+ },
1982
2048
  },
1983
2049
  },
1984
2050
  info: { title: 'Seam Connect', version: '1.0.0' },
@@ -2571,9 +2637,10 @@ export default {
2571
2637
  401: { description: 'Unauthorized' },
2572
2638
  },
2573
2639
  security: [
2574
- { access_token: [], seam_workspace: [] },
2575
- { seam_client_session_token: [] },
2576
- { client_session_token: [] },
2640
+ { client_session: [] },
2641
+ { pat_with_workspace: [] },
2642
+ { console_session: [] },
2643
+ { api_key: [] },
2577
2644
  ],
2578
2645
  summary: '/access_codes/unmanaged/convert_to_managed',
2579
2646
  tags: ['/access_codes'],
@@ -2615,9 +2682,10 @@ export default {
2615
2682
  401: { description: 'Unauthorized' },
2616
2683
  },
2617
2684
  security: [
2618
- { access_token: [], seam_workspace: [] },
2619
- { seam_client_session_token: [] },
2620
- { client_session_token: [] },
2685
+ { client_session: [] },
2686
+ { pat_with_workspace: [] },
2687
+ { console_session: [] },
2688
+ { api_key: [] },
2621
2689
  ],
2622
2690
  summary: '/access_codes/unmanaged/convert_to_managed',
2623
2691
  tags: ['/access_codes'],
@@ -2664,9 +2732,10 @@ export default {
2664
2732
  401: { description: 'Unauthorized' },
2665
2733
  },
2666
2734
  security: [
2667
- { access_token: [], seam_workspace: [] },
2668
- { seam_client_session_token: [] },
2669
- { client_session_token: [] },
2735
+ { client_session: [] },
2736
+ { pat_with_workspace: [] },
2737
+ { console_session: [] },
2738
+ { api_key: [] },
2670
2739
  ],
2671
2740
  summary: '/access_codes/unmanaged/delete',
2672
2741
  tags: ['/access_codes'],
@@ -2714,9 +2783,10 @@ export default {
2714
2783
  401: { description: 'Unauthorized' },
2715
2784
  },
2716
2785
  security: [
2717
- { access_token: [], seam_workspace: [] },
2718
- { seam_client_session_token: [] },
2719
- { client_session_token: [] },
2786
+ { client_session: [] },
2787
+ { pat_with_workspace: [] },
2788
+ { console_session: [] },
2789
+ { api_key: [] },
2720
2790
  ],
2721
2791
  summary: '/access_codes/unmanaged/get',
2722
2792
  tags: ['/access_codes'],
@@ -2767,9 +2837,10 @@ export default {
2767
2837
  401: { description: 'Unauthorized' },
2768
2838
  },
2769
2839
  security: [
2770
- { access_token: [], seam_workspace: [] },
2771
- { seam_client_session_token: [] },
2772
- { client_session_token: [] },
2840
+ { client_session: [] },
2841
+ { pat_with_workspace: [] },
2842
+ { console_session: [] },
2843
+ { api_key: [] },
2773
2844
  ],
2774
2845
  summary: '/access_codes/unmanaged/list',
2775
2846
  tags: ['/access_codes'],
@@ -2815,9 +2886,10 @@ export default {
2815
2886
  401: { description: 'Unauthorized' },
2816
2887
  },
2817
2888
  security: [
2818
- { access_token: [], seam_workspace: [] },
2819
- { seam_client_session_token: [] },
2820
- { client_session_token: [] },
2889
+ { client_session: [] },
2890
+ { pat_with_workspace: [] },
2891
+ { console_session: [] },
2892
+ { api_key: [] },
2821
2893
  ],
2822
2894
  summary: '/access_codes/unmanaged/update',
2823
2895
  tags: ['/access_codes'],
@@ -2859,9 +2931,10 @@ export default {
2859
2931
  401: { description: 'Unauthorized' },
2860
2932
  },
2861
2933
  security: [
2862
- { access_token: [], seam_workspace: [] },
2863
- { seam_client_session_token: [] },
2864
- { client_session_token: [] },
2934
+ { client_session: [] },
2935
+ { pat_with_workspace: [] },
2936
+ { console_session: [] },
2937
+ { api_key: [] },
2865
2938
  ],
2866
2939
  summary: '/access_codes/unmanaged/update',
2867
2940
  tags: ['/access_codes'],
@@ -3129,9 +3202,10 @@ export default {
3129
3202
  401: { description: 'Unauthorized' },
3130
3203
  },
3131
3204
  security: [
3132
- { access_token: [], seam_workspace: [] },
3133
- { seam_client_session_token: [] },
3134
- { client_session_token: [] },
3205
+ { client_session: [] },
3206
+ { pat_with_workspace: [] },
3207
+ { console_session: [] },
3208
+ { api_key: [] },
3135
3209
  ],
3136
3210
  summary: '/acs/access_groups/add_user',
3137
3211
  tags: [],
@@ -3171,9 +3245,10 @@ export default {
3171
3245
  401: { description: 'Unauthorized' },
3172
3246
  },
3173
3247
  security: [
3174
- { access_token: [], seam_workspace: [] },
3175
- { seam_client_session_token: [] },
3176
- { client_session_token: [] },
3248
+ { client_session: [] },
3249
+ { pat_with_workspace: [] },
3250
+ { console_session: [] },
3251
+ { api_key: [] },
3177
3252
  ],
3178
3253
  summary: '/acs/access_groups/add_user',
3179
3254
  tags: [],
@@ -3218,9 +3293,10 @@ export default {
3218
3293
  401: { description: 'Unauthorized' },
3219
3294
  },
3220
3295
  security: [
3221
- { access_token: [], seam_workspace: [] },
3222
- { seam_client_session_token: [] },
3223
- { client_session_token: [] },
3296
+ { client_session: [] },
3297
+ { pat_with_workspace: [] },
3298
+ { console_session: [] },
3299
+ { api_key: [] },
3224
3300
  ],
3225
3301
  summary: '/acs/access_groups/get',
3226
3302
  tags: [],
@@ -3316,9 +3392,10 @@ export default {
3316
3392
  401: { description: 'Unauthorized' },
3317
3393
  },
3318
3394
  security: [
3319
- { access_token: [], seam_workspace: [] },
3320
- { seam_client_session_token: [] },
3321
- { client_session_token: [] },
3395
+ { client_session: [] },
3396
+ { pat_with_workspace: [] },
3397
+ { console_session: [] },
3398
+ { api_key: [] },
3322
3399
  ],
3323
3400
  summary: '/acs/access_groups/list_users',
3324
3401
  tags: [],
@@ -6132,6 +6209,56 @@ export default {
6132
6209
  'x-fern-sdk-return-value': 'connected_accounts',
6133
6210
  },
6134
6211
  },
6212
+ '/connected_accounts/update': {
6213
+ post: {
6214
+ operationId: 'connectedAccountsUpdatePost',
6215
+ requestBody: {
6216
+ content: {
6217
+ 'application/json': {
6218
+ schema: {
6219
+ properties: {
6220
+ automatically_manage_new_devices: { type: 'boolean' },
6221
+ connected_account_id: { format: 'uuid', type: 'string' },
6222
+ },
6223
+ required: ['connected_account_id'],
6224
+ type: 'object',
6225
+ },
6226
+ },
6227
+ },
6228
+ },
6229
+ responses: {
6230
+ 200: {
6231
+ content: {
6232
+ 'application/json': {
6233
+ schema: {
6234
+ properties: {
6235
+ connected_account: {
6236
+ $ref: '#/components/schemas/connected_account',
6237
+ },
6238
+ ok: { type: 'boolean' },
6239
+ },
6240
+ required: ['connected_account', 'ok'],
6241
+ type: 'object',
6242
+ },
6243
+ },
6244
+ },
6245
+ description: 'OK',
6246
+ },
6247
+ 400: { description: 'Bad Request' },
6248
+ 401: { description: 'Unauthorized' },
6249
+ },
6250
+ security: [
6251
+ { pat_with_workspace: [] },
6252
+ { console_session: [] },
6253
+ { api_key: [] },
6254
+ ],
6255
+ summary: '/connected_accounts/update',
6256
+ tags: ['/connected_accounts'],
6257
+ 'x-fern-sdk-group-name': ['connected_accounts'],
6258
+ 'x-fern-sdk-method-name': 'update',
6259
+ 'x-fern-sdk-return-value': 'connected_account',
6260
+ },
6261
+ },
6135
6262
  '/devices/delete': {
6136
6263
  post: {
6137
6264
  operationId: 'devicesDeletePost',
@@ -10052,9 +10179,12 @@ export default {
10052
10179
  401: { description: 'Unauthorized' },
10053
10180
  },
10054
10181
  security: [
10055
- { access_token: [], seam_workspace: [] },
10056
- { seam_client_session_token: [] },
10057
- { client_session_token: [] },
10182
+ { pat_with_workspace: [] },
10183
+ { pat_without_workspace: [] },
10184
+ { user_session: [] },
10185
+ { user_session_without_workspace: [] },
10186
+ { api_key: [] },
10187
+ { client_session: [] },
10058
10188
  ],
10059
10189
  summary: '/workspaces/list',
10060
10190
  tags: ['/workspaces'],
@@ -10085,9 +10215,12 @@ export default {
10085
10215
  401: { description: 'Unauthorized' },
10086
10216
  },
10087
10217
  security: [
10088
- { access_token: [], seam_workspace: [] },
10089
- { seam_client_session_token: [] },
10090
- { client_session_token: [] },
10218
+ { pat_with_workspace: [] },
10219
+ { pat_without_workspace: [] },
10220
+ { user_session: [] },
10221
+ { user_session_without_workspace: [] },
10222
+ { api_key: [] },
10223
+ { client_session: [] },
10091
10224
  ],
10092
10225
  summary: '/workspaces/list',
10093
10226
  tags: ['/workspaces'],
@@ -733,7 +733,11 @@ export interface Routes {
733
733
  workspace_id: string
734
734
  created_at: string
735
735
  display_name: string
736
- external_type: 'pti_user' | 'brivo_user' | 'hid_cm_user'
736
+ external_type:
737
+ | 'pti_user'
738
+ | 'brivo_user'
739
+ | 'hid_cm_user'
740
+ | 'salto_site_user'
737
741
  external_type_display_name: string
738
742
  is_suspended: boolean
739
743
  full_name?: string | undefined
@@ -1123,7 +1127,11 @@ export interface Routes {
1123
1127
  workspace_id: string
1124
1128
  created_at: string
1125
1129
  display_name: string
1126
- external_type: 'pti_user' | 'brivo_user' | 'hid_cm_user'
1130
+ external_type:
1131
+ | 'pti_user'
1132
+ | 'brivo_user'
1133
+ | 'hid_cm_user'
1134
+ | 'salto_site_user'
1127
1135
  external_type_display_name: string
1128
1136
  is_suspended: boolean
1129
1137
  full_name?: string | undefined
@@ -1162,7 +1170,11 @@ export interface Routes {
1162
1170
  workspace_id: string
1163
1171
  created_at: string
1164
1172
  display_name: string
1165
- external_type: 'pti_user' | 'brivo_user' | 'hid_cm_user'
1173
+ external_type:
1174
+ | 'pti_user'
1175
+ | 'brivo_user'
1176
+ | 'hid_cm_user'
1177
+ | 'salto_site_user'
1166
1178
  external_type_display_name: string
1167
1179
  is_suspended: boolean
1168
1180
  full_name?: string | undefined
@@ -1190,7 +1202,11 @@ export interface Routes {
1190
1202
  workspace_id: string
1191
1203
  created_at: string
1192
1204
  display_name: string
1193
- external_type: 'pti_user' | 'brivo_user' | 'hid_cm_user'
1205
+ external_type:
1206
+ | 'pti_user'
1207
+ | 'brivo_user'
1208
+ | 'hid_cm_user'
1209
+ | 'salto_site_user'
1194
1210
  external_type_display_name: string
1195
1211
  is_suspended: boolean
1196
1212
  full_name?: string | undefined
@@ -1687,6 +1703,7 @@ export interface Routes {
1687
1703
  custom_metadata?:
1688
1704
  | Record<string, string | number | boolean | null>
1689
1705
  | undefined
1706
+ automatically_manage_new_devices: boolean
1690
1707
  }
1691
1708
  }
1692
1709
  }
@@ -1717,9 +1734,44 @@ export interface Routes {
1717
1734
  custom_metadata?:
1718
1735
  | Record<string, string | number | boolean | null>
1719
1736
  | undefined
1737
+ automatically_manage_new_devices: boolean
1720
1738
  }>
1721
1739
  }
1722
1740
  }
1741
+ '/connected_accounts/update': {
1742
+ route: '/connected_accounts/update'
1743
+ method: 'POST'
1744
+ queryParams: {}
1745
+ jsonBody: {
1746
+ connected_account_id: string
1747
+ automatically_manage_new_devices?: boolean | undefined
1748
+ }
1749
+ commonParams: {}
1750
+ formData: {}
1751
+ jsonResponse: {
1752
+ connected_account: {
1753
+ connected_account_id?: string | undefined
1754
+ created_at?: string | undefined
1755
+ user_identifier?:
1756
+ | {
1757
+ username?: string | undefined
1758
+ api_url?: string | undefined
1759
+ email?: string | undefined
1760
+ phone?: string | undefined
1761
+ exclusive?: boolean | undefined
1762
+ }
1763
+ | undefined
1764
+ account_type?: string | undefined
1765
+ account_type_display_name: string
1766
+ errors?: any
1767
+ warnings?: any
1768
+ custom_metadata?:
1769
+ | Record<string, string | number | boolean | null>
1770
+ | undefined
1771
+ automatically_manage_new_devices: boolean
1772
+ }
1773
+ }
1774
+ }
1723
1775
  '/devices/delete': {
1724
1776
  route: '/devices/delete'
1725
1777
  method: 'DELETE' | 'POST'
@@ -3218,19 +3270,41 @@ export interface Routes {
3218
3270
  created_at: string
3219
3271
  is_managed: false
3220
3272
  properties: {
3273
+ /** Name of the device. Enables administrators and users to identify the device easily, especially when there are numerous devices. */
3221
3274
  name: string
3275
+ /** Indicates whether the device is online. */
3222
3276
  online: boolean
3277
+ /** Manufacturer of the device. */
3223
3278
  manufacturer?: string | undefined
3279
+ /** Image URL for the device. */
3224
3280
  image_url?: string | undefined
3281
+ /** Alt text for the device image. */
3225
3282
  image_alt_text?: string | undefined
3226
- model: {
3227
- display_name: string
3228
- manufacturer_display_name: string
3229
- }
3230
3283
  /** Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. */
3231
3284
  battery_level?: number | undefined
3285
+ /** Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage. */
3286
+ battery?:
3287
+ | {
3288
+ level: number
3289
+ status: 'critical' | 'low' | 'good' | 'full'
3290
+ }
3291
+ | undefined
3232
3292
  /** Indicates whether it is currently possible to use online access codes for the device. */
3233
3293
  online_access_codes_enabled?: boolean | undefined
3294
+ /** Indicates whether it is currently possible to use offline access codes for the device. */
3295
+ offline_access_codes_enabled?: boolean | undefined
3296
+ model: {
3297
+ /** Display name of the device model. */
3298
+ display_name: string
3299
+ /** Display name that corresponds to the manufacturer-specific terminology for the device. */
3300
+ manufacturer_display_name: string
3301
+ /** Indicates whether the device supports offline access codes. */
3302
+ offline_access_codes_supported?: boolean | undefined
3303
+ /** Indicates whether the device supports online access codes. */
3304
+ online_access_codes_supported?: boolean | undefined
3305
+ /** Indicates whether the device supports an accessory keypad. */
3306
+ accessory_keypad_supported?: boolean | undefined
3307
+ }
3234
3308
  }
3235
3309
  }
3236
3310
  }
@@ -3410,19 +3484,41 @@ export interface Routes {
3410
3484
  created_at: string
3411
3485
  is_managed: false
3412
3486
  properties: {
3487
+ /** Name of the device. Enables administrators and users to identify the device easily, especially when there are numerous devices. */
3413
3488
  name: string
3489
+ /** Indicates whether the device is online. */
3414
3490
  online: boolean
3491
+ /** Manufacturer of the device. */
3415
3492
  manufacturer?: string | undefined
3493
+ /** Image URL for the device. */
3416
3494
  image_url?: string | undefined
3495
+ /** Alt text for the device image. */
3417
3496
  image_alt_text?: string | undefined
3418
- model: {
3419
- display_name: string
3420
- manufacturer_display_name: string
3421
- }
3422
3497
  /** Indicates the battery level of the device as a decimal value between 0 and 1, inclusive. */
3423
3498
  battery_level?: number | undefined
3499
+ /** Represents the current status of the battery charge level. Values are "critical," which indicates an extremely low level, suggesting imminent shutdown or an urgent need for charging; "low," which signifies that the battery is under the preferred threshold and should be charged soon; "good," which denotes a satisfactory charge level, adequate for normal use without the immediate need for recharging; and "full," which represents a battery that is fully charged, providing the maximum duration of usage. */
3500
+ battery?:
3501
+ | {
3502
+ level: number
3503
+ status: 'critical' | 'low' | 'good' | 'full'
3504
+ }
3505
+ | undefined
3424
3506
  /** Indicates whether it is currently possible to use online access codes for the device. */
3425
3507
  online_access_codes_enabled?: boolean | undefined
3508
+ /** Indicates whether it is currently possible to use offline access codes for the device. */
3509
+ offline_access_codes_enabled?: boolean | undefined
3510
+ model: {
3511
+ /** Display name of the device model. */
3512
+ display_name: string
3513
+ /** Display name that corresponds to the manufacturer-specific terminology for the device. */
3514
+ manufacturer_display_name: string
3515
+ /** Indicates whether the device supports offline access codes. */
3516
+ offline_access_codes_supported?: boolean | undefined
3517
+ /** Indicates whether the device supports online access codes. */
3518
+ online_access_codes_supported?: boolean | undefined
3519
+ /** Indicates whether the device supports an accessory keypad. */
3520
+ accessory_keypad_supported?: boolean | undefined
3521
+ }
3426
3522
  }
3427
3523
  }>
3428
3524
  }
@@ -9026,7 +9122,11 @@ export interface Routes {
9026
9122
  workspace_id: string
9027
9123
  created_at: string
9028
9124
  display_name: string
9029
- external_type: 'pti_user' | 'brivo_user' | 'hid_cm_user'
9125
+ external_type:
9126
+ | 'pti_user'
9127
+ | 'brivo_user'
9128
+ | 'hid_cm_user'
9129
+ | 'salto_site_user'
9030
9130
  external_type_display_name: string
9031
9131
  is_suspended: boolean
9032
9132
  full_name?: string | undefined
@@ -4,6 +4,7 @@ export const acs_user_external_type = z.enum([
4
4
  'pti_user',
5
5
  'brivo_user',
6
6
  'hid_cm_user',
7
+ 'salto_site_user',
7
8
  ])
8
9
 
9
10
  export type AcsUserExternalType = z.infer<typeof acs_user_external_type>
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod'
2
2
 
3
- import { managed_device } from './managed-device.js'
3
+ import { common_device_properties, managed_device } from './managed-device.js'
4
4
 
5
5
  export const unmanaged_device = managed_device
6
6
  .pick({
@@ -15,31 +15,17 @@ export const unmanaged_device = managed_device
15
15
  })
16
16
  .extend({
17
17
  is_managed: z.literal(false),
18
- // todo: should pick from the managed_device schema instead of re-defining
19
- properties: z.object({
20
- name: z.string(),
21
- online: z.boolean(),
22
- manufacturer: z.string().optional(),
23
- image_url: z.string().optional(),
24
- image_alt_text: z.string().optional(),
25
- model: z.object({
26
- display_name: z.string(),
27
- manufacturer_display_name: z.string(),
28
- }),
29
- battery_level: z
30
- .number()
31
- .min(0)
32
- .max(1)
33
- .optional()
34
- .describe(
35
- 'Indicates the battery level of the device as a decimal value between 0 and 1, inclusive.',
36
- ),
37
- online_access_codes_enabled: z
38
- .boolean()
39
- .describe(
40
- 'Indicates whether it is currently possible to use online access codes for the device.',
41
- )
42
- .optional(),
18
+ properties: common_device_properties.pick({
19
+ name: true,
20
+ online: true,
21
+ manufacturer: true,
22
+ image_url: true,
23
+ image_alt_text: true,
24
+ battery_level: true,
25
+ battery: true,
26
+ online_access_codes_enabled: true,
27
+ offline_access_codes_enabled: true,
28
+ model: true,
43
29
  }),
44
30
  })
45
31