@camstack/addon-model-studio 1.1.18 → 1.1.19

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.
@@ -7685,12 +7685,11 @@ var RecordingConfigSchema = object({
7685
7685
  /**
7686
7686
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7687
7687
  *
7688
- * One shape shared by the recorder's `relocateFootage` (segments) and
7689
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7690
- * page renders both movers with one component. Jobs are in-RAM (a restart
7691
- * forgets them re-running is safe by construction: copy-if-absent, delete
7692
- * after verify) and each completed/failed run also lands one durable ops-log
7693
- * row on the owning addon's surface.
7688
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7689
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7690
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7691
+ * Each completed/failed run also lands one durable ops-log row on its owning
7692
+ * addon surface.
7694
7693
  */
7695
7694
  var RelocateJobStateSchema = _enum([
7696
7695
  "running",
@@ -7717,19 +7716,100 @@ var RelocateJobSchema = object({
7717
7716
  finishedAt: number().nullable(),
7718
7717
  error: string().nullable()
7719
7718
  });
7719
+ /** Profile-derived footage selection used only by the migration coordinator:
7720
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7721
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7720
7722
  var RelocateFootageInputSchema = object({
7721
- deviceId: number().optional(),
7722
7723
  fromLocationId: string(),
7723
7724
  toLocationId: string(),
7724
7725
  entities: array(_enum(["segments"])).optional(),
7726
+ /** Limits relocation to the logical profile class. Omit only for the
7727
+ * pre-orchestration compatibility path. */
7728
+ footageClass: RelocateFootageClassSchema.optional(),
7725
7729
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7726
7730
  * never allowed to starve live writers. */
7727
7731
  throttleMbps: number().min(1).max(1e3).optional()
7728
7732
  });
7729
- var RelocateMediaInputSchema = object({
7730
- deviceId: number().optional(),
7733
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7734
+ * from persistent recording settings: a migration never changes
7735
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7736
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7737
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7738
+ var StorageMigrationMediaMoveInputSchema = object({
7731
7739
  toLocationId: string(),
7732
7740
  throttleMbps: number().min(1).max(1e3).optional()
7741
+ }).extend({ leaseId: string().min(1) });
7742
+ /** The independently selectable logical storage classes. `recordings`
7743
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7744
+ * segments; `eventMedia` is post-analysis blobs. */
7745
+ var StorageMigrationClassSchema = _enum([
7746
+ "recordings",
7747
+ "recordingsLow",
7748
+ "eventMedia"
7749
+ ]);
7750
+ /** A destination is always an existing, fully-qualified location id. The
7751
+ * migration API intentionally never changes a source location's `basePath`:
7752
+ * callers create a new `<type>:<slug>` location, then select it here. */
7753
+ var StorageMigrationDestinationsSchema = object({
7754
+ recordings: string().min(1).optional(),
7755
+ recordingsLow: string().min(1).optional(),
7756
+ eventMedia: string().min(1).optional()
7757
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7758
+ /** Shared input for planning and starting an orchestrated storage migration. */
7759
+ var StorageMigrationInputSchema = object({
7760
+ destinations: StorageMigrationDestinationsSchema,
7761
+ throttleMbps: number().min(1).max(1e3).optional()
7762
+ });
7763
+ /** The durable coordinator state machine. The only phase that changes default
7764
+ * locations is `repointing`, after every selected mover has completed and been
7765
+ * verified. */
7766
+ var StorageMigrationPhaseSchema = _enum([
7767
+ "planning",
7768
+ "pausing",
7769
+ "moving",
7770
+ "verifying",
7771
+ "repointing",
7772
+ "refreshing",
7773
+ "resuming",
7774
+ "done",
7775
+ "failed",
7776
+ "cancelled"
7777
+ ]);
7778
+ var StorageMigrationParticipantSchema = _enum([
7779
+ "pipeline",
7780
+ "recorder",
7781
+ "analytics"
7782
+ ]);
7783
+ var StorageMigrationMoveSchema = object({
7784
+ storageClass: StorageMigrationClassSchema,
7785
+ fromLocationId: string(),
7786
+ toLocationId: string(),
7787
+ moverJobId: string().nullable(),
7788
+ state: RelocateJobStateSchema.nullable(),
7789
+ error: string().nullable()
7790
+ });
7791
+ var StorageMigrationJobSchema = object({
7792
+ jobId: string(),
7793
+ phase: StorageMigrationPhaseSchema,
7794
+ destinations: StorageMigrationDestinationsSchema,
7795
+ throttleMbps: number(),
7796
+ moves: array(StorageMigrationMoveSchema),
7797
+ pauseLeaseId: string().nullable(),
7798
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7799
+ repointed: boolean(),
7800
+ cancelRequested: boolean(),
7801
+ startedAt: number(),
7802
+ updatedAt: number(),
7803
+ finishedAt: number().nullable(),
7804
+ error: string().nullable()
7805
+ });
7806
+ var StorageMigrationPlanSchema = object({
7807
+ destinations: StorageMigrationDestinationsSchema,
7808
+ moves: array(object({
7809
+ storageClass: StorageMigrationClassSchema,
7810
+ fromLocationId: string(),
7811
+ toLocationId: string()
7812
+ }))
7733
7813
  });
7734
7814
  /**
7735
7815
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16146,13 +16226,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16146
16226
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16147
16227
  kind: "mutation",
16148
16228
  auth: "admin"
16149
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16229
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16150
16230
  kind: "mutation",
16151
16231
  auth: "admin"
16152
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16153
- kind: "query",
16232
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16233
+ kind: "mutation",
16234
+ auth: "admin"
16235
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16236
+ kind: "mutation",
16237
+ auth: "admin"
16238
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16239
+ kind: "mutation",
16154
16240
  auth: "admin"
16155
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16241
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16156
16242
  kind: "mutation",
16157
16243
  auth: "admin"
16158
16244
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17649,7 +17735,13 @@ var NodeInferenceDevicesSchema = object({
17649
17735
  reachable: boolean(),
17650
17736
  devices: array(NodeInferenceDeviceSchema).readonly()
17651
17737
  });
17652
- method(object({
17738
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17739
+ kind: "mutation",
17740
+ auth: "admin"
17741
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17742
+ kind: "mutation",
17743
+ auth: "admin"
17744
+ }), method(object({
17653
17745
  deviceId: number(),
17654
17746
  agentNodeId: string()
17655
17747
  }), object({ success: literal(true) }), {
@@ -18323,6 +18415,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18323
18415
  locationId: string(),
18324
18416
  targetBytes: number().int().positive()
18325
18417
  }), EvictResultSchema, { kind: "mutation" });
18418
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18419
+ kind: "mutation",
18420
+ auth: "admin"
18421
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18422
+ kind: "mutation",
18423
+ auth: "admin"
18424
+ });
18326
18425
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18327
18426
  providerId: string().min(1),
18328
18427
  displayName: string().min(1),
@@ -18426,6 +18525,28 @@ var TerminalProfileInfoSchema = object({
18426
18525
  label: string(),
18427
18526
  description: string().optional()
18428
18527
  });
18528
+ /**
18529
+ * A durable operator-created Terminal instance. Profiles are templates; only
18530
+ * an instance declares a camera.
18531
+ */
18532
+ var TerminalInstanceInfoSchema = object({
18533
+ instanceId: string(),
18534
+ cameraStableId: string(),
18535
+ nodeId: string(),
18536
+ profileId: string(),
18537
+ profileLabel: string(),
18538
+ name: string(),
18539
+ enabled: boolean()
18540
+ });
18541
+ var TerminalLegacyCameraSchema = object({
18542
+ stableId: string(),
18543
+ nodeId: string(),
18544
+ profileId: string(),
18545
+ profileLabel: string(),
18546
+ name: string(),
18547
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18548
+ adoptable: boolean()
18549
+ });
18429
18550
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18430
18551
  seq: number().int().positive(),
18431
18552
  kind: literal("data"),
@@ -18442,7 +18563,29 @@ var TerminalOutputBatchSchema = object({
18442
18563
  snapshot: string().optional(),
18443
18564
  events: array(TerminalOutputEventSchema).readonly()
18444
18565
  });
18445
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18566
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18567
+ targetNodeId: string().min(1),
18568
+ profileId: string().min(1),
18569
+ name: string().trim().min(1).max(160).optional()
18570
+ }), TerminalInstanceInfoSchema, {
18571
+ kind: "mutation",
18572
+ auth: "admin"
18573
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18574
+ kind: "mutation",
18575
+ auth: "admin"
18576
+ }), method(object({
18577
+ instanceId: string().min(1),
18578
+ enabled: boolean()
18579
+ }), TerminalInstanceInfoSchema, {
18580
+ kind: "mutation",
18581
+ auth: "admin"
18582
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18583
+ stableId: string().min(1),
18584
+ name: string().trim().min(1).max(160).optional()
18585
+ }), TerminalInstanceInfoSchema, {
18586
+ kind: "mutation",
18587
+ auth: "admin"
18588
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18446
18589
  profileId: string(),
18447
18590
  cols: number().int().positive(),
18448
18591
  rows: number().int().positive()
@@ -18459,7 +18602,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18459
18602
  }), method(object({
18460
18603
  sessionId: string(),
18461
18604
  afterSeq: number().int().nonnegative(),
18462
- waitMs: number().int().min(0).max(2e3).default(0)
18605
+ waitMs: number().int().min(0).max(2e3).default(0),
18606
+ /**
18607
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18608
+ * browser's initial repaint remains immediate; the camera snapshot
18609
+ * relay uses it to avoid encoding a blank startup frame.
18610
+ */
18611
+ waitForOutput: boolean().optional()
18463
18612
  }), TerminalOutputBatchSchema, {
18464
18613
  kind: "mutation",
18465
18614
  auth: "admin",
@@ -20400,6 +20549,7 @@ var FaceInfoSchema = object({
20400
20549
  var FaceFilterEnum = _enum([
20401
20550
  "unassigned",
20402
20551
  "recognized",
20552
+ "identified",
20403
20553
  "all"
20404
20554
  ]);
20405
20555
  var MediaFileLiteSchema$1 = object({
@@ -20428,6 +20578,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20428
20578
  kind: "mutation",
20429
20579
  auth: "admin"
20430
20580
  }), method(object({
20581
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20582
+ deviceId: number().int().optional(),
20431
20583
  limit: number().int().positive().optional(),
20432
20584
  filter: FaceFilterEnum.optional(),
20433
20585
  /**
@@ -22193,6 +22345,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22193
22345
  capName: string().min(1).max(64),
22194
22346
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22195
22347
  valuePath: string().min(1).max(64)
22348
+ }),
22349
+ object({
22350
+ kind: literal("latest-recognition"),
22351
+ recognition: _enum(["person", "plate"])
22196
22352
  })
22197
22353
  ]);
22198
22354
  var OsdSlotBindingSchema = object({
@@ -22298,6 +22454,15 @@ method(object({ deviceId: number().int() }), object({
22298
22454
  }), object({ success: literal(true) }), {
22299
22455
  kind: "mutation",
22300
22456
  auth: "admin"
22457
+ }), method(object({
22458
+ sourceDeviceId: number().int(),
22459
+ targetDeviceId: number().int()
22460
+ }), object({
22461
+ copied: number().int().nonnegative(),
22462
+ skipped: number().int().nonnegative()
22463
+ }), {
22464
+ kind: "mutation",
22465
+ auth: "admin"
22301
22466
  }), method(object({
22302
22467
  deviceId: number().int(),
22303
22468
  slotId: string().min(1),
@@ -23183,13 +23348,19 @@ method(object({
23183
23348
  }), {
23184
23349
  kind: "mutation",
23185
23350
  auth: "admin"
23186
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23351
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23187
23352
  kind: "mutation",
23188
23353
  auth: "admin"
23189
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23190
- kind: "query",
23354
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23355
+ kind: "mutation",
23191
23356
  auth: "admin"
23192
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23357
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23358
+ kind: "mutation",
23359
+ auth: "admin"
23360
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23361
+ kind: "mutation",
23362
+ auth: "admin"
23363
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23193
23364
  kind: "mutation",
23194
23365
  auth: "admin"
23195
23366
  });
@@ -27311,6 +27482,12 @@ Object.freeze({
27311
27482
  addonId: null,
27312
27483
  access: "delete"
27313
27484
  },
27485
+ "osdManager.copyDeviceConfiguration": {
27486
+ capName: "osd-manager",
27487
+ capScope: "system",
27488
+ addonId: null,
27489
+ access: "create"
27490
+ },
27314
27491
  "osdManager.getConditionSupport": {
27315
27492
  capName: "osd-manager",
27316
27493
  capScope: "system",
@@ -27407,7 +27584,7 @@ Object.freeze({
27407
27584
  addonId: null,
27408
27585
  access: "create"
27409
27586
  },
27410
- "pipelineAnalytics.cancelMediaRelocate": {
27587
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27411
27588
  capName: "pipeline-analytics",
27412
27589
  capScope: "device",
27413
27590
  addonId: null,
@@ -27479,12 +27656,6 @@ Object.freeze({
27479
27656
  addonId: null,
27480
27657
  access: "view"
27481
27658
  },
27482
- "pipelineAnalytics.getMediaRelocateStatus": {
27483
- capName: "pipeline-analytics",
27484
- capScope: "device",
27485
- addonId: null,
27486
- access: "view"
27487
- },
27488
27659
  "pipelineAnalytics.getMotionEvents": {
27489
27660
  capName: "pipeline-analytics",
27490
27661
  capScope: "device",
@@ -27521,6 +27692,12 @@ Object.freeze({
27521
27692
  addonId: null,
27522
27693
  access: "view"
27523
27694
  },
27695
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27696
+ capName: "pipeline-analytics",
27697
+ capScope: "device",
27698
+ addonId: null,
27699
+ access: "view"
27700
+ },
27524
27701
  "pipelineAnalytics.getTrack": {
27525
27702
  capName: "pipeline-analytics",
27526
27703
  capScope: "device",
@@ -27599,6 +27776,12 @@ Object.freeze({
27599
27776
  addonId: null,
27600
27777
  access: "view"
27601
27778
  },
27779
+ "pipelineAnalytics.pauseForStorageMigration": {
27780
+ capName: "pipeline-analytics",
27781
+ capScope: "device",
27782
+ addonId: null,
27783
+ access: "create"
27784
+ },
27602
27785
  "pipelineAnalytics.proposeRetrainAnnotations": {
27603
27786
  capName: "pipeline-analytics",
27604
27787
  capScope: "device",
@@ -27629,7 +27812,7 @@ Object.freeze({
27629
27812
  addonId: null,
27630
27813
  access: "create"
27631
27814
  },
27632
- "pipelineAnalytics.relocateMedia": {
27815
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27633
27816
  capName: "pipeline-analytics",
27634
27817
  capScope: "device",
27635
27818
  addonId: null,
@@ -27641,6 +27824,12 @@ Object.freeze({
27641
27824
  addonId: null,
27642
27825
  access: "create"
27643
27826
  },
27827
+ "pipelineAnalytics.resumeForStorageMigration": {
27828
+ capName: "pipeline-analytics",
27829
+ capScope: "device",
27830
+ addonId: null,
27831
+ access: "create"
27832
+ },
27644
27833
  "pipelineAnalytics.saveRetrainAnnotations": {
27645
27834
  capName: "pipeline-analytics",
27646
27835
  capScope: "device",
@@ -27665,6 +27854,12 @@ Object.freeze({
27665
27854
  addonId: null,
27666
27855
  access: "create"
27667
27856
  },
27857
+ "pipelineAnalytics.startStorageMigrationMove": {
27858
+ capName: "pipeline-analytics",
27859
+ capScope: "device",
27860
+ addonId: null,
27861
+ access: "create"
27862
+ },
27668
27863
  "pipelineAnalytics.wipeAllAnalytics": {
27669
27864
  capName: "pipeline-analytics",
27670
27865
  capScope: "device",
@@ -28031,6 +28226,12 @@ Object.freeze({
28031
28226
  addonId: null,
28032
28227
  access: "view"
28033
28228
  },
28229
+ "pipelineOrchestrator.pauseForStorageMigration": {
28230
+ capName: "pipeline-orchestrator",
28231
+ capScope: "system",
28232
+ addonId: null,
28233
+ access: "create"
28234
+ },
28034
28235
  "pipelineOrchestrator.rebalance": {
28035
28236
  capName: "pipeline-orchestrator",
28036
28237
  capScope: "system",
@@ -28055,6 +28256,12 @@ Object.freeze({
28055
28256
  addonId: null,
28056
28257
  access: "view"
28057
28258
  },
28259
+ "pipelineOrchestrator.resumeForStorageMigration": {
28260
+ capName: "pipeline-orchestrator",
28261
+ capScope: "system",
28262
+ addonId: null,
28263
+ access: "create"
28264
+ },
28058
28265
  "pipelineOrchestrator.saveTemplate": {
28059
28266
  capName: "pipeline-orchestrator",
28060
28267
  capScope: "system",
@@ -28451,7 +28658,7 @@ Object.freeze({
28451
28658
  addonId: null,
28452
28659
  access: "create"
28453
28660
  },
28454
- "recording.cancelRelocate": {
28661
+ "recording.cancelStorageMigrationMove": {
28455
28662
  capName: "recording",
28456
28663
  capScope: "system",
28457
28664
  addonId: null,
@@ -28487,7 +28694,7 @@ Object.freeze({
28487
28694
  addonId: null,
28488
28695
  access: "view"
28489
28696
  },
28490
- "recording.getRelocateStatus": {
28697
+ "recording.getStorageMigrationMoveStatus": {
28491
28698
  capName: "recording",
28492
28699
  capScope: "system",
28493
28700
  addonId: null,
@@ -28511,6 +28718,12 @@ Object.freeze({
28511
28718
  addonId: null,
28512
28719
  access: "view"
28513
28720
  },
28721
+ "recording.pauseForStorageMigration": {
28722
+ capName: "recording",
28723
+ capScope: "system",
28724
+ addonId: null,
28725
+ access: "create"
28726
+ },
28514
28727
  "recording.pruneFootage": {
28515
28728
  capName: "recording",
28516
28729
  capScope: "system",
@@ -28529,7 +28742,7 @@ Object.freeze({
28529
28742
  addonId: null,
28530
28743
  access: "view"
28531
28744
  },
28532
- "recording.relocateFootage": {
28745
+ "recording.refreshStorageLocationsForMigration": {
28533
28746
  capName: "recording",
28534
28747
  capScope: "system",
28535
28748
  addonId: null,
@@ -28553,12 +28766,24 @@ Object.freeze({
28553
28766
  addonId: null,
28554
28767
  access: "create"
28555
28768
  },
28769
+ "recording.resumeForStorageMigration": {
28770
+ capName: "recording",
28771
+ capScope: "system",
28772
+ addonId: null,
28773
+ access: "create"
28774
+ },
28556
28775
  "recording.setDeviceConfig": {
28557
28776
  capName: "recording",
28558
28777
  capScope: "system",
28559
28778
  addonId: null,
28560
28779
  access: "create"
28561
28780
  },
28781
+ "recording.startStorageMigrationMove": {
28782
+ capName: "recording",
28783
+ capScope: "system",
28784
+ addonId: null,
28785
+ access: "create"
28786
+ },
28562
28787
  "recordingExport.cancelExport": {
28563
28788
  capName: "recordingExport",
28564
28789
  capScope: "system",
@@ -28949,6 +29174,30 @@ Object.freeze({
28949
29174
  addonId: null,
28950
29175
  access: "view"
28951
29176
  },
29177
+ "storageMigration.cancel": {
29178
+ capName: "storage-migration",
29179
+ capScope: "system",
29180
+ addonId: null,
29181
+ access: "create"
29182
+ },
29183
+ "storageMigration.plan": {
29184
+ capName: "storage-migration",
29185
+ capScope: "system",
29186
+ addonId: null,
29187
+ access: "view"
29188
+ },
29189
+ "storageMigration.start": {
29190
+ capName: "storage-migration",
29191
+ capScope: "system",
29192
+ addonId: null,
29193
+ access: "create"
29194
+ },
29195
+ "storageMigration.status": {
29196
+ capName: "storage-migration",
29197
+ capScope: "system",
29198
+ addonId: null,
29199
+ access: "view"
29200
+ },
28952
29201
  "storageProvider.abortUpload": {
28953
29202
  capName: "storage-provider",
28954
29203
  capScope: "system",
@@ -29327,12 +29576,42 @@ Object.freeze({
29327
29576
  addonId: null,
29328
29577
  access: "create"
29329
29578
  },
29579
+ "terminalSession.adoptLegacyMonitor": {
29580
+ capName: "terminal-session",
29581
+ capScope: "system",
29582
+ addonId: null,
29583
+ access: "create"
29584
+ },
29330
29585
  "terminalSession.close": {
29331
29586
  capName: "terminal-session",
29332
29587
  capScope: "system",
29333
29588
  addonId: null,
29334
29589
  access: "create"
29335
29590
  },
29591
+ "terminalSession.createInstance": {
29592
+ capName: "terminal-session",
29593
+ capScope: "system",
29594
+ addonId: null,
29595
+ access: "create"
29596
+ },
29597
+ "terminalSession.deleteInstance": {
29598
+ capName: "terminal-session",
29599
+ capScope: "system",
29600
+ addonId: null,
29601
+ access: "delete"
29602
+ },
29603
+ "terminalSession.listInstances": {
29604
+ capName: "terminal-session",
29605
+ capScope: "system",
29606
+ addonId: null,
29607
+ access: "view"
29608
+ },
29609
+ "terminalSession.listLegacyCameras": {
29610
+ capName: "terminal-session",
29611
+ capScope: "system",
29612
+ addonId: null,
29613
+ access: "view"
29614
+ },
29336
29615
  "terminalSession.listProfiles": {
29337
29616
  capName: "terminal-session",
29338
29617
  capScope: "system",
@@ -29363,6 +29642,12 @@ Object.freeze({
29363
29642
  addonId: null,
29364
29643
  access: "create"
29365
29644
  },
29645
+ "terminalSession.setInstanceEnabled": {
29646
+ capName: "terminal-session",
29647
+ capScope: "system",
29648
+ addonId: null,
29649
+ access: "create"
29650
+ },
29366
29651
  "terminalSession.writeInput": {
29367
29652
  capName: "terminal-session",
29368
29653
  capScope: "system",