@camstack/addon-auth 1.2.13 → 1.2.14

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.
@@ -7665,12 +7665,11 @@ var RecordingConfigSchema = object({
7665
7665
  /**
7666
7666
  * Entity-relocation job state (storage entity-routing spec, Phase 4).
7667
7667
  *
7668
- * One shape shared by the recorder's `relocateFootage` (segments) and
7669
- * pipeline-analytics' `relocateMedia` (event media blobs) so the admin Data
7670
- * page renders both movers with one component. Jobs are in-RAM (a restart
7671
- * forgets them re-running is safe by construction: copy-if-absent, delete
7672
- * after verify) and each completed/failed run also lands one durable ops-log
7673
- * row on the owning addon's surface.
7668
+ * One shape shared by the recorder and pipeline-analytics internal movers.
7669
+ * The public admin surface is `storage-migration`; child jobs remain in RAM
7670
+ * because copy-if-absent, verify, delete and index/row repoint are resumable.
7671
+ * Each completed/failed run also lands one durable ops-log row on its owning
7672
+ * addon surface.
7674
7673
  */
7675
7674
  var RelocateJobStateSchema = _enum([
7676
7675
  "running",
@@ -7697,19 +7696,100 @@ var RelocateJobSchema = object({
7697
7696
  finishedAt: number().nullable(),
7698
7697
  error: string().nullable()
7699
7698
  });
7699
+ /** Profile-derived footage selection used only by the migration coordinator:
7700
+ * `recordings` owns high+mid; `recordingsLow` owns low. */
7701
+ var RelocateFootageClassSchema = _enum(["recordings", "recordingsLow"]);
7700
7702
  var RelocateFootageInputSchema = object({
7701
- deviceId: number().optional(),
7702
7703
  fromLocationId: string(),
7703
7704
  toLocationId: string(),
7704
7705
  entities: array(_enum(["segments"])).optional(),
7706
+ /** Limits relocation to the logical profile class. Omit only for the
7707
+ * pre-orchestration compatibility path. */
7708
+ footageClass: RelocateFootageClassSchema.optional(),
7705
7709
  /** Copy throttle in MB/s (default 40) — the drain is a background chore,
7706
7710
  * never allowed to starve live writers. */
7707
7711
  throttleMbps: number().min(1).max(1e3).optional()
7708
7712
  });
7709
- var RelocateMediaInputSchema = object({
7710
- deviceId: number().optional(),
7713
+ /** Internal, lease-scoped participant operation. It is intentionally separate
7714
+ * from persistent recording settings: a migration never changes
7715
+ * `RecordingConfig.enabled` or camera wrapper bindings. */
7716
+ var StorageMigrationLeaseInputSchema = object({ leaseId: string().min(1) });
7717
+ var StorageMigrationFootageMoveInputSchema = RelocateFootageInputSchema.extend({ leaseId: string().min(1) });
7718
+ var StorageMigrationMediaMoveInputSchema = object({
7711
7719
  toLocationId: string(),
7712
7720
  throttleMbps: number().min(1).max(1e3).optional()
7721
+ }).extend({ leaseId: string().min(1) });
7722
+ /** The independently selectable logical storage classes. `recordings`
7723
+ * encompasses the high and mid segment profiles; `recordingsLow` is low
7724
+ * segments; `eventMedia` is post-analysis blobs. */
7725
+ var StorageMigrationClassSchema = _enum([
7726
+ "recordings",
7727
+ "recordingsLow",
7728
+ "eventMedia"
7729
+ ]);
7730
+ /** A destination is always an existing, fully-qualified location id. The
7731
+ * migration API intentionally never changes a source location's `basePath`:
7732
+ * callers create a new `<type>:<slug>` location, then select it here. */
7733
+ var StorageMigrationDestinationsSchema = object({
7734
+ recordings: string().min(1).optional(),
7735
+ recordingsLow: string().min(1).optional(),
7736
+ eventMedia: string().min(1).optional()
7737
+ }).refine((value) => Object.keys(value).length > 0, { message: "select at least one storage class" });
7738
+ /** Shared input for planning and starting an orchestrated storage migration. */
7739
+ var StorageMigrationInputSchema = object({
7740
+ destinations: StorageMigrationDestinationsSchema,
7741
+ throttleMbps: number().min(1).max(1e3).optional()
7742
+ });
7743
+ /** The durable coordinator state machine. The only phase that changes default
7744
+ * locations is `repointing`, after every selected mover has completed and been
7745
+ * verified. */
7746
+ var StorageMigrationPhaseSchema = _enum([
7747
+ "planning",
7748
+ "pausing",
7749
+ "moving",
7750
+ "verifying",
7751
+ "repointing",
7752
+ "refreshing",
7753
+ "resuming",
7754
+ "done",
7755
+ "failed",
7756
+ "cancelled"
7757
+ ]);
7758
+ var StorageMigrationParticipantSchema = _enum([
7759
+ "pipeline",
7760
+ "recorder",
7761
+ "analytics"
7762
+ ]);
7763
+ var StorageMigrationMoveSchema = object({
7764
+ storageClass: StorageMigrationClassSchema,
7765
+ fromLocationId: string(),
7766
+ toLocationId: string(),
7767
+ moverJobId: string().nullable(),
7768
+ state: RelocateJobStateSchema.nullable(),
7769
+ error: string().nullable()
7770
+ });
7771
+ var StorageMigrationJobSchema = object({
7772
+ jobId: string(),
7773
+ phase: StorageMigrationPhaseSchema,
7774
+ destinations: StorageMigrationDestinationsSchema,
7775
+ throttleMbps: number(),
7776
+ moves: array(StorageMigrationMoveSchema),
7777
+ pauseLeaseId: string().nullable(),
7778
+ pausedParticipants: array(StorageMigrationParticipantSchema),
7779
+ repointed: boolean(),
7780
+ cancelRequested: boolean(),
7781
+ startedAt: number(),
7782
+ updatedAt: number(),
7783
+ finishedAt: number().nullable(),
7784
+ error: string().nullable()
7785
+ });
7786
+ var StorageMigrationPlanSchema = object({
7787
+ destinations: StorageMigrationDestinationsSchema,
7788
+ moves: array(object({
7789
+ storageClass: StorageMigrationClassSchema,
7790
+ fromLocationId: string(),
7791
+ toLocationId: string()
7792
+ }))
7713
7793
  });
7714
7794
  /**
7715
7795
  * `StorageLocationType` — an addon-declared id that identifies the *kind* of
@@ -16131,13 +16211,19 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
16131
16211
  }), method(object({ deviceId: number() }), EventPruneCountsSchema, {
16132
16212
  kind: "mutation",
16133
16213
  auth: "admin"
16134
- }), method(RelocateMediaInputSchema, object({ jobId: string() }), {
16214
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
16135
16215
  kind: "mutation",
16136
16216
  auth: "admin"
16137
- }), method(object({}), array(RelocateJobSchema).readonly(), {
16138
- kind: "query",
16217
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
16218
+ kind: "mutation",
16219
+ auth: "admin"
16220
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
16221
+ kind: "mutation",
16222
+ auth: "admin"
16223
+ }), method(StorageMigrationMediaMoveInputSchema, object({ jobId: string() }), {
16224
+ kind: "mutation",
16139
16225
  auth: "admin"
16140
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16226
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
16141
16227
  kind: "mutation",
16142
16228
  auth: "admin"
16143
16229
  }), method(OpsLogQueryInputSchema, array(OpsLogEntrySchema).readonly(), {
@@ -17634,7 +17720,13 @@ var NodeInferenceDevicesSchema = object({
17634
17720
  reachable: boolean(),
17635
17721
  devices: array(NodeInferenceDeviceSchema).readonly()
17636
17722
  });
17637
- method(object({
17723
+ method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
17724
+ kind: "mutation",
17725
+ auth: "admin"
17726
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
17727
+ kind: "mutation",
17728
+ auth: "admin"
17729
+ }), method(object({
17638
17730
  deviceId: number(),
17639
17731
  agentNodeId: string()
17640
17732
  }), object({ success: literal(true) }), {
@@ -18308,6 +18400,13 @@ method(object({ locationId: string() }), EvictableUsageSchema), method(object({
18308
18400
  locationId: string(),
18309
18401
  targetBytes: number().int().positive()
18310
18402
  }), EvictResultSchema, { kind: "mutation" });
18403
+ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin" }), method(StorageMigrationInputSchema, object({ jobId: string() }), {
18404
+ kind: "mutation",
18405
+ auth: "admin"
18406
+ }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
18407
+ kind: "mutation",
18408
+ auth: "admin"
18409
+ });
18311
18410
  var ProviderInfoSchema = discriminatedUnion("shouldSaveDiskSpace", [object({
18312
18411
  providerId: string().min(1),
18313
18412
  displayName: string().min(1),
@@ -18411,6 +18510,28 @@ var TerminalProfileInfoSchema = object({
18411
18510
  label: string(),
18412
18511
  description: string().optional()
18413
18512
  });
18513
+ /**
18514
+ * A durable operator-created Terminal instance. Profiles are templates; only
18515
+ * an instance declares a camera.
18516
+ */
18517
+ var TerminalInstanceInfoSchema = object({
18518
+ instanceId: string(),
18519
+ cameraStableId: string(),
18520
+ nodeId: string(),
18521
+ profileId: string(),
18522
+ profileLabel: string(),
18523
+ name: string(),
18524
+ enabled: boolean()
18525
+ });
18526
+ var TerminalLegacyCameraSchema = object({
18527
+ stableId: string(),
18528
+ nodeId: string(),
18529
+ profileId: string(),
18530
+ profileLabel: string(),
18531
+ name: string(),
18532
+ /** Only legacy monitor cameras can retain their historic stable identity. */
18533
+ adoptable: boolean()
18534
+ });
18414
18535
  var TerminalOutputEventSchema = discriminatedUnion("kind", [object({
18415
18536
  seq: number().int().positive(),
18416
18537
  kind: literal("data"),
@@ -18427,7 +18548,29 @@ var TerminalOutputBatchSchema = object({
18427
18548
  snapshot: string().optional(),
18428
18549
  events: array(TerminalOutputEventSchema).readonly()
18429
18550
  });
18430
- method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18551
+ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }), method(_void(), array(TerminalInstanceInfoSchema).readonly(), { auth: "admin" }), method(object({
18552
+ targetNodeId: string().min(1),
18553
+ profileId: string().min(1),
18554
+ name: string().trim().min(1).max(160).optional()
18555
+ }), TerminalInstanceInfoSchema, {
18556
+ kind: "mutation",
18557
+ auth: "admin"
18558
+ }), method(object({ instanceId: string().min(1) }), _void(), {
18559
+ kind: "mutation",
18560
+ auth: "admin"
18561
+ }), method(object({
18562
+ instanceId: string().min(1),
18563
+ enabled: boolean()
18564
+ }), TerminalInstanceInfoSchema, {
18565
+ kind: "mutation",
18566
+ auth: "admin"
18567
+ }), method(_void(), array(TerminalLegacyCameraSchema).readonly(), { auth: "admin" }), method(object({
18568
+ stableId: string().min(1),
18569
+ name: string().trim().min(1).max(160).optional()
18570
+ }), TerminalInstanceInfoSchema, {
18571
+ kind: "mutation",
18572
+ auth: "admin"
18573
+ }), method(_void(), array(TerminalSessionInfoSchema).readonly(), { auth: "admin" }), method(object({
18431
18574
  profileId: string(),
18432
18575
  cols: number().int().positive(),
18433
18576
  rows: number().int().positive()
@@ -18444,7 +18587,13 @@ method(_void(), array(TerminalProfileInfoSchema).readonly(), { auth: "admin" }),
18444
18587
  }), method(object({
18445
18588
  sessionId: string(),
18446
18589
  afterSeq: number().int().nonnegative(),
18447
- waitMs: number().int().min(0).max(2e3).default(0)
18590
+ waitMs: number().int().min(0).max(2e3).default(0),
18591
+ /**
18592
+ * Wait when a just-opened session has no output yet. Kept opt-in so a
18593
+ * browser's initial repaint remains immediate; the camera snapshot
18594
+ * relay uses it to avoid encoding a blank startup frame.
18595
+ */
18596
+ waitForOutput: boolean().optional()
18448
18597
  }), TerminalOutputBatchSchema, {
18449
18598
  kind: "mutation",
18450
18599
  auth: "admin",
@@ -20402,6 +20551,7 @@ var FaceInfoSchema = object({
20402
20551
  var FaceFilterEnum = _enum([
20403
20552
  "unassigned",
20404
20553
  "recognized",
20554
+ "identified",
20405
20555
  "all"
20406
20556
  ]);
20407
20557
  var MediaFileLiteSchema$1 = object({
@@ -20430,6 +20580,8 @@ method(_void(), array(IdentitySchema).readonly()), method(object({ name: string(
20430
20580
  kind: "mutation",
20431
20581
  auth: "admin"
20432
20582
  }), method(object({
20583
+ /** Restrict to one camera. Absent keeps the cluster-wide gallery view. */
20584
+ deviceId: number().int().optional(),
20433
20585
  limit: number().int().positive().optional(),
20434
20586
  filter: FaceFilterEnum.optional(),
20435
20587
  /**
@@ -22195,6 +22347,10 @@ var OsdSourceSchema = discriminatedUnion("kind", [
22195
22347
  capName: string().min(1).max(64),
22196
22348
  /** Dot path inside the slice, e.g. `detected`, `value`, `mode`. */
22197
22349
  valuePath: string().min(1).max(64)
22350
+ }),
22351
+ object({
22352
+ kind: literal("latest-recognition"),
22353
+ recognition: _enum(["person", "plate"])
22198
22354
  })
22199
22355
  ]);
22200
22356
  var OsdSlotBindingSchema = object({
@@ -22300,6 +22456,15 @@ method(object({ deviceId: number().int() }), object({
22300
22456
  }), object({ success: literal(true) }), {
22301
22457
  kind: "mutation",
22302
22458
  auth: "admin"
22459
+ }), method(object({
22460
+ sourceDeviceId: number().int(),
22461
+ targetDeviceId: number().int()
22462
+ }), object({
22463
+ copied: number().int().nonnegative(),
22464
+ skipped: number().int().nonnegative()
22465
+ }), {
22466
+ kind: "mutation",
22467
+ auth: "admin"
22303
22468
  }), method(object({
22304
22469
  deviceId: number().int(),
22305
22470
  slotId: string().min(1),
@@ -23185,13 +23350,19 @@ method(object({
23185
23350
  }), {
23186
23351
  kind: "mutation",
23187
23352
  auth: "admin"
23188
- }), method(RelocateFootageInputSchema, object({ jobId: string() }), {
23353
+ }), method(StorageMigrationLeaseInputSchema, object({ paused: literal(true) }), {
23189
23354
  kind: "mutation",
23190
23355
  auth: "admin"
23191
- }), method(object({}), array(RelocateJobSchema).readonly(), {
23192
- kind: "query",
23356
+ }), method(StorageMigrationLeaseInputSchema, object({ resumed: literal(true) }), {
23357
+ kind: "mutation",
23193
23358
  auth: "admin"
23194
- }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23359
+ }), method(StorageMigrationLeaseInputSchema, object({ refreshed: literal(true) }), {
23360
+ kind: "mutation",
23361
+ auth: "admin"
23362
+ }), method(StorageMigrationFootageMoveInputSchema, object({ jobId: string() }), {
23363
+ kind: "mutation",
23364
+ auth: "admin"
23365
+ }), method(object({ jobId: string() }), RelocateJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
23195
23366
  kind: "mutation",
23196
23367
  auth: "admin"
23197
23368
  });
@@ -27313,6 +27484,12 @@ Object.freeze({
27313
27484
  addonId: null,
27314
27485
  access: "delete"
27315
27486
  },
27487
+ "osdManager.copyDeviceConfiguration": {
27488
+ capName: "osd-manager",
27489
+ capScope: "system",
27490
+ addonId: null,
27491
+ access: "create"
27492
+ },
27316
27493
  "osdManager.getConditionSupport": {
27317
27494
  capName: "osd-manager",
27318
27495
  capScope: "system",
@@ -27409,7 +27586,7 @@ Object.freeze({
27409
27586
  addonId: null,
27410
27587
  access: "create"
27411
27588
  },
27412
- "pipelineAnalytics.cancelMediaRelocate": {
27589
+ "pipelineAnalytics.cancelStorageMigrationMove": {
27413
27590
  capName: "pipeline-analytics",
27414
27591
  capScope: "device",
27415
27592
  addonId: null,
@@ -27481,12 +27658,6 @@ Object.freeze({
27481
27658
  addonId: null,
27482
27659
  access: "view"
27483
27660
  },
27484
- "pipelineAnalytics.getMediaRelocateStatus": {
27485
- capName: "pipeline-analytics",
27486
- capScope: "device",
27487
- addonId: null,
27488
- access: "view"
27489
- },
27490
27661
  "pipelineAnalytics.getMotionEvents": {
27491
27662
  capName: "pipeline-analytics",
27492
27663
  capScope: "device",
@@ -27523,6 +27694,12 @@ Object.freeze({
27523
27694
  addonId: null,
27524
27695
  access: "view"
27525
27696
  },
27697
+ "pipelineAnalytics.getStorageMigrationMoveStatus": {
27698
+ capName: "pipeline-analytics",
27699
+ capScope: "device",
27700
+ addonId: null,
27701
+ access: "view"
27702
+ },
27526
27703
  "pipelineAnalytics.getTrack": {
27527
27704
  capName: "pipeline-analytics",
27528
27705
  capScope: "device",
@@ -27601,6 +27778,12 @@ Object.freeze({
27601
27778
  addonId: null,
27602
27779
  access: "view"
27603
27780
  },
27781
+ "pipelineAnalytics.pauseForStorageMigration": {
27782
+ capName: "pipeline-analytics",
27783
+ capScope: "device",
27784
+ addonId: null,
27785
+ access: "create"
27786
+ },
27604
27787
  "pipelineAnalytics.proposeRetrainAnnotations": {
27605
27788
  capName: "pipeline-analytics",
27606
27789
  capScope: "device",
@@ -27631,7 +27814,7 @@ Object.freeze({
27631
27814
  addonId: null,
27632
27815
  access: "create"
27633
27816
  },
27634
- "pipelineAnalytics.relocateMedia": {
27817
+ "pipelineAnalytics.refreshStorageLocationsForMigration": {
27635
27818
  capName: "pipeline-analytics",
27636
27819
  capScope: "device",
27637
27820
  addonId: null,
@@ -27643,6 +27826,12 @@ Object.freeze({
27643
27826
  addonId: null,
27644
27827
  access: "create"
27645
27828
  },
27829
+ "pipelineAnalytics.resumeForStorageMigration": {
27830
+ capName: "pipeline-analytics",
27831
+ capScope: "device",
27832
+ addonId: null,
27833
+ access: "create"
27834
+ },
27646
27835
  "pipelineAnalytics.saveRetrainAnnotations": {
27647
27836
  capName: "pipeline-analytics",
27648
27837
  capScope: "device",
@@ -27667,6 +27856,12 @@ Object.freeze({
27667
27856
  addonId: null,
27668
27857
  access: "create"
27669
27858
  },
27859
+ "pipelineAnalytics.startStorageMigrationMove": {
27860
+ capName: "pipeline-analytics",
27861
+ capScope: "device",
27862
+ addonId: null,
27863
+ access: "create"
27864
+ },
27670
27865
  "pipelineAnalytics.wipeAllAnalytics": {
27671
27866
  capName: "pipeline-analytics",
27672
27867
  capScope: "device",
@@ -28033,6 +28228,12 @@ Object.freeze({
28033
28228
  addonId: null,
28034
28229
  access: "view"
28035
28230
  },
28231
+ "pipelineOrchestrator.pauseForStorageMigration": {
28232
+ capName: "pipeline-orchestrator",
28233
+ capScope: "system",
28234
+ addonId: null,
28235
+ access: "create"
28236
+ },
28036
28237
  "pipelineOrchestrator.rebalance": {
28037
28238
  capName: "pipeline-orchestrator",
28038
28239
  capScope: "system",
@@ -28057,6 +28258,12 @@ Object.freeze({
28057
28258
  addonId: null,
28058
28259
  access: "view"
28059
28260
  },
28261
+ "pipelineOrchestrator.resumeForStorageMigration": {
28262
+ capName: "pipeline-orchestrator",
28263
+ capScope: "system",
28264
+ addonId: null,
28265
+ access: "create"
28266
+ },
28060
28267
  "pipelineOrchestrator.saveTemplate": {
28061
28268
  capName: "pipeline-orchestrator",
28062
28269
  capScope: "system",
@@ -28453,7 +28660,7 @@ Object.freeze({
28453
28660
  addonId: null,
28454
28661
  access: "create"
28455
28662
  },
28456
- "recording.cancelRelocate": {
28663
+ "recording.cancelStorageMigrationMove": {
28457
28664
  capName: "recording",
28458
28665
  capScope: "system",
28459
28666
  addonId: null,
@@ -28489,7 +28696,7 @@ Object.freeze({
28489
28696
  addonId: null,
28490
28697
  access: "view"
28491
28698
  },
28492
- "recording.getRelocateStatus": {
28699
+ "recording.getStorageMigrationMoveStatus": {
28493
28700
  capName: "recording",
28494
28701
  capScope: "system",
28495
28702
  addonId: null,
@@ -28513,6 +28720,12 @@ Object.freeze({
28513
28720
  addonId: null,
28514
28721
  access: "view"
28515
28722
  },
28723
+ "recording.pauseForStorageMigration": {
28724
+ capName: "recording",
28725
+ capScope: "system",
28726
+ addonId: null,
28727
+ access: "create"
28728
+ },
28516
28729
  "recording.pruneFootage": {
28517
28730
  capName: "recording",
28518
28731
  capScope: "system",
@@ -28531,7 +28744,7 @@ Object.freeze({
28531
28744
  addonId: null,
28532
28745
  access: "view"
28533
28746
  },
28534
- "recording.relocateFootage": {
28747
+ "recording.refreshStorageLocationsForMigration": {
28535
28748
  capName: "recording",
28536
28749
  capScope: "system",
28537
28750
  addonId: null,
@@ -28555,12 +28768,24 @@ Object.freeze({
28555
28768
  addonId: null,
28556
28769
  access: "create"
28557
28770
  },
28771
+ "recording.resumeForStorageMigration": {
28772
+ capName: "recording",
28773
+ capScope: "system",
28774
+ addonId: null,
28775
+ access: "create"
28776
+ },
28558
28777
  "recording.setDeviceConfig": {
28559
28778
  capName: "recording",
28560
28779
  capScope: "system",
28561
28780
  addonId: null,
28562
28781
  access: "create"
28563
28782
  },
28783
+ "recording.startStorageMigrationMove": {
28784
+ capName: "recording",
28785
+ capScope: "system",
28786
+ addonId: null,
28787
+ access: "create"
28788
+ },
28564
28789
  "recordingExport.cancelExport": {
28565
28790
  capName: "recordingExport",
28566
28791
  capScope: "system",
@@ -28951,6 +29176,30 @@ Object.freeze({
28951
29176
  addonId: null,
28952
29177
  access: "view"
28953
29178
  },
29179
+ "storageMigration.cancel": {
29180
+ capName: "storage-migration",
29181
+ capScope: "system",
29182
+ addonId: null,
29183
+ access: "create"
29184
+ },
29185
+ "storageMigration.plan": {
29186
+ capName: "storage-migration",
29187
+ capScope: "system",
29188
+ addonId: null,
29189
+ access: "view"
29190
+ },
29191
+ "storageMigration.start": {
29192
+ capName: "storage-migration",
29193
+ capScope: "system",
29194
+ addonId: null,
29195
+ access: "create"
29196
+ },
29197
+ "storageMigration.status": {
29198
+ capName: "storage-migration",
29199
+ capScope: "system",
29200
+ addonId: null,
29201
+ access: "view"
29202
+ },
28954
29203
  "storageProvider.abortUpload": {
28955
29204
  capName: "storage-provider",
28956
29205
  capScope: "system",
@@ -29329,12 +29578,42 @@ Object.freeze({
29329
29578
  addonId: null,
29330
29579
  access: "create"
29331
29580
  },
29581
+ "terminalSession.adoptLegacyMonitor": {
29582
+ capName: "terminal-session",
29583
+ capScope: "system",
29584
+ addonId: null,
29585
+ access: "create"
29586
+ },
29332
29587
  "terminalSession.close": {
29333
29588
  capName: "terminal-session",
29334
29589
  capScope: "system",
29335
29590
  addonId: null,
29336
29591
  access: "create"
29337
29592
  },
29593
+ "terminalSession.createInstance": {
29594
+ capName: "terminal-session",
29595
+ capScope: "system",
29596
+ addonId: null,
29597
+ access: "create"
29598
+ },
29599
+ "terminalSession.deleteInstance": {
29600
+ capName: "terminal-session",
29601
+ capScope: "system",
29602
+ addonId: null,
29603
+ access: "delete"
29604
+ },
29605
+ "terminalSession.listInstances": {
29606
+ capName: "terminal-session",
29607
+ capScope: "system",
29608
+ addonId: null,
29609
+ access: "view"
29610
+ },
29611
+ "terminalSession.listLegacyCameras": {
29612
+ capName: "terminal-session",
29613
+ capScope: "system",
29614
+ addonId: null,
29615
+ access: "view"
29616
+ },
29338
29617
  "terminalSession.listProfiles": {
29339
29618
  capName: "terminal-session",
29340
29619
  capScope: "system",
@@ -29365,6 +29644,12 @@ Object.freeze({
29365
29644
  addonId: null,
29366
29645
  access: "create"
29367
29646
  },
29647
+ "terminalSession.setInstanceEnabled": {
29648
+ capName: "terminal-session",
29649
+ capScope: "system",
29650
+ addonId: null,
29651
+ access: "create"
29652
+ },
29368
29653
  "terminalSession.writeInput": {
29369
29654
  capName: "terminal-session",
29370
29655
  capScope: "system",