@seamapi/types 1.263.1 → 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.1",
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.',