@camstack/addon-static-turn 1.2.11 → 1.2.12
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/dist/static-turn.addon.js +316 -31
- package/dist/static-turn.addon.mjs +316 -31
- package/package.json +1 -1
|
@@ -7535,12 +7535,11 @@ var RecordingConfigSchema = object({
|
|
|
7535
7535
|
/**
|
|
7536
7536
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7537
7537
|
*
|
|
7538
|
-
* One shape shared by the recorder
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
*
|
|
7543
|
-
* row on the owning addon's surface.
|
|
7538
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7539
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7540
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7541
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7542
|
+
* addon surface.
|
|
7544
7543
|
*/
|
|
7545
7544
|
var RelocateJobStateSchema = _enum([
|
|
7546
7545
|
"running",
|
|
@@ -7567,19 +7566,100 @@ var RelocateJobSchema = object({
|
|
|
7567
7566
|
finishedAt: number().nullable(),
|
|
7568
7567
|
error: string().nullable()
|
|
7569
7568
|
});
|
|
7569
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7570
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7571
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7570
7572
|
var RelocateFootageInputSchema = object({
|
|
7571
|
-
deviceId: number().optional(),
|
|
7572
7573
|
fromLocationId: string(),
|
|
7573
7574
|
toLocationId: string(),
|
|
7574
7575
|
entities: array(_enum(["segments"])).optional(),
|
|
7576
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7577
|
+
* pre-orchestration compatibility path. */
|
|
7578
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7575
7579
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7576
7580
|
* never allowed to starve live writers. */
|
|
7577
7581
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7578
7582
|
});
|
|
7579
|
-
|
|
7580
|
-
|
|
7583
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7584
|
+
* from persistent recording settings: a migration never changes
|
|
7585
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7586
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7588
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7581
7589
|
toLocationId: string(),
|
|
7582
7590
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7591
|
+
}).extend({ leaseId: string().min(1) });
|
|
7592
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7593
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7594
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7595
|
+
var StorageMigrationClassSchema = _enum([
|
|
7596
|
+
"recordings",
|
|
7597
|
+
"recordingsLow",
|
|
7598
|
+
"eventMedia"
|
|
7599
|
+
]);
|
|
7600
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7601
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7602
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7603
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7604
|
+
recordings: string().min(1).optional(),
|
|
7605
|
+
recordingsLow: string().min(1).optional(),
|
|
7606
|
+
eventMedia: string().min(1).optional()
|
|
7607
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7608
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7609
|
+
var StorageMigrationInputSchema = object({
|
|
7610
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7611
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7612
|
+
});
|
|
7613
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7614
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7615
|
+
* verified. */
|
|
7616
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7617
|
+
"planning",
|
|
7618
|
+
"pausing",
|
|
7619
|
+
"moving",
|
|
7620
|
+
"verifying",
|
|
7621
|
+
"repointing",
|
|
7622
|
+
"refreshing",
|
|
7623
|
+
"resuming",
|
|
7624
|
+
"done",
|
|
7625
|
+
"failed",
|
|
7626
|
+
"cancelled"
|
|
7627
|
+
]);
|
|
7628
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7629
|
+
"pipeline",
|
|
7630
|
+
"recorder",
|
|
7631
|
+
"analytics"
|
|
7632
|
+
]);
|
|
7633
|
+
var StorageMigrationMoveSchema = object({
|
|
7634
|
+
storageClass: StorageMigrationClassSchema,
|
|
7635
|
+
fromLocationId: string(),
|
|
7636
|
+
toLocationId: string(),
|
|
7637
|
+
moverJobId: string().nullable(),
|
|
7638
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7639
|
+
error: string().nullable()
|
|
7640
|
+
});
|
|
7641
|
+
var StorageMigrationJobSchema = object({
|
|
7642
|
+
jobId: string(),
|
|
7643
|
+
phase: StorageMigrationPhaseSchema,
|
|
7644
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7645
|
+
throttleMbps: number(),
|
|
7646
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7647
|
+
pauseLeaseId: string().nullable(),
|
|
7648
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7649
|
+
repointed: boolean(),
|
|
7650
|
+
cancelRequested: boolean(),
|
|
7651
|
+
startedAt: number(),
|
|
7652
|
+
updatedAt: number(),
|
|
7653
|
+
finishedAt: number().nullable(),
|
|
7654
|
+
error: string().nullable()
|
|
7655
|
+
});
|
|
7656
|
+
var StorageMigrationPlanSchema = object({
|
|
7657
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7658
|
+
moves: array(object({
|
|
7659
|
+
storageClass: StorageMigrationClassSchema,
|
|
7660
|
+
fromLocationId: string(),
|
|
7661
|
+
toLocationId: string()
|
|
7662
|
+
}))
|
|
7583
7663
|
});
|
|
7584
7664
|
/**
|
|
7585
7665
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15955,13 +16035,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15955
16035
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15956
16036
|
kind: "mutation",
|
|
15957
16037
|
auth: "admin"
|
|
15958
|
-
}), method(
|
|
16038
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15959
16039
|
kind: "mutation",
|
|
15960
16040
|
auth: "admin"
|
|
15961
|
-
}), method(object({
|
|
15962
|
-
kind: "
|
|
16041
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16042
|
+
kind: "mutation",
|
|
16043
|
+
auth: "admin"
|
|
16044
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16045
|
+
kind: "mutation",
|
|
16046
|
+
auth: "admin"
|
|
16047
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16048
|
+
kind: "mutation",
|
|
15963
16049
|
auth: "admin"
|
|
15964
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16050
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15965
16051
|
kind: "mutation",
|
|
15966
16052
|
auth: "admin"
|
|
15967
16053
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17458,7 +17544,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17458
17544
|
reachable: boolean(),
|
|
17459
17545
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17460
17546
|
});
|
|
17461
|
-
method(object({
|
|
17547
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17548
|
+
kind: "mutation",
|
|
17549
|
+
auth: "admin"
|
|
17550
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17551
|
+
kind: "mutation",
|
|
17552
|
+
auth: "admin"
|
|
17553
|
+
}), method(object({
|
|
17462
17554
|
deviceId: number(),
|
|
17463
17555
|
agentNodeId: string()
|
|
17464
17556
|
}), object({ success: literal(true) }), {
|
|
@@ -18132,6 +18224,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18132
18224
|
locationId: string(),
|
|
18133
18225
|
targetBytes: number().int().positive()
|
|
18134
18226
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18227
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18228
|
+
kind: "mutation",
|
|
18229
|
+
auth: "admin"
|
|
18230
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18231
|
+
kind: "mutation",
|
|
18232
|
+
auth: "admin"
|
|
18233
|
+
});
|
|
18135
18234
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18136
18235
|
providerId: string().min(1),
|
|
18137
18236
|
displayName: string().min(1),
|
|
@@ -18235,6 +18334,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18235
18334
|
label: string(),
|
|
18236
18335
|
description: string().optional()
|
|
18237
18336
|
});
|
|
18337
|
+
/**
|
|
18338
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18339
|
+
* an instance declares a camera.
|
|
18340
|
+
*/
|
|
18341
|
+
var TerminalInstanceInfoSchema = object({
|
|
18342
|
+
instanceId: string(),
|
|
18343
|
+
cameraStableId: string(),
|
|
18344
|
+
nodeId: string(),
|
|
18345
|
+
profileId: string(),
|
|
18346
|
+
profileLabel: string(),
|
|
18347
|
+
name: string(),
|
|
18348
|
+
enabled: boolean()
|
|
18349
|
+
});
|
|
18350
|
+
var TerminalLegacyCameraSchema = object({
|
|
18351
|
+
stableId: string(),
|
|
18352
|
+
nodeId: string(),
|
|
18353
|
+
profileId: string(),
|
|
18354
|
+
profileLabel: string(),
|
|
18355
|
+
name: string(),
|
|
18356
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18357
|
+
adoptable: boolean()
|
|
18358
|
+
});
|
|
18238
18359
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18239
18360
|
seq: number().int().positive(),
|
|
18240
18361
|
kind: literal("data"),
|
|
@@ -18251,7 +18372,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18251
18372
|
snapshot: string().optional(),
|
|
18252
18373
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18253
18374
|
});
|
|
18254
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18375
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18376
|
+
targetNodeId: string().min(1),
|
|
18377
|
+
profileId: string().min(1),
|
|
18378
|
+
name: string().trim().min(1).max(160).optional()
|
|
18379
|
+
}), TerminalInstanceInfoSchema, {
|
|
18380
|
+
kind: "mutation",
|
|
18381
|
+
auth: "admin"
|
|
18382
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18383
|
+
kind: "mutation",
|
|
18384
|
+
auth: "admin"
|
|
18385
|
+
}), method(object({
|
|
18386
|
+
instanceId: string().min(1),
|
|
18387
|
+
enabled: boolean()
|
|
18388
|
+
}), TerminalInstanceInfoSchema, {
|
|
18389
|
+
kind: "mutation",
|
|
18390
|
+
auth: "admin"
|
|
18391
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18392
|
+
stableId: string().min(1),
|
|
18393
|
+
name: string().trim().min(1).max(160).optional()
|
|
18394
|
+
}), TerminalInstanceInfoSchema, {
|
|
18395
|
+
kind: "mutation",
|
|
18396
|
+
auth: "admin"
|
|
18397
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18255
18398
|
profileId: string(),
|
|
18256
18399
|
cols: number().int().positive(),
|
|
18257
18400
|
rows: number().int().positive()
|
|
@@ -18268,7 +18411,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18268
18411
|
}), method(object({
|
|
18269
18412
|
sessionId: string(),
|
|
18270
18413
|
afterSeq: number().int().nonnegative(),
|
|
18271
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18414
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18415
|
+
/**
|
|
18416
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18417
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18418
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18419
|
+
*/
|
|
18420
|
+
waitForOutput: boolean().optional()
|
|
18272
18421
|
}), TerminalOutputBatchSchema, {
|
|
18273
18422
|
kind: "mutation",
|
|
18274
18423
|
auth: "admin",
|
|
@@ -20232,6 +20381,7 @@ var FaceInfoSchema = object({
|
|
|
20232
20381
|
var FaceFilterEnum = _enum([
|
|
20233
20382
|
"unassigned",
|
|
20234
20383
|
"recognized",
|
|
20384
|
+
"identified",
|
|
20235
20385
|
"all"
|
|
20236
20386
|
]);
|
|
20237
20387
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20260,6 +20410,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20260
20410
|
kind: "mutation",
|
|
20261
20411
|
auth: "admin"
|
|
20262
20412
|
}), method(object({
|
|
20413
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20414
|
+
deviceId: number().int().optional(),
|
|
20263
20415
|
limit: number().int().positive().optional(),
|
|
20264
20416
|
filter: FaceFilterEnum.optional(),
|
|
20265
20417
|
/**
|
|
@@ -22025,6 +22177,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22025
22177
|
capName: string().min(1).max(64),
|
|
22026
22178
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22027
22179
|
valuePath: string().min(1).max(64)
|
|
22180
|
+
}),
|
|
22181
|
+
object({
|
|
22182
|
+
kind: literal("latest-recognition"),
|
|
22183
|
+
recognition: _enum(["person", "plate"])
|
|
22028
22184
|
})
|
|
22029
22185
|
]);
|
|
22030
22186
|
var OsdSlotBindingSchema = object({
|
|
@@ -22130,6 +22286,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22130
22286
|
}), object({ success: literal(true) }), {
|
|
22131
22287
|
kind: "mutation",
|
|
22132
22288
|
auth: "admin"
|
|
22289
|
+
}), method(object({
|
|
22290
|
+
sourceDeviceId: number().int(),
|
|
22291
|
+
targetDeviceId: number().int()
|
|
22292
|
+
}), object({
|
|
22293
|
+
copied: number().int().nonnegative(),
|
|
22294
|
+
skipped: number().int().nonnegative()
|
|
22295
|
+
}), {
|
|
22296
|
+
kind: "mutation",
|
|
22297
|
+
auth: "admin"
|
|
22133
22298
|
}), method(object({
|
|
22134
22299
|
deviceId: number().int(),
|
|
22135
22300
|
slotId: string().min(1),
|
|
@@ -23015,13 +23180,19 @@ method(object({
|
|
|
23015
23180
|
}), {
|
|
23016
23181
|
kind: "mutation",
|
|
23017
23182
|
auth: "admin"
|
|
23018
|
-
}), method(
|
|
23183
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23019
23184
|
kind: "mutation",
|
|
23020
23185
|
auth: "admin"
|
|
23021
|
-
}), method(object({
|
|
23022
|
-
kind: "
|
|
23186
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23187
|
+
kind: "mutation",
|
|
23023
23188
|
auth: "admin"
|
|
23024
|
-
}), method(
|
|
23189
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23190
|
+
kind: "mutation",
|
|
23191
|
+
auth: "admin"
|
|
23192
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23193
|
+
kind: "mutation",
|
|
23194
|
+
auth: "admin"
|
|
23195
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23025
23196
|
kind: "mutation",
|
|
23026
23197
|
auth: "admin"
|
|
23027
23198
|
});
|
|
@@ -27143,6 +27314,12 @@ Object.freeze({
|
|
|
27143
27314
|
addonId: null,
|
|
27144
27315
|
access: "delete"
|
|
27145
27316
|
},
|
|
27317
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27318
|
+
capName: "osd-manager",
|
|
27319
|
+
capScope: "system",
|
|
27320
|
+
addonId: null,
|
|
27321
|
+
access: "create"
|
|
27322
|
+
},
|
|
27146
27323
|
"osdManager.getConditionSupport": {
|
|
27147
27324
|
capName: "osd-manager",
|
|
27148
27325
|
capScope: "system",
|
|
@@ -27239,7 +27416,7 @@ Object.freeze({
|
|
|
27239
27416
|
addonId: null,
|
|
27240
27417
|
access: "create"
|
|
27241
27418
|
},
|
|
27242
|
-
"pipelineAnalytics.
|
|
27419
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27243
27420
|
capName: "pipeline-analytics",
|
|
27244
27421
|
capScope: "device",
|
|
27245
27422
|
addonId: null,
|
|
@@ -27311,12 +27488,6 @@ Object.freeze({
|
|
|
27311
27488
|
addonId: null,
|
|
27312
27489
|
access: "view"
|
|
27313
27490
|
},
|
|
27314
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27315
|
-
capName: "pipeline-analytics",
|
|
27316
|
-
capScope: "device",
|
|
27317
|
-
addonId: null,
|
|
27318
|
-
access: "view"
|
|
27319
|
-
},
|
|
27320
27491
|
"pipelineAnalytics.getMotionEvents": {
|
|
27321
27492
|
capName: "pipeline-analytics",
|
|
27322
27493
|
capScope: "device",
|
|
@@ -27353,6 +27524,12 @@ Object.freeze({
|
|
|
27353
27524
|
addonId: null,
|
|
27354
27525
|
access: "view"
|
|
27355
27526
|
},
|
|
27527
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27528
|
+
capName: "pipeline-analytics",
|
|
27529
|
+
capScope: "device",
|
|
27530
|
+
addonId: null,
|
|
27531
|
+
access: "view"
|
|
27532
|
+
},
|
|
27356
27533
|
"pipelineAnalytics.getTrack": {
|
|
27357
27534
|
capName: "pipeline-analytics",
|
|
27358
27535
|
capScope: "device",
|
|
@@ -27431,6 +27608,12 @@ Object.freeze({
|
|
|
27431
27608
|
addonId: null,
|
|
27432
27609
|
access: "view"
|
|
27433
27610
|
},
|
|
27611
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27612
|
+
capName: "pipeline-analytics",
|
|
27613
|
+
capScope: "device",
|
|
27614
|
+
addonId: null,
|
|
27615
|
+
access: "create"
|
|
27616
|
+
},
|
|
27434
27617
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27435
27618
|
capName: "pipeline-analytics",
|
|
27436
27619
|
capScope: "device",
|
|
@@ -27461,7 +27644,7 @@ Object.freeze({
|
|
|
27461
27644
|
addonId: null,
|
|
27462
27645
|
access: "create"
|
|
27463
27646
|
},
|
|
27464
|
-
"pipelineAnalytics.
|
|
27647
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27465
27648
|
capName: "pipeline-analytics",
|
|
27466
27649
|
capScope: "device",
|
|
27467
27650
|
addonId: null,
|
|
@@ -27473,6 +27656,12 @@ Object.freeze({
|
|
|
27473
27656
|
addonId: null,
|
|
27474
27657
|
access: "create"
|
|
27475
27658
|
},
|
|
27659
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27660
|
+
capName: "pipeline-analytics",
|
|
27661
|
+
capScope: "device",
|
|
27662
|
+
addonId: null,
|
|
27663
|
+
access: "create"
|
|
27664
|
+
},
|
|
27476
27665
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27477
27666
|
capName: "pipeline-analytics",
|
|
27478
27667
|
capScope: "device",
|
|
@@ -27497,6 +27686,12 @@ Object.freeze({
|
|
|
27497
27686
|
addonId: null,
|
|
27498
27687
|
access: "create"
|
|
27499
27688
|
},
|
|
27689
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27690
|
+
capName: "pipeline-analytics",
|
|
27691
|
+
capScope: "device",
|
|
27692
|
+
addonId: null,
|
|
27693
|
+
access: "create"
|
|
27694
|
+
},
|
|
27500
27695
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27501
27696
|
capName: "pipeline-analytics",
|
|
27502
27697
|
capScope: "device",
|
|
@@ -27863,6 +28058,12 @@ Object.freeze({
|
|
|
27863
28058
|
addonId: null,
|
|
27864
28059
|
access: "view"
|
|
27865
28060
|
},
|
|
28061
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28062
|
+
capName: "pipeline-orchestrator",
|
|
28063
|
+
capScope: "system",
|
|
28064
|
+
addonId: null,
|
|
28065
|
+
access: "create"
|
|
28066
|
+
},
|
|
27866
28067
|
"pipelineOrchestrator.rebalance": {
|
|
27867
28068
|
capName: "pipeline-orchestrator",
|
|
27868
28069
|
capScope: "system",
|
|
@@ -27887,6 +28088,12 @@ Object.freeze({
|
|
|
27887
28088
|
addonId: null,
|
|
27888
28089
|
access: "view"
|
|
27889
28090
|
},
|
|
28091
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28092
|
+
capName: "pipeline-orchestrator",
|
|
28093
|
+
capScope: "system",
|
|
28094
|
+
addonId: null,
|
|
28095
|
+
access: "create"
|
|
28096
|
+
},
|
|
27890
28097
|
"pipelineOrchestrator.saveTemplate": {
|
|
27891
28098
|
capName: "pipeline-orchestrator",
|
|
27892
28099
|
capScope: "system",
|
|
@@ -28283,7 +28490,7 @@ Object.freeze({
|
|
|
28283
28490
|
addonId: null,
|
|
28284
28491
|
access: "create"
|
|
28285
28492
|
},
|
|
28286
|
-
"recording.
|
|
28493
|
+
"recording.cancelStorageMigrationMove": {
|
|
28287
28494
|
capName: "recording",
|
|
28288
28495
|
capScope: "system",
|
|
28289
28496
|
addonId: null,
|
|
@@ -28319,7 +28526,7 @@ Object.freeze({
|
|
|
28319
28526
|
addonId: null,
|
|
28320
28527
|
access: "view"
|
|
28321
28528
|
},
|
|
28322
|
-
"recording.
|
|
28529
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28323
28530
|
capName: "recording",
|
|
28324
28531
|
capScope: "system",
|
|
28325
28532
|
addonId: null,
|
|
@@ -28343,6 +28550,12 @@ Object.freeze({
|
|
|
28343
28550
|
addonId: null,
|
|
28344
28551
|
access: "view"
|
|
28345
28552
|
},
|
|
28553
|
+
"recording.pauseForStorageMigration": {
|
|
28554
|
+
capName: "recording",
|
|
28555
|
+
capScope: "system",
|
|
28556
|
+
addonId: null,
|
|
28557
|
+
access: "create"
|
|
28558
|
+
},
|
|
28346
28559
|
"recording.pruneFootage": {
|
|
28347
28560
|
capName: "recording",
|
|
28348
28561
|
capScope: "system",
|
|
@@ -28361,7 +28574,7 @@ Object.freeze({
|
|
|
28361
28574
|
addonId: null,
|
|
28362
28575
|
access: "view"
|
|
28363
28576
|
},
|
|
28364
|
-
"recording.
|
|
28577
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28365
28578
|
capName: "recording",
|
|
28366
28579
|
capScope: "system",
|
|
28367
28580
|
addonId: null,
|
|
@@ -28385,12 +28598,24 @@ Object.freeze({
|
|
|
28385
28598
|
addonId: null,
|
|
28386
28599
|
access: "create"
|
|
28387
28600
|
},
|
|
28601
|
+
"recording.resumeForStorageMigration": {
|
|
28602
|
+
capName: "recording",
|
|
28603
|
+
capScope: "system",
|
|
28604
|
+
addonId: null,
|
|
28605
|
+
access: "create"
|
|
28606
|
+
},
|
|
28388
28607
|
"recording.setDeviceConfig": {
|
|
28389
28608
|
capName: "recording",
|
|
28390
28609
|
capScope: "system",
|
|
28391
28610
|
addonId: null,
|
|
28392
28611
|
access: "create"
|
|
28393
28612
|
},
|
|
28613
|
+
"recording.startStorageMigrationMove": {
|
|
28614
|
+
capName: "recording",
|
|
28615
|
+
capScope: "system",
|
|
28616
|
+
addonId: null,
|
|
28617
|
+
access: "create"
|
|
28618
|
+
},
|
|
28394
28619
|
"recordingExport.cancelExport": {
|
|
28395
28620
|
capName: "recordingExport",
|
|
28396
28621
|
capScope: "system",
|
|
@@ -28781,6 +29006,30 @@ Object.freeze({
|
|
|
28781
29006
|
addonId: null,
|
|
28782
29007
|
access: "view"
|
|
28783
29008
|
},
|
|
29009
|
+
"storageMigration.cancel": {
|
|
29010
|
+
capName: "storage-migration",
|
|
29011
|
+
capScope: "system",
|
|
29012
|
+
addonId: null,
|
|
29013
|
+
access: "create"
|
|
29014
|
+
},
|
|
29015
|
+
"storageMigration.plan": {
|
|
29016
|
+
capName: "storage-migration",
|
|
29017
|
+
capScope: "system",
|
|
29018
|
+
addonId: null,
|
|
29019
|
+
access: "view"
|
|
29020
|
+
},
|
|
29021
|
+
"storageMigration.start": {
|
|
29022
|
+
capName: "storage-migration",
|
|
29023
|
+
capScope: "system",
|
|
29024
|
+
addonId: null,
|
|
29025
|
+
access: "create"
|
|
29026
|
+
},
|
|
29027
|
+
"storageMigration.status": {
|
|
29028
|
+
capName: "storage-migration",
|
|
29029
|
+
capScope: "system",
|
|
29030
|
+
addonId: null,
|
|
29031
|
+
access: "view"
|
|
29032
|
+
},
|
|
28784
29033
|
"storageProvider.abortUpload": {
|
|
28785
29034
|
capName: "storage-provider",
|
|
28786
29035
|
capScope: "system",
|
|
@@ -29159,12 +29408,42 @@ Object.freeze({
|
|
|
29159
29408
|
addonId: null,
|
|
29160
29409
|
access: "create"
|
|
29161
29410
|
},
|
|
29411
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29412
|
+
capName: "terminal-session",
|
|
29413
|
+
capScope: "system",
|
|
29414
|
+
addonId: null,
|
|
29415
|
+
access: "create"
|
|
29416
|
+
},
|
|
29162
29417
|
"terminalSession.close": {
|
|
29163
29418
|
capName: "terminal-session",
|
|
29164
29419
|
capScope: "system",
|
|
29165
29420
|
addonId: null,
|
|
29166
29421
|
access: "create"
|
|
29167
29422
|
},
|
|
29423
|
+
"terminalSession.createInstance": {
|
|
29424
|
+
capName: "terminal-session",
|
|
29425
|
+
capScope: "system",
|
|
29426
|
+
addonId: null,
|
|
29427
|
+
access: "create"
|
|
29428
|
+
},
|
|
29429
|
+
"terminalSession.deleteInstance": {
|
|
29430
|
+
capName: "terminal-session",
|
|
29431
|
+
capScope: "system",
|
|
29432
|
+
addonId: null,
|
|
29433
|
+
access: "delete"
|
|
29434
|
+
},
|
|
29435
|
+
"terminalSession.listInstances": {
|
|
29436
|
+
capName: "terminal-session",
|
|
29437
|
+
capScope: "system",
|
|
29438
|
+
addonId: null,
|
|
29439
|
+
access: "view"
|
|
29440
|
+
},
|
|
29441
|
+
"terminalSession.listLegacyCameras": {
|
|
29442
|
+
capName: "terminal-session",
|
|
29443
|
+
capScope: "system",
|
|
29444
|
+
addonId: null,
|
|
29445
|
+
access: "view"
|
|
29446
|
+
},
|
|
29168
29447
|
"terminalSession.listProfiles": {
|
|
29169
29448
|
capName: "terminal-session",
|
|
29170
29449
|
capScope: "system",
|
|
@@ -29195,6 +29474,12 @@ Object.freeze({
|
|
|
29195
29474
|
addonId: null,
|
|
29196
29475
|
access: "create"
|
|
29197
29476
|
},
|
|
29477
|
+
"terminalSession.setInstanceEnabled": {
|
|
29478
|
+
capName: "terminal-session",
|
|
29479
|
+
capScope: "system",
|
|
29480
|
+
addonId: null,
|
|
29481
|
+
access: "create"
|
|
29482
|
+
},
|
|
29198
29483
|
"terminalSession.writeInput": {
|
|
29199
29484
|
capName: "terminal-session",
|
|
29200
29485
|
capScope: "system",
|
|
@@ -7534,12 +7534,11 @@ var RecordingConfigSchema = object({
|
|
|
7534
7534
|
/**
|
|
7535
7535
|
* Entity-relocation job state (storage entity-routing spec, Phase 4).
|
|
7536
7536
|
*
|
|
7537
|
-
* One shape shared by the recorder
|
|
7538
|
-
*
|
|
7539
|
-
*
|
|
7540
|
-
*
|
|
7541
|
-
*
|
|
7542
|
-
* row on the owning addon's surface.
|
|
7537
|
+
* One shape shared by the recorder and pipeline-analytics internal movers.
|
|
7538
|
+
* The public admin surface is `storage-migration`; child jobs remain in RAM
|
|
7539
|
+
* because copy-if-absent, verify, delete and index/row repoint are resumable.
|
|
7540
|
+
* Each completed/failed run also lands one durable ops-log row on its owning
|
|
7541
|
+
* addon surface.
|
|
7543
7542
|
*/
|
|
7544
7543
|
var RelocateJobStateSchema = _enum([
|
|
7545
7544
|
"running",
|
|
@@ -7566,19 +7565,100 @@ var RelocateJobSchema = object({
|
|
|
7566
7565
|
finishedAt: number().nullable(),
|
|
7567
7566
|
error: string().nullable()
|
|
7568
7567
|
});
|
|
7568
|
+
/** Profile-derived footage selection used only by the migration coordinator:
|
|
7569
|
+
* `recordings` owns high+mid; `recordingsLow` owns low. */
|
|
7570
|
+
var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
|
|
7569
7571
|
var RelocateFootageInputSchema = object({
|
|
7570
|
-
deviceId: number().optional(),
|
|
7571
7572
|
fromLocationId: string(),
|
|
7572
7573
|
toLocationId: string(),
|
|
7573
7574
|
entities: array(_enum(["segments"])).optional(),
|
|
7575
|
+
/** Limits relocation to the logical profile class. Omit only for the
|
|
7576
|
+
* pre-orchestration compatibility path. */
|
|
7577
|
+
footageClass: RelocateFootageClassSchema.optional(),
|
|
7574
7578
|
/** Copy throttle in MB/s (default 40) — the drain is a background chore,
|
|
7575
7579
|
* never allowed to starve live writers. */
|
|
7576
7580
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7577
7581
|
});
|
|
7578
|
-
|
|
7579
|
-
|
|
7582
|
+
/** Internal, lease-scoped participant operation. It is intentionally separate
|
|
7583
|
+
* from persistent recording settings: a migration never changes
|
|
7584
|
+
* `RecordingConfig.enabled` or camera wrapper bindings. */
|
|
7585
|
+
var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
|
|
7586
|
+
var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
|
|
7587
|
+
var StorageMigrationMediaMoveInputSchema = object({
|
|
7580
7588
|
toLocationId: string(),
|
|
7581
7589
|
throttleMbps: number().min(1).max(1e3).optional()
|
|
7590
|
+
}).extend({ leaseId: string().min(1) });
|
|
7591
|
+
/** The independently selectable logical storage classes. `recordings`
|
|
7592
|
+
* encompasses the high and mid segment profiles; `recordingsLow` is low
|
|
7593
|
+
* segments; `eventMedia` is post-analysis blobs. */
|
|
7594
|
+
var StorageMigrationClassSchema = _enum([
|
|
7595
|
+
"recordings",
|
|
7596
|
+
"recordingsLow",
|
|
7597
|
+
"eventMedia"
|
|
7598
|
+
]);
|
|
7599
|
+
/** A destination is always an existing, fully-qualified location id. The
|
|
7600
|
+
* migration API intentionally never changes a source location's `basePath`:
|
|
7601
|
+
* callers create a new `<type>:<slug>` location, then select it here. */
|
|
7602
|
+
var StorageMigrationDestinationsSchema = object({
|
|
7603
|
+
recordings: string().min(1).optional(),
|
|
7604
|
+
recordingsLow: string().min(1).optional(),
|
|
7605
|
+
eventMedia: string().min(1).optional()
|
|
7606
|
+
}).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
|
|
7607
|
+
/** Shared input for planning and starting an orchestrated storage migration. */
|
|
7608
|
+
var StorageMigrationInputSchema = object({
|
|
7609
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7610
|
+
throttleMbps: number().min(1).max(1e3).optional()
|
|
7611
|
+
});
|
|
7612
|
+
/** The durable coordinator state machine. The only phase that changes default
|
|
7613
|
+
* locations is `repointing`, after every selected mover has completed and been
|
|
7614
|
+
* verified. */
|
|
7615
|
+
var StorageMigrationPhaseSchema = _enum([
|
|
7616
|
+
"planning",
|
|
7617
|
+
"pausing",
|
|
7618
|
+
"moving",
|
|
7619
|
+
"verifying",
|
|
7620
|
+
"repointing",
|
|
7621
|
+
"refreshing",
|
|
7622
|
+
"resuming",
|
|
7623
|
+
"done",
|
|
7624
|
+
"failed",
|
|
7625
|
+
"cancelled"
|
|
7626
|
+
]);
|
|
7627
|
+
var StorageMigrationParticipantSchema = _enum([
|
|
7628
|
+
"pipeline",
|
|
7629
|
+
"recorder",
|
|
7630
|
+
"analytics"
|
|
7631
|
+
]);
|
|
7632
|
+
var StorageMigrationMoveSchema = object({
|
|
7633
|
+
storageClass: StorageMigrationClassSchema,
|
|
7634
|
+
fromLocationId: string(),
|
|
7635
|
+
toLocationId: string(),
|
|
7636
|
+
moverJobId: string().nullable(),
|
|
7637
|
+
state: RelocateJobStateSchema.nullable(),
|
|
7638
|
+
error: string().nullable()
|
|
7639
|
+
});
|
|
7640
|
+
var StorageMigrationJobSchema = object({
|
|
7641
|
+
jobId: string(),
|
|
7642
|
+
phase: StorageMigrationPhaseSchema,
|
|
7643
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7644
|
+
throttleMbps: number(),
|
|
7645
|
+
moves: array(StorageMigrationMoveSchema),
|
|
7646
|
+
pauseLeaseId: string().nullable(),
|
|
7647
|
+
pausedParticipants: array(StorageMigrationParticipantSchema),
|
|
7648
|
+
repointed: boolean(),
|
|
7649
|
+
cancelRequested: boolean(),
|
|
7650
|
+
startedAt: number(),
|
|
7651
|
+
updatedAt: number(),
|
|
7652
|
+
finishedAt: number().nullable(),
|
|
7653
|
+
error: string().nullable()
|
|
7654
|
+
});
|
|
7655
|
+
var StorageMigrationPlanSchema = object({
|
|
7656
|
+
destinations: StorageMigrationDestinationsSchema,
|
|
7657
|
+
moves: array(object({
|
|
7658
|
+
storageClass: StorageMigrationClassSchema,
|
|
7659
|
+
fromLocationId: string(),
|
|
7660
|
+
toLocationId: string()
|
|
7661
|
+
}))
|
|
7582
7662
|
});
|
|
7583
7663
|
/**
|
|
7584
7664
|
* `StorageLocationType` — an addon-declared id that identifies the *kind* of
|
|
@@ -15954,13 +16034,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
|
|
|
15954
16034
|
}), method(object({ deviceId: number() }), EventPruneCountsSchema, {
|
|
15955
16035
|
kind: "mutation",
|
|
15956
16036
|
auth: "admin"
|
|
15957
|
-
}), method(
|
|
16037
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
15958
16038
|
kind: "mutation",
|
|
15959
16039
|
auth: "admin"
|
|
15960
|
-
}), method(object({
|
|
15961
|
-
kind: "
|
|
16040
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
16041
|
+
kind: "mutation",
|
|
16042
|
+
auth: "admin"
|
|
16043
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
16044
|
+
kind: "mutation",
|
|
16045
|
+
auth: "admin"
|
|
16046
|
+
}), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
|
|
16047
|
+
kind: "mutation",
|
|
15962
16048
|
auth: "admin"
|
|
15963
|
-
}), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
16049
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
15964
16050
|
kind: "mutation",
|
|
15965
16051
|
auth: "admin"
|
|
15966
16052
|
}), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
|
|
@@ -17457,7 +17543,13 @@ var NodeInferenceDevicesSchema = object({
|
|
|
17457
17543
|
reachable: boolean(),
|
|
17458
17544
|
devices: array(NodeInferenceDeviceSchema).readonly()
|
|
17459
17545
|
});
|
|
17460
|
-
method(object({
|
|
17546
|
+
method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
17547
|
+
kind: "mutation",
|
|
17548
|
+
auth: "admin"
|
|
17549
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
17550
|
+
kind: "mutation",
|
|
17551
|
+
auth: "admin"
|
|
17552
|
+
}), method(object({
|
|
17461
17553
|
deviceId: number(),
|
|
17462
17554
|
agentNodeId: string()
|
|
17463
17555
|
}), object({ success: literal(true) }), {
|
|
@@ -18131,6 +18223,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
|
|
|
18131
18223
|
locationId: string(),
|
|
18132
18224
|
targetBytes: number().int().positive()
|
|
18133
18225
|
}), EvictResultSchema, { kind: "mutation" });
|
|
18226
|
+
method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
|
|
18227
|
+
kind: "mutation",
|
|
18228
|
+
auth: "admin"
|
|
18229
|
+
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
18230
|
+
kind: "mutation",
|
|
18231
|
+
auth: "admin"
|
|
18232
|
+
});
|
|
18134
18233
|
var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
|
|
18135
18234
|
providerId: string().min(1),
|
|
18136
18235
|
displayName: string().min(1),
|
|
@@ -18234,6 +18333,28 @@ var TerminalProfileInfoSchema = object({
|
|
|
18234
18333
|
label: string(),
|
|
18235
18334
|
description: string().optional()
|
|
18236
18335
|
});
|
|
18336
|
+
/**
|
|
18337
|
+
* A durable operator-created Terminal instance. Profiles are templates; only
|
|
18338
|
+
* an instance declares a camera.
|
|
18339
|
+
*/
|
|
18340
|
+
var TerminalInstanceInfoSchema = object({
|
|
18341
|
+
instanceId: string(),
|
|
18342
|
+
cameraStableId: string(),
|
|
18343
|
+
nodeId: string(),
|
|
18344
|
+
profileId: string(),
|
|
18345
|
+
profileLabel: string(),
|
|
18346
|
+
name: string(),
|
|
18347
|
+
enabled: boolean()
|
|
18348
|
+
});
|
|
18349
|
+
var TerminalLegacyCameraSchema = object({
|
|
18350
|
+
stableId: string(),
|
|
18351
|
+
nodeId: string(),
|
|
18352
|
+
profileId: string(),
|
|
18353
|
+
profileLabel: string(),
|
|
18354
|
+
name: string(),
|
|
18355
|
+
/** Only legacy monitor cameras can retain their historic stable identity. */
|
|
18356
|
+
adoptable: boolean()
|
|
18357
|
+
});
|
|
18237
18358
|
var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
|
|
18238
18359
|
seq: number().int().positive(),
|
|
18239
18360
|
kind: literal("data"),
|
|
@@ -18250,7 +18371,29 @@ var TerminalOutputBatchSchema = object({
|
|
|
18250
18371
|
snapshot: string().optional(),
|
|
18251
18372
|
events: array(TerminalOutputEventSchema).readonly()
|
|
18252
18373
|
});
|
|
18253
|
-
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(
|
|
18374
|
+
method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18375
|
+
targetNodeId: string().min(1),
|
|
18376
|
+
profileId: string().min(1),
|
|
18377
|
+
name: string().trim().min(1).max(160).optional()
|
|
18378
|
+
}), TerminalInstanceInfoSchema, {
|
|
18379
|
+
kind: "mutation",
|
|
18380
|
+
auth: "admin"
|
|
18381
|
+
}), method(object({ instanceId: string().min(1) }), _void(), {
|
|
18382
|
+
kind: "mutation",
|
|
18383
|
+
auth: "admin"
|
|
18384
|
+
}), method(object({
|
|
18385
|
+
instanceId: string().min(1),
|
|
18386
|
+
enabled: boolean()
|
|
18387
|
+
}), TerminalInstanceInfoSchema, {
|
|
18388
|
+
kind: "mutation",
|
|
18389
|
+
auth: "admin"
|
|
18390
|
+
}), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
|
|
18391
|
+
stableId: string().min(1),
|
|
18392
|
+
name: string().trim().min(1).max(160).optional()
|
|
18393
|
+
}), TerminalInstanceInfoSchema, {
|
|
18394
|
+
kind: "mutation",
|
|
18395
|
+
auth: "admin"
|
|
18396
|
+
}), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
|
|
18254
18397
|
profileId: string(),
|
|
18255
18398
|
cols: number().int().positive(),
|
|
18256
18399
|
rows: number().int().positive()
|
|
@@ -18267,7 +18410,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
|
|
|
18267
18410
|
}), method(object({
|
|
18268
18411
|
sessionId: string(),
|
|
18269
18412
|
afterSeq: number().int().nonnegative(),
|
|
18270
|
-
waitMs: number().int().min(0).max(2e3).default(0)
|
|
18413
|
+
waitMs: number().int().min(0).max(2e3).default(0),
|
|
18414
|
+
/**
|
|
18415
|
+
* Wait when a just-opened session has no output yet. Kept opt-in so a
|
|
18416
|
+
* browser's initial repaint remains immediate; the camera snapshot
|
|
18417
|
+
* relay uses it to avoid encoding a blank startup frame.
|
|
18418
|
+
*/
|
|
18419
|
+
waitForOutput: boolean().optional()
|
|
18271
18420
|
}), TerminalOutputBatchSchema, {
|
|
18272
18421
|
kind: "mutation",
|
|
18273
18422
|
auth: "admin",
|
|
@@ -20231,6 +20380,7 @@ var FaceInfoSchema = object({
|
|
|
20231
20380
|
var FaceFilterEnum = _enum([
|
|
20232
20381
|
"unassigned",
|
|
20233
20382
|
"recognized",
|
|
20383
|
+
"identified",
|
|
20234
20384
|
"all"
|
|
20235
20385
|
]);
|
|
20236
20386
|
var MediaFileLiteSchema$1 = object({
|
|
@@ -20259,6 +20409,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
|
|
|
20259
20409
|
kind: "mutation",
|
|
20260
20410
|
auth: "admin"
|
|
20261
20411
|
}), method(object({
|
|
20412
|
+
/** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
|
|
20413
|
+
deviceId: number().int().optional(),
|
|
20262
20414
|
limit: number().int().positive().optional(),
|
|
20263
20415
|
filter: FaceFilterEnum.optional(),
|
|
20264
20416
|
/**
|
|
@@ -22024,6 +22176,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
|
|
|
22024
22176
|
capName: string().min(1).max(64),
|
|
22025
22177
|
/** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
|
|
22026
22178
|
valuePath: string().min(1).max(64)
|
|
22179
|
+
}),
|
|
22180
|
+
object({
|
|
22181
|
+
kind: literal("latest-recognition"),
|
|
22182
|
+
recognition: _enum(["person", "plate"])
|
|
22027
22183
|
})
|
|
22028
22184
|
]);
|
|
22029
22185
|
var OsdSlotBindingSchema = object({
|
|
@@ -22129,6 +22285,15 @@ method(object({ deviceId: number().int() }), object({
|
|
|
22129
22285
|
}), object({ success: literal(true) }), {
|
|
22130
22286
|
kind: "mutation",
|
|
22131
22287
|
auth: "admin"
|
|
22288
|
+
}), method(object({
|
|
22289
|
+
sourceDeviceId: number().int(),
|
|
22290
|
+
targetDeviceId: number().int()
|
|
22291
|
+
}), object({
|
|
22292
|
+
copied: number().int().nonnegative(),
|
|
22293
|
+
skipped: number().int().nonnegative()
|
|
22294
|
+
}), {
|
|
22295
|
+
kind: "mutation",
|
|
22296
|
+
auth: "admin"
|
|
22132
22297
|
}), method(object({
|
|
22133
22298
|
deviceId: number().int(),
|
|
22134
22299
|
slotId: string().min(1),
|
|
@@ -23014,13 +23179,19 @@ method(object({
|
|
|
23014
23179
|
}), {
|
|
23015
23180
|
kind: "mutation",
|
|
23016
23181
|
auth: "admin"
|
|
23017
|
-
}), method(
|
|
23182
|
+
}), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
|
|
23018
23183
|
kind: "mutation",
|
|
23019
23184
|
auth: "admin"
|
|
23020
|
-
}), method(object({
|
|
23021
|
-
kind: "
|
|
23185
|
+
}), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
|
|
23186
|
+
kind: "mutation",
|
|
23022
23187
|
auth: "admin"
|
|
23023
|
-
}), method(
|
|
23188
|
+
}), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
|
|
23189
|
+
kind: "mutation",
|
|
23190
|
+
auth: "admin"
|
|
23191
|
+
}), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
|
|
23192
|
+
kind: "mutation",
|
|
23193
|
+
auth: "admin"
|
|
23194
|
+
}), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
23024
23195
|
kind: "mutation",
|
|
23025
23196
|
auth: "admin"
|
|
23026
23197
|
});
|
|
@@ -27142,6 +27313,12 @@ Object.freeze({
|
|
|
27142
27313
|
addonId: null,
|
|
27143
27314
|
access: "delete"
|
|
27144
27315
|
},
|
|
27316
|
+
"osdManager.copyDeviceConfiguration": {
|
|
27317
|
+
capName: "osd-manager",
|
|
27318
|
+
capScope: "system",
|
|
27319
|
+
addonId: null,
|
|
27320
|
+
access: "create"
|
|
27321
|
+
},
|
|
27145
27322
|
"osdManager.getConditionSupport": {
|
|
27146
27323
|
capName: "osd-manager",
|
|
27147
27324
|
capScope: "system",
|
|
@@ -27238,7 +27415,7 @@ Object.freeze({
|
|
|
27238
27415
|
addonId: null,
|
|
27239
27416
|
access: "create"
|
|
27240
27417
|
},
|
|
27241
|
-
"pipelineAnalytics.
|
|
27418
|
+
"pipelineAnalytics.cancelStorageMigrationMove": {
|
|
27242
27419
|
capName: "pipeline-analytics",
|
|
27243
27420
|
capScope: "device",
|
|
27244
27421
|
addonId: null,
|
|
@@ -27310,12 +27487,6 @@ Object.freeze({
|
|
|
27310
27487
|
addonId: null,
|
|
27311
27488
|
access: "view"
|
|
27312
27489
|
},
|
|
27313
|
-
"pipelineAnalytics.getMediaRelocateStatus": {
|
|
27314
|
-
capName: "pipeline-analytics",
|
|
27315
|
-
capScope: "device",
|
|
27316
|
-
addonId: null,
|
|
27317
|
-
access: "view"
|
|
27318
|
-
},
|
|
27319
27490
|
"pipelineAnalytics.getMotionEvents": {
|
|
27320
27491
|
capName: "pipeline-analytics",
|
|
27321
27492
|
capScope: "device",
|
|
@@ -27352,6 +27523,12 @@ Object.freeze({
|
|
|
27352
27523
|
addonId: null,
|
|
27353
27524
|
access: "view"
|
|
27354
27525
|
},
|
|
27526
|
+
"pipelineAnalytics.getStorageMigrationMoveStatus": {
|
|
27527
|
+
capName: "pipeline-analytics",
|
|
27528
|
+
capScope: "device",
|
|
27529
|
+
addonId: null,
|
|
27530
|
+
access: "view"
|
|
27531
|
+
},
|
|
27355
27532
|
"pipelineAnalytics.getTrack": {
|
|
27356
27533
|
capName: "pipeline-analytics",
|
|
27357
27534
|
capScope: "device",
|
|
@@ -27430,6 +27607,12 @@ Object.freeze({
|
|
|
27430
27607
|
addonId: null,
|
|
27431
27608
|
access: "view"
|
|
27432
27609
|
},
|
|
27610
|
+
"pipelineAnalytics.pauseForStorageMigration": {
|
|
27611
|
+
capName: "pipeline-analytics",
|
|
27612
|
+
capScope: "device",
|
|
27613
|
+
addonId: null,
|
|
27614
|
+
access: "create"
|
|
27615
|
+
},
|
|
27433
27616
|
"pipelineAnalytics.proposeRetrainAnnotations": {
|
|
27434
27617
|
capName: "pipeline-analytics",
|
|
27435
27618
|
capScope: "device",
|
|
@@ -27460,7 +27643,7 @@ Object.freeze({
|
|
|
27460
27643
|
addonId: null,
|
|
27461
27644
|
access: "create"
|
|
27462
27645
|
},
|
|
27463
|
-
"pipelineAnalytics.
|
|
27646
|
+
"pipelineAnalytics.refreshStorageLocationsForMigration": {
|
|
27464
27647
|
capName: "pipeline-analytics",
|
|
27465
27648
|
capScope: "device",
|
|
27466
27649
|
addonId: null,
|
|
@@ -27472,6 +27655,12 @@ Object.freeze({
|
|
|
27472
27655
|
addonId: null,
|
|
27473
27656
|
access: "create"
|
|
27474
27657
|
},
|
|
27658
|
+
"pipelineAnalytics.resumeForStorageMigration": {
|
|
27659
|
+
capName: "pipeline-analytics",
|
|
27660
|
+
capScope: "device",
|
|
27661
|
+
addonId: null,
|
|
27662
|
+
access: "create"
|
|
27663
|
+
},
|
|
27475
27664
|
"pipelineAnalytics.saveRetrainAnnotations": {
|
|
27476
27665
|
capName: "pipeline-analytics",
|
|
27477
27666
|
capScope: "device",
|
|
@@ -27496,6 +27685,12 @@ Object.freeze({
|
|
|
27496
27685
|
addonId: null,
|
|
27497
27686
|
access: "create"
|
|
27498
27687
|
},
|
|
27688
|
+
"pipelineAnalytics.startStorageMigrationMove": {
|
|
27689
|
+
capName: "pipeline-analytics",
|
|
27690
|
+
capScope: "device",
|
|
27691
|
+
addonId: null,
|
|
27692
|
+
access: "create"
|
|
27693
|
+
},
|
|
27499
27694
|
"pipelineAnalytics.wipeAllAnalytics": {
|
|
27500
27695
|
capName: "pipeline-analytics",
|
|
27501
27696
|
capScope: "device",
|
|
@@ -27862,6 +28057,12 @@ Object.freeze({
|
|
|
27862
28057
|
addonId: null,
|
|
27863
28058
|
access: "view"
|
|
27864
28059
|
},
|
|
28060
|
+
"pipelineOrchestrator.pauseForStorageMigration": {
|
|
28061
|
+
capName: "pipeline-orchestrator",
|
|
28062
|
+
capScope: "system",
|
|
28063
|
+
addonId: null,
|
|
28064
|
+
access: "create"
|
|
28065
|
+
},
|
|
27865
28066
|
"pipelineOrchestrator.rebalance": {
|
|
27866
28067
|
capName: "pipeline-orchestrator",
|
|
27867
28068
|
capScope: "system",
|
|
@@ -27886,6 +28087,12 @@ Object.freeze({
|
|
|
27886
28087
|
addonId: null,
|
|
27887
28088
|
access: "view"
|
|
27888
28089
|
},
|
|
28090
|
+
"pipelineOrchestrator.resumeForStorageMigration": {
|
|
28091
|
+
capName: "pipeline-orchestrator",
|
|
28092
|
+
capScope: "system",
|
|
28093
|
+
addonId: null,
|
|
28094
|
+
access: "create"
|
|
28095
|
+
},
|
|
27889
28096
|
"pipelineOrchestrator.saveTemplate": {
|
|
27890
28097
|
capName: "pipeline-orchestrator",
|
|
27891
28098
|
capScope: "system",
|
|
@@ -28282,7 +28489,7 @@ Object.freeze({
|
|
|
28282
28489
|
addonId: null,
|
|
28283
28490
|
access: "create"
|
|
28284
28491
|
},
|
|
28285
|
-
"recording.
|
|
28492
|
+
"recording.cancelStorageMigrationMove": {
|
|
28286
28493
|
capName: "recording",
|
|
28287
28494
|
capScope: "system",
|
|
28288
28495
|
addonId: null,
|
|
@@ -28318,7 +28525,7 @@ Object.freeze({
|
|
|
28318
28525
|
addonId: null,
|
|
28319
28526
|
access: "view"
|
|
28320
28527
|
},
|
|
28321
|
-
"recording.
|
|
28528
|
+
"recording.getStorageMigrationMoveStatus": {
|
|
28322
28529
|
capName: "recording",
|
|
28323
28530
|
capScope: "system",
|
|
28324
28531
|
addonId: null,
|
|
@@ -28342,6 +28549,12 @@ Object.freeze({
|
|
|
28342
28549
|
addonId: null,
|
|
28343
28550
|
access: "view"
|
|
28344
28551
|
},
|
|
28552
|
+
"recording.pauseForStorageMigration": {
|
|
28553
|
+
capName: "recording",
|
|
28554
|
+
capScope: "system",
|
|
28555
|
+
addonId: null,
|
|
28556
|
+
access: "create"
|
|
28557
|
+
},
|
|
28345
28558
|
"recording.pruneFootage": {
|
|
28346
28559
|
capName: "recording",
|
|
28347
28560
|
capScope: "system",
|
|
@@ -28360,7 +28573,7 @@ Object.freeze({
|
|
|
28360
28573
|
addonId: null,
|
|
28361
28574
|
access: "view"
|
|
28362
28575
|
},
|
|
28363
|
-
"recording.
|
|
28576
|
+
"recording.refreshStorageLocationsForMigration": {
|
|
28364
28577
|
capName: "recording",
|
|
28365
28578
|
capScope: "system",
|
|
28366
28579
|
addonId: null,
|
|
@@ -28384,12 +28597,24 @@ Object.freeze({
|
|
|
28384
28597
|
addonId: null,
|
|
28385
28598
|
access: "create"
|
|
28386
28599
|
},
|
|
28600
|
+
"recording.resumeForStorageMigration": {
|
|
28601
|
+
capName: "recording",
|
|
28602
|
+
capScope: "system",
|
|
28603
|
+
addonId: null,
|
|
28604
|
+
access: "create"
|
|
28605
|
+
},
|
|
28387
28606
|
"recording.setDeviceConfig": {
|
|
28388
28607
|
capName: "recording",
|
|
28389
28608
|
capScope: "system",
|
|
28390
28609
|
addonId: null,
|
|
28391
28610
|
access: "create"
|
|
28392
28611
|
},
|
|
28612
|
+
"recording.startStorageMigrationMove": {
|
|
28613
|
+
capName: "recording",
|
|
28614
|
+
capScope: "system",
|
|
28615
|
+
addonId: null,
|
|
28616
|
+
access: "create"
|
|
28617
|
+
},
|
|
28393
28618
|
"recordingExport.cancelExport": {
|
|
28394
28619
|
capName: "recordingExport",
|
|
28395
28620
|
capScope: "system",
|
|
@@ -28780,6 +29005,30 @@ Object.freeze({
|
|
|
28780
29005
|
addonId: null,
|
|
28781
29006
|
access: "view"
|
|
28782
29007
|
},
|
|
29008
|
+
"storageMigration.cancel": {
|
|
29009
|
+
capName: "storage-migration",
|
|
29010
|
+
capScope: "system",
|
|
29011
|
+
addonId: null,
|
|
29012
|
+
access: "create"
|
|
29013
|
+
},
|
|
29014
|
+
"storageMigration.plan": {
|
|
29015
|
+
capName: "storage-migration",
|
|
29016
|
+
capScope: "system",
|
|
29017
|
+
addonId: null,
|
|
29018
|
+
access: "view"
|
|
29019
|
+
},
|
|
29020
|
+
"storageMigration.start": {
|
|
29021
|
+
capName: "storage-migration",
|
|
29022
|
+
capScope: "system",
|
|
29023
|
+
addonId: null,
|
|
29024
|
+
access: "create"
|
|
29025
|
+
},
|
|
29026
|
+
"storageMigration.status": {
|
|
29027
|
+
capName: "storage-migration",
|
|
29028
|
+
capScope: "system",
|
|
29029
|
+
addonId: null,
|
|
29030
|
+
access: "view"
|
|
29031
|
+
},
|
|
28783
29032
|
"storageProvider.abortUpload": {
|
|
28784
29033
|
capName: "storage-provider",
|
|
28785
29034
|
capScope: "system",
|
|
@@ -29158,12 +29407,42 @@ Object.freeze({
|
|
|
29158
29407
|
addonId: null,
|
|
29159
29408
|
access: "create"
|
|
29160
29409
|
},
|
|
29410
|
+
"terminalSession.adoptLegacyMonitor": {
|
|
29411
|
+
capName: "terminal-session",
|
|
29412
|
+
capScope: "system",
|
|
29413
|
+
addonId: null,
|
|
29414
|
+
access: "create"
|
|
29415
|
+
},
|
|
29161
29416
|
"terminalSession.close": {
|
|
29162
29417
|
capName: "terminal-session",
|
|
29163
29418
|
capScope: "system",
|
|
29164
29419
|
addonId: null,
|
|
29165
29420
|
access: "create"
|
|
29166
29421
|
},
|
|
29422
|
+
"terminalSession.createInstance": {
|
|
29423
|
+
capName: "terminal-session",
|
|
29424
|
+
capScope: "system",
|
|
29425
|
+
addonId: null,
|
|
29426
|
+
access: "create"
|
|
29427
|
+
},
|
|
29428
|
+
"terminalSession.deleteInstance": {
|
|
29429
|
+
capName: "terminal-session",
|
|
29430
|
+
capScope: "system",
|
|
29431
|
+
addonId: null,
|
|
29432
|
+
access: "delete"
|
|
29433
|
+
},
|
|
29434
|
+
"terminalSession.listInstances": {
|
|
29435
|
+
capName: "terminal-session",
|
|
29436
|
+
capScope: "system",
|
|
29437
|
+
addonId: null,
|
|
29438
|
+
access: "view"
|
|
29439
|
+
},
|
|
29440
|
+
"terminalSession.listLegacyCameras": {
|
|
29441
|
+
capName: "terminal-session",
|
|
29442
|
+
capScope: "system",
|
|
29443
|
+
addonId: null,
|
|
29444
|
+
access: "view"
|
|
29445
|
+
},
|
|
29167
29446
|
"terminalSession.listProfiles": {
|
|
29168
29447
|
capName: "terminal-session",
|
|
29169
29448
|
capScope: "system",
|
|
@@ -29194,6 +29473,12 @@ Object.freeze({
|
|
|
29194
29473
|
addonId: null,
|
|
29195
29474
|
access: "create"
|
|
29196
29475
|
},
|
|
29476
|
+
"terminalSession.setInstanceEnabled": {
|
|
29477
|
+
capName: "terminal-session",
|
|
29478
|
+
capScope: "system",
|
|
29479
|
+
addonId: null,
|
|
29480
|
+
access: "create"
|
|
29481
|
+
},
|
|
29197
29482
|
"terminalSession.writeInput": {
|
|
29198
29483
|
capName: "terminal-session",
|
|
29199
29484
|
capScope: "system",
|