@seamapi/types 1.263.0 → 1.264.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/types",
3
- "version": "1.263.0",
3
+ "version": "1.264.0",
4
4
  "description": "TypeScript types for the Seam API.",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -92,7 +92,7 @@
92
92
  "zod": "^3.21.4"
93
93
  },
94
94
  "devDependencies": {
95
- "@seamapi/blueprint": "^0.27.0",
95
+ "@seamapi/blueprint": "^0.28.0",
96
96
  "@types/node": "^20.8.10",
97
97
  "concurrently": "^8.2.0",
98
98
  "del-cli": "^5.0.0",
@@ -72,5 +72,53 @@ export const unmanaged_acs_credential = common_acs_credential.merge(
72
72
  }),
73
73
  )
74
74
 
75
+ export const acs_credential_on_encoder = z.object({
76
+ created_at: z
77
+ .string()
78
+ .datetime()
79
+ .describe('Date and time the credential was created.'),
80
+
81
+ is_issued: z.boolean().nullable(),
82
+
83
+ starts_at: z
84
+ .string()
85
+ .datetime()
86
+ .nullable()
87
+ .describe('Date and time the credential will become useable.'),
88
+ ends_at: z
89
+ .string()
90
+ .datetime()
91
+ .nullable()
92
+ .describe('Date and time the credential will stop being useable.'),
93
+
94
+ card_number: z
95
+ .string()
96
+ .nullable()
97
+ .describe('A number or string that physically identifies this card.'),
98
+
99
+ visionline_metadata: z
100
+ .object({
101
+ card_id: z.string(),
102
+ card_function_type: z.enum(['guest', 'staff']), // computed, looks at door ops, and checks is guest op is present.
103
+
104
+ cancelled: z.boolean(),
105
+ discarded: z.boolean(),
106
+ expired: z.boolean(),
107
+ overwritten: z.boolean(),
108
+ overridden: z.boolean().optional(),
109
+ pending_auto_update: z.boolean(),
110
+
111
+ card_format: z.enum(['TLCode', 'rfid48']),
112
+ card_holder: z.string().optional(),
113
+
114
+ number_of_issued_cards: z.number(),
115
+
116
+ // guest_acs_entrance_ids: z.array(z.string().uuid()).optional(), // computed
117
+ // common_acs_entrance_ids: z.array(z.string().uuid()).optional(), // computed
118
+ })
119
+ .optional(),
120
+ })
121
+
75
122
  export type AcsCredential = z.output<typeof acs_credential>
76
123
  export type UnmanagedAcsCredential = z.output<typeof unmanaged_acs_credential>
124
+ export type AcsCredentialOnEncoder = z.output<typeof acs_credential_on_encoder>
@@ -4,8 +4,8 @@ import { activate_climate_preset_action_attempt } from './activate-climate-prese
4
4
  import { deprecated_action_attempts } from './deprecated.js'
5
5
  import { encode_card_action_attempt } from './encode-card.js'
6
6
  import { lock_door_action_attempt } from './lock-door.js'
7
- import { read_card_action_attempt } from './read-card.js'
8
7
  import { reset_sandbox_workspace_action_attempt } from './reset-sandbox-workspace.js'
8
+ import { scan_card_action_attempt } from './scan-card.js'
9
9
  import { set_cool_action_attempt } from './set-cool.js'
10
10
  import { set_fan_mode_action_attempt } from './set-fan-mode.js'
11
11
  import { set_heat_action_attempt } from './set-heat.js'
@@ -16,7 +16,7 @@ import { unlock_door_action_attempt } from './unlock-door.js'
16
16
  export const action_attempt = z.union([
17
17
  ...lock_door_action_attempt.options,
18
18
  ...unlock_door_action_attempt.options,
19
- ...read_card_action_attempt.options,
19
+ ...scan_card_action_attempt.options,
20
20
  ...encode_card_action_attempt.options,
21
21
  ...reset_sandbox_workspace_action_attempt.options,
22
22
  ...set_cool_action_attempt.options,
@@ -1,32 +1,35 @@
1
1
  import { z } from 'zod'
2
2
 
3
+ import {
4
+ acs_credential,
5
+ acs_credential_on_encoder,
6
+ unmanaged_acs_credential,
7
+ } from '../acs/acs-credential.js'
3
8
  import {
4
9
  common_failed_action_attempt,
5
10
  common_pending_action_attempt,
6
11
  common_succeeded_action_attempt,
7
12
  } from './common.js'
8
13
 
9
- const action_type = z.literal('READ_CARD')
14
+ const action_type = z.literal('SCAN_CARD')
10
15
 
11
16
  const error = z.object({
12
17
  type: z.literal('no_card_on_encoder'),
13
18
  message: z.string(),
14
19
  })
15
20
 
21
+ const acs_credential_on_seam = acs_credential.or(unmanaged_acs_credential)
22
+
16
23
  const result = z.object({
17
- // TODO acs_credential_id: z
18
- // .string()
19
- // .uuid()
20
- // .nullable()
21
- // .describe("Matching acs_credential currently encoded on this card."),
22
- card_number: z
23
- .string()
24
+ acs_credential_on_encoder: acs_credential_on_encoder.describe(
25
+ 'Snapshot of the card data read from the physical encoder.',
26
+ ),
27
+ acs_credential_on_seam: acs_credential_on_seam
24
28
  .nullable()
25
- .describe('A number or string that physically identifies this card.'),
26
- // TODO visionline_metadata: visionline_credential_metadata,
29
+ .describe('Matching acs_credential currently encoded on this card.'),
27
30
  })
28
31
 
29
- export const read_card_action_attempt = z.discriminatedUnion('status', [
32
+ export const scan_card_action_attempt = z.discriminatedUnion('status', [
30
33
  common_pending_action_attempt
31
34
  .extend({
32
35
  action_type,
@@ -43,4 +46,4 @@ export const read_card_action_attempt = z.discriminatedUnion('status', [
43
46
  .describe('Reading card data from physical encoder failed.'),
44
47
  ])
45
48
 
46
- export type ReadCardActionAttempt = z.infer<typeof read_card_action_attempt>
49
+ export type ScanCardActionAttempt = z.infer<typeof scan_card_action_attempt>
@@ -1223,7 +1223,7 @@ export default {
1223
1223
  type: 'string',
1224
1224
  'x-title': 'Action Attempt ID',
1225
1225
  },
1226
- action_type: { enum: ['READ_CARD'], type: 'string' },
1226
+ action_type: { enum: ['SCAN_CARD'], type: 'string' },
1227
1227
  error: { nullable: true },
1228
1228
  result: { nullable: true },
1229
1229
  status: { enum: ['pending'], type: 'string' },
@@ -1246,18 +1246,323 @@ export default {
1246
1246
  type: 'string',
1247
1247
  'x-title': 'Action Attempt ID',
1248
1248
  },
1249
- action_type: { enum: ['READ_CARD'], type: 'string' },
1249
+ action_type: { enum: ['SCAN_CARD'], type: 'string' },
1250
1250
  error: { nullable: true },
1251
1251
  result: {
1252
1252
  properties: {
1253
- card_number: {
1253
+ acs_credential_on_encoder: {
1254
1254
  description:
1255
- 'A number or string that physically identifies this card.',
1255
+ 'Snapshot of the card data read from the physical encoder.',
1256
+ properties: {
1257
+ card_number: {
1258
+ description:
1259
+ 'A number or string that physically identifies this card.',
1260
+ nullable: true,
1261
+ type: 'string',
1262
+ },
1263
+ created_at: {
1264
+ description:
1265
+ 'Date and time the credential was created.',
1266
+ format: 'date-time',
1267
+ type: 'string',
1268
+ },
1269
+ ends_at: {
1270
+ description:
1271
+ 'Date and time the credential will stop being useable.',
1272
+ format: 'date-time',
1273
+ nullable: true,
1274
+ type: 'string',
1275
+ },
1276
+ is_issued: { nullable: true, type: 'boolean' },
1277
+ starts_at: {
1278
+ description:
1279
+ 'Date and time the credential will become useable.',
1280
+ format: 'date-time',
1281
+ nullable: true,
1282
+ type: 'string',
1283
+ },
1284
+ visionline_metadata: {
1285
+ properties: {
1286
+ cancelled: { type: 'boolean' },
1287
+ card_format: {
1288
+ enum: ['TLCode', 'rfid48'],
1289
+ type: 'string',
1290
+ },
1291
+ card_function_type: {
1292
+ enum: ['guest', 'staff'],
1293
+ type: 'string',
1294
+ },
1295
+ card_holder: { type: 'string' },
1296
+ card_id: { type: 'string' },
1297
+ discarded: { type: 'boolean' },
1298
+ expired: { type: 'boolean' },
1299
+ number_of_issued_cards: {
1300
+ format: 'float',
1301
+ type: 'number',
1302
+ },
1303
+ overridden: { type: 'boolean' },
1304
+ overwritten: { type: 'boolean' },
1305
+ pending_auto_update: { type: 'boolean' },
1306
+ },
1307
+ required: [
1308
+ 'card_id',
1309
+ 'card_function_type',
1310
+ 'cancelled',
1311
+ 'discarded',
1312
+ 'expired',
1313
+ 'overwritten',
1314
+ 'pending_auto_update',
1315
+ 'card_format',
1316
+ 'number_of_issued_cards',
1317
+ ],
1318
+ type: 'object',
1319
+ },
1320
+ },
1321
+ required: [
1322
+ 'created_at',
1323
+ 'is_issued',
1324
+ 'starts_at',
1325
+ 'ends_at',
1326
+ 'card_number',
1327
+ ],
1328
+ type: 'object',
1329
+ },
1330
+ acs_credential_on_seam: {
1331
+ description:
1332
+ 'Matching acs_credential currently encoded on this card.',
1256
1333
  nullable: true,
1257
- type: 'string',
1334
+ oneOf: [
1335
+ {
1336
+ properties: {
1337
+ access_method: {
1338
+ enum: ['code', 'card', 'mobile_key'],
1339
+ type: 'string',
1340
+ },
1341
+ acs_credential_id: { format: 'uuid', type: 'string' },
1342
+ acs_credential_pool_id: {
1343
+ format: 'uuid',
1344
+ type: 'string',
1345
+ },
1346
+ acs_system_id: { format: 'uuid', type: 'string' },
1347
+ acs_user_id: { format: 'uuid', type: 'string' },
1348
+ card_number: { nullable: true, type: 'string' },
1349
+ code: { nullable: true, type: 'string' },
1350
+ created_at: { format: 'date-time', type: 'string' },
1351
+ display_name: { minLength: 1, type: 'string' },
1352
+ ends_at: { type: 'string' },
1353
+ errors: {
1354
+ items: {
1355
+ properties: {
1356
+ error_code: { type: 'string' },
1357
+ message: { type: 'string' },
1358
+ },
1359
+ required: ['error_code', 'message'],
1360
+ type: 'object',
1361
+ },
1362
+ type: 'array',
1363
+ },
1364
+ external_type: {
1365
+ enum: [
1366
+ 'pti_card',
1367
+ 'brivo_credential',
1368
+ 'hid_credential',
1369
+ 'visionline_card',
1370
+ 'salto_ks_credential',
1371
+ ],
1372
+ type: 'string',
1373
+ },
1374
+ external_type_display_name: { type: 'string' },
1375
+ is_issued: { type: 'boolean' },
1376
+ is_latest_desired_state_synced_with_provider: {
1377
+ type: 'boolean',
1378
+ },
1379
+ is_managed: { enum: [true], type: 'boolean' },
1380
+ is_multi_phone_sync_credential: { type: 'boolean' },
1381
+ issued_at: {
1382
+ format: 'date-time',
1383
+ nullable: true,
1384
+ type: 'string',
1385
+ },
1386
+ latest_desired_state_synced_with_provider_at: {
1387
+ format: 'date-time',
1388
+ type: 'string',
1389
+ },
1390
+ parent_acs_credential_id: {
1391
+ format: 'uuid',
1392
+ type: 'string',
1393
+ },
1394
+ starts_at: { type: 'string' },
1395
+ visionline_metadata: {
1396
+ properties: {
1397
+ auto_join: { type: 'boolean' },
1398
+ card_function_type: {
1399
+ enum: ['guest', 'staff'],
1400
+ type: 'string',
1401
+ },
1402
+ card_id: { type: 'string' },
1403
+ common_acs_entrance_ids: {
1404
+ items: { format: 'uuid', type: 'string' },
1405
+ type: 'array',
1406
+ },
1407
+ credential_id: { type: 'string' },
1408
+ guest_acs_entrance_ids: {
1409
+ items: { format: 'uuid', type: 'string' },
1410
+ type: 'array',
1411
+ },
1412
+ is_valid: { type: 'boolean' },
1413
+ joiner_acs_credential_ids: {
1414
+ items: { format: 'uuid', type: 'string' },
1415
+ type: 'array',
1416
+ },
1417
+ },
1418
+ required: ['card_function_type'],
1419
+ type: 'object',
1420
+ },
1421
+ warnings: {
1422
+ items: {
1423
+ properties: {
1424
+ message: { type: 'string' },
1425
+ warning_code: { type: 'string' },
1426
+ },
1427
+ required: ['warning_code', 'message'],
1428
+ type: 'object',
1429
+ },
1430
+ type: 'array',
1431
+ },
1432
+ workspace_id: { format: 'uuid', type: 'string' },
1433
+ },
1434
+ required: [
1435
+ 'acs_credential_id',
1436
+ 'acs_system_id',
1437
+ 'display_name',
1438
+ 'access_method',
1439
+ 'created_at',
1440
+ 'workspace_id',
1441
+ 'errors',
1442
+ 'warnings',
1443
+ 'is_managed',
1444
+ ],
1445
+ type: 'object',
1446
+ },
1447
+ {
1448
+ properties: {
1449
+ access_method: {
1450
+ enum: ['code', 'card', 'mobile_key'],
1451
+ type: 'string',
1452
+ },
1453
+ acs_credential_id: { format: 'uuid', type: 'string' },
1454
+ acs_credential_pool_id: {
1455
+ format: 'uuid',
1456
+ type: 'string',
1457
+ },
1458
+ acs_system_id: { format: 'uuid', type: 'string' },
1459
+ acs_user_id: { format: 'uuid', type: 'string' },
1460
+ card_number: { nullable: true, type: 'string' },
1461
+ code: { nullable: true, type: 'string' },
1462
+ created_at: { format: 'date-time', type: 'string' },
1463
+ display_name: { minLength: 1, type: 'string' },
1464
+ ends_at: { type: 'string' },
1465
+ errors: {
1466
+ items: {
1467
+ properties: {
1468
+ error_code: { type: 'string' },
1469
+ message: { type: 'string' },
1470
+ },
1471
+ required: ['error_code', 'message'],
1472
+ type: 'object',
1473
+ },
1474
+ type: 'array',
1475
+ },
1476
+ external_type: {
1477
+ enum: [
1478
+ 'pti_card',
1479
+ 'brivo_credential',
1480
+ 'hid_credential',
1481
+ 'visionline_card',
1482
+ 'salto_ks_credential',
1483
+ ],
1484
+ type: 'string',
1485
+ },
1486
+ external_type_display_name: { type: 'string' },
1487
+ is_issued: { type: 'boolean' },
1488
+ is_latest_desired_state_synced_with_provider: {
1489
+ type: 'boolean',
1490
+ },
1491
+ is_managed: { enum: [false], type: 'boolean' },
1492
+ is_multi_phone_sync_credential: { type: 'boolean' },
1493
+ issued_at: {
1494
+ format: 'date-time',
1495
+ nullable: true,
1496
+ type: 'string',
1497
+ },
1498
+ latest_desired_state_synced_with_provider_at: {
1499
+ format: 'date-time',
1500
+ type: 'string',
1501
+ },
1502
+ parent_acs_credential_id: {
1503
+ format: 'uuid',
1504
+ type: 'string',
1505
+ },
1506
+ starts_at: { type: 'string' },
1507
+ visionline_metadata: {
1508
+ properties: {
1509
+ auto_join: { type: 'boolean' },
1510
+ card_function_type: {
1511
+ enum: ['guest', 'staff'],
1512
+ type: 'string',
1513
+ },
1514
+ card_id: { type: 'string' },
1515
+ common_acs_entrance_ids: {
1516
+ items: { format: 'uuid', type: 'string' },
1517
+ type: 'array',
1518
+ },
1519
+ credential_id: { type: 'string' },
1520
+ guest_acs_entrance_ids: {
1521
+ items: { format: 'uuid', type: 'string' },
1522
+ type: 'array',
1523
+ },
1524
+ is_valid: { type: 'boolean' },
1525
+ joiner_acs_credential_ids: {
1526
+ items: { format: 'uuid', type: 'string' },
1527
+ type: 'array',
1528
+ },
1529
+ },
1530
+ required: ['card_function_type'],
1531
+ type: 'object',
1532
+ },
1533
+ warnings: {
1534
+ items: {
1535
+ properties: {
1536
+ message: { type: 'string' },
1537
+ warning_code: { type: 'string' },
1538
+ },
1539
+ required: ['warning_code', 'message'],
1540
+ type: 'object',
1541
+ },
1542
+ type: 'array',
1543
+ },
1544
+ workspace_id: { format: 'uuid', type: 'string' },
1545
+ },
1546
+ required: [
1547
+ 'acs_credential_id',
1548
+ 'acs_system_id',
1549
+ 'display_name',
1550
+ 'access_method',
1551
+ 'created_at',
1552
+ 'workspace_id',
1553
+ 'errors',
1554
+ 'warnings',
1555
+ 'is_managed',
1556
+ ],
1557
+ type: 'object',
1558
+ },
1559
+ ],
1258
1560
  },
1259
1561
  },
1260
- required: ['card_number'],
1562
+ required: [
1563
+ 'acs_credential_on_encoder',
1564
+ 'acs_credential_on_seam',
1565
+ ],
1261
1566
  type: 'object',
1262
1567
  },
1263
1568
  status: { enum: ['success'], type: 'string' },
@@ -1280,7 +1585,7 @@ export default {
1280
1585
  type: 'string',
1281
1586
  'x-title': 'Action Attempt ID',
1282
1587
  },
1283
- action_type: { enum: ['READ_CARD'], type: 'string' },
1588
+ action_type: { enum: ['SCAN_CARD'], type: 'string' },
1284
1589
  error: {
1285
1590
  properties: {
1286
1591
  message: { type: 'string' },
@@ -7773,9 +8078,9 @@ export default {
7773
8078
  'x-undocumented': 'Encoders are in alpha.',
7774
8079
  },
7775
8080
  },
7776
- '/acs/encoders/read_card': {
8081
+ '/acs/encoders/scan_card': {
7777
8082
  post: {
7778
- operationId: 'acsEncodersReadCardPost',
8083
+ operationId: 'acsEncodersScanCardPost',
7779
8084
  requestBody: {
7780
8085
  content: {
7781
8086
  'application/json': {
@@ -7828,10 +8133,10 @@ export default {
7828
8133
  { console_session: [] },
7829
8134
  { api_key: [] },
7830
8135
  ],
7831
- summary: '/acs/encoders/read_card',
8136
+ summary: '/acs/encoders/scan_card',
7832
8137
  tags: ['/acs'],
7833
8138
  'x-fern-sdk-group-name': ['acs', 'encoders'],
7834
- 'x-fern-sdk-method-name': 'read_card',
8139
+ 'x-fern-sdk-method-name': 'scan_card',
7835
8140
  'x-fern-sdk-return-value': 'action_attempt',
7836
8141
  'x-response-key': 'action_attempt',
7837
8142
  'x-undocumented': 'Reading a card is currently unimplemented.',
@@ -8100,7 +8405,7 @@ export default {
8100
8405
  '/acs/systems/list': {
8101
8406
  post: {
8102
8407
  description:
8103
- 'Returns a list of all [access control systems](https://docs.seam.co/latest/capability-guides/access-systems).\n\nTo filter the list of returned access control systems by a specific connected account ID, include the \n`connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the \nresponse includes all access control systems connected to your workspace.',
8408
+ 'Returns a list of all [access control systems](https://docs.seam.co/latest/capability-guides/access-systems).\n\nTo filter the list of returned access control systems by a specific connected account ID, include the\n`connected_account_id` in the request body. If you omit the `connected_account_id` parameter, the\nresponse includes all access control systems connected to your workspace.',
8104
8409
  operationId: 'acsSystemsListPost',
8105
8410
  requestBody: {
8106
8411
  content: {
@@ -8159,7 +8464,7 @@ export default {
8159
8464
  '/acs/systems/list_compatible_credential_manager_acs_systems': {
8160
8465
  post: {
8161
8466
  description:
8162
- 'Returns a list of all credential manager ACS systems that are compatible with a specified \n[access control system](https://docs.seam.co/latest/capability-guides/access-systems).\n\nSpecify the ACS system for which you want to retrieve all compatible credential manager ACS \nsystems by including the corresponding `acs_system_id` in the request body.',
8467
+ 'Returns a list of all credential manager ACS systems that are compatible with a specified\n[access control system](https://docs.seam.co/latest/capability-guides/access-systems).\n\nSpecify the ACS system for which you want to retrieve all compatible credential manager ACS\nsystems by including the corresponding `acs_system_id` in the request body.',
8163
8468
  operationId: 'acsSystemsListCompatibleCredentialManagerAcsSystemsPost',
8164
8469
  requestBody: {
8165
8470
  content: {
@@ -14266,13 +14571,17 @@ export default {
14266
14571
  'application/json': {
14267
14572
  schema: {
14268
14573
  properties: {
14574
+ devices: {
14575
+ items: { $ref: '#/components/schemas/device' },
14576
+ type: 'array',
14577
+ },
14269
14578
  ok: { type: 'boolean' },
14270
14579
  thermostats: {
14271
14580
  items: { $ref: '#/components/schemas/device' },
14272
14581
  type: 'array',
14273
14582
  },
14274
14583
  },
14275
- required: ['thermostats', 'ok'],
14584
+ required: ['thermostats', 'devices', 'ok'],
14276
14585
  type: 'object',
14277
14586
  },
14278
14587
  },
@@ -14292,8 +14601,8 @@ export default {
14292
14601
  tags: ['/thermostats'],
14293
14602
  'x-fern-sdk-group-name': ['thermostats'],
14294
14603
  'x-fern-sdk-method-name': 'list',
14295
- 'x-fern-sdk-return-value': 'thermostats',
14296
- 'x-response-key': 'thermostats',
14604
+ 'x-fern-sdk-return-value': 'devices',
14605
+ 'x-response-key': 'devices',
14297
14606
  },
14298
14607
  },
14299
14608
  '/thermostats/off': {